Pada episode ini kita akan menaikkan aria2 ke level produksi: daemon mode dengan -D, unit systemd untuk auto-start dan auto-restart, rotasi log dengan logrotate, deployment Docker dengan volume persist, serta integrasi NAS Synology dan router OpenWrt.

Di episode 19 kalian belajar membaca kegagalan. Sekarang waktunya merancang sistem yang jarang gagal dan mudah dipulihkan ketika gagal: menjalankan aria2 sebagai daemon, menjadikannya service systemd yang auto-start, merotasi log agar disk tidak penuh, lalu men-deploy ke Docker dan NAS. Ini adalah jembatan dari "aria2 di laptop" menuju "aria2 sebagai infrastruktur".
Selama ini aria2c berjalan di foreground — ia menempel pada terminal, dan terminal yang tertutup menghentikannya. Untuk produksi, jalankan sebagai daemon: proses yang terlepas dari terminal dan berjalan di latar belakang.
aria2c -D --conf-path=/etc/aria2/aria2.conf-D membuat aria2c mem-fork dirinya dan langsung mengembalikan prompt. Seluruh pengaturan — direktori download, RPC, batas kecepatan — diambil dari file konfigurasi, sehingga perintah tetap pendek dan konsisten. Cek bahwa ia hidup dengan pgrep -af aria2c atau lewat log.
Perhatikan satu detail penting: daemon hanya berguna jika hidupnya diatur oleh sesuatu yang lebih besar. Jika server reboot, siapa yang menghidupkannya lagi? Jawabannya adalah systemd.
systemd adalah pengelola service standar di distro modern. Ia memastikan aria2 mulai saat boot, restart saat crash, dan log-nya tersimpan. Buat unit file:
[Unit]
Description=aria2 download daemon
After=network.target
[Service]
Type=forking
User=aria2
Group=aria2
ExecStart=/usr/bin/aria2c -D --conf-path=/etc/aria2/aria2.conf
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetType=forking karena -D membuat daemon mem-fork; User=aria2 memastikan daemon tidak berjalan sebagai root; Restart=on-failure menghidupkan kembali service yang crash setelah jeda 10 detik. Aktifkan dan mulai:
sudo useradd -r -m -d /var/lib/aria2 aria2
sudo systemctl daemon-reload
sudo systemctl enable --now aria2Periksa kesehatan dan baca log service:
systemctl status aria2
journalctl -u aria2 -fImportant
Jangan pernah menjalankan aria2 sebagai root. Buat user khusus (aria2), beri kepemilikan direktori download dan konfigurasi, lalu biarkan systemd mengelola proses atas nama user tersebut. Proses yang berjalan sebagai root hanya menambah permukaan serangan tanpa manfaat apa pun.
Daemon yang berjalan berbulan-bulan akan memproduksi log yang terus membesar. Logrotate memotong dan mengompresinya secara otomatis:
/var/log/aria2/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
copytruncate
}copytruncate penting untuk aria2 karena ia membuka file log sendiri dan tidak mendengarkan sinyal rotate. Dengan konfigurasi ini, riwayat 14 hari tersimpan terkompresi tanpa pernah mengisi disk.
Di lingkungan container, aria2 dijalankan dalam image yang sudah membundel daemon dan web UI sekaligus. Salah satu yang populer adalah wappjzdstar/aria2 — image kecil yang menyatukan daemon aria2 dan AriaNg:
docker run -d --name aria2 \
-p 6800:6800 \
-p 6881-6999:6881-6999 \
-p 8080:80 \
-v /srv/downloads:/data \
-v /srv/aria2/conf:/conf \
-e SECRET=RAHASIA \
--restart unless-stopped \
wappjzdstar/aria2:latestMari bedah pilihan di atas:
-p 6800:6800 — port RPC, dipakai aplikasi dan AriaNg untuk berbicara dengan daemon.-p 6881-6999:6881-6999 — lalu lintas BitTorrent dan DHT, dari episode 19.-p 8080:80 — web UI AriaNg yang tersedia di port 80 di dalam container.-v — volume persist: data download dan konfigurasi hidup di host, bukan di dalam container yang bisa dibuang kapan saja.--restart unless-stopped — container bangkit kembali setelah reboot atau crash.Volume adalah keputusan paling penting: container boleh diganti, tapi /srv/downloads dan /srv/aria2/conf milik kalian selamanya. Jika kalian lebih suka mendeklarasikan semuanya, versi Compose-nya:
services:
aria2:
image: wappjzdstar/aria2:latest
restart: unless-stopped
ports:
- "6800:6800"
- "6881-6999:6881-6999"
- "8080:80"
volumes:
- /srv/downloads:/data
- /srv/aria2/conf:/conf
environment:
SECRET: RAHASIAKegunaan terbesar aria2 sering muncul bukan di server cloud, melainkan di perangkat yang selalu menyala di rumah.
Di DSM, kalian bisa memasang paket komunitas aria2 (misalnya dari SynoCommunity) yang otomatis membuat service dan shared folder download. Alternatif yang lebih terkontrol: jalankan image Docker di atas lewat package Container Manager, lalu arahkan volume ke shared folder — misalnya /volume1/downloads. Hasilnya: NAS berubah menjadi download center yang selalu menyala, dengan file langsung tersimpan di tempat yang biasa kalian kelola.
OpenWrt punya paket aria2 di opkg:
opkg update
opkg install aria2 luci-app-aria2Paket luci-app-aria2 menyediakan antarmuka LuCI (web) untuk mengonfigurasi dan memantau daemon. Satu catatan penting dari episode 19: pastikan firewall router mengizinkan port BitTorrent, dan periksa apakah NAT di router memungkinkan peer menjangkau port tersebut.
Sebelum menutup episode, berikut checklist yang merangkum keputusan kunci:
aria2, bukan root./etc/aria2/aria2.conf, bukan campuran argumen.enable --now atau Docker restart unless-stopped.Restart=on-failure atau policy restart container.copytruncate.Episode 20 menaikkan aria2 ke level produksi: daemon dengan -D, unit systemd untuk auto-start dan auto-restart, rotasi log dengan logrotate, deployment Docker dengan volume persist dan image wappjzdstar/aria2, serta integrasi NAS Synology dan router OpenWrt.
Inti yang harus dibawa pulang: produksi bukan soal fitur, tapi soal ketahanan. Daemon tanpa supervisor, log tanpa rotasi, atau data tanpa volume hanyalah masalah yang belum terlihat.
Di episode 21 berikutnya kita menghubungkan aria2 dengan dunia sekitarnya: integrasi dengan tools dan workflows — AriaNg, ekstensi browser, verifikasi checksum, dan alur download modern di server. Sampai jumpa!