Catatan langkah-langkah instalasi & konfigurasi setelah Armbian Debian berhasil masuk (login pertama).
apt-get updateContoh output:
Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]
Reading package lists... Done
apt-get install apache2
systemctl start apache2
systemctl status apache2Contoh output systemctl status apache2 (jika berhasil):
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled)
Active: active (running) since Thu 2026-08-20 09:12:01 WIB; 5s ago
Process: 1423 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Cek log jika gagal:
journalctl -u apache2 -n 50Jika Apache gagal start karena masalah PAM (Pluggable Authentication Modules):
apt-get install --reinstall libpam-modules
apt-get install libpam-systemd
rebootJika folder log error (/var/log/apache2) bermasalah:
cd /var/log
mkdir apache2
chmod -R 777 apache2
systemctl start apache2Konfigurasi virtual host:
nano /etc/apache2/sites-available/000-default.confContoh isi file sederhana:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Tes akses via browser atau curl:
curl -I http://localhostOutput yang diharapkan:
HTTP/1.1 200 OK
Server: Apache/2.4.62 (Debian)
File web root ada di /var/www/html.
apt-get install mariadb-server
mysql_secure_installationContoh interaksi mysql_secure_installation:
Enter current password for root (enter for none): [kosongkan lalu Enter]
Set root password? [Y/n] Y
New password: ********
Re-enter new password: ********
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
apt-get install phpmyadminSaat instalasi akan muncul dialog: pilih web server apache2, lalu pilih Yes untuk dbconfig-common mengatur database phpMyAdmin otomatis.
Cek phpMyAdmin bisa diakses:
curl -I http://localhost/phpmyadminapt-get install libapache2-mod-php8.3Cek versi PHP aktif di Apache:
php -vContoh output:
PHP 8.3.6 (cli) (built: Apr 10 2026 10:22:31) (NTS)
apt-get install composer
composer --versionContoh output:
Composer version 2.7.1 2026-03-14 15:03:16
apt-get install git
git config --global user.name "nama"
git config --global user.email "nama@example.com"
git config --listContoh output git config --list:
user.name=nama
user.email=nama@example.com
SSH key untuk Git:
ssh-keygen -t ed25519 -C "nama@example.com"Contoh output:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519): [Enter]
Your identification has been saved in /root/.ssh/id_ed25519
Your public key has been saved in /root/.ssh/id_ed25519.pub
cat ~/.ssh/id_ed25519.pubContoh output (tambahkan ke GitHub/GitLab > SSH Keys):
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... nama@example.com
Instalasi via repo resmi Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.shAtau manual via apt repo Docker:
sudo apt-get update && sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo apt-get install docker-ce docker-ce-cli docker-buildx-plugin docker-compose-pluginVerifikasi instalasi:
docker --version
docker run hello-worldContoh output:
Docker version 27.3.1, build ce12230
Hello from Docker!
This message shows that your installation appears to be working correctly.
sudo apt-get -y install podman
apt-get install cockpit-podmanCek proses/image podman:
podman ps -aContoh output (belum ada container):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
podman info --format '{{.Store.GraphRoot}}'Contoh output:
/var/lib/containers/storage
podman --versionContoh output:
podman version 4.9.3
Menjalankan container rootless (contoh untuk user non-root):
apt-get install uidmap
which newuidmapContoh output:
/usr/bin/newuidmap
su - <NAMA_USER> -c 'podman ps -a'
su - <NAMA_USER> -c 'podman images'Contoh menjalankan container (9router):
mkdir -p ~/9router-data
podman run -d --name 9router --restart unless-stopped \
-p 20128:20128 \
-v ~/9router-data:/root/.9router \
docker.io/library/node:20-alpine \
sh -c "npm install -g 9router && 9router"Contoh output (ID container hasil podman run -d):
a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef1234
Membersihkan container/image:
podman rm -f 9router
podman rmi docker.io/library/node:20-alpine
rm -rf ~/9router-data# tambahkan GPG key Cloudflare
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
# tambahkan repo Cloudflare
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | \
sudo tee /etc/apt/sources.list.d/cloudflared.list
# install
sudo apt-get update && sudo apt-get install cloudflaredcloudflared --versionContoh output:
cloudflared version 2026.7.0 (built 2026-07-15)
# install sebagai service (token didapat dari dashboard Cloudflare)
sudo cloudflared service install <TOKEN_TUNNEL>Contoh output jika berhasil:
2026-07-15 INF Using Systemd
2026-07-15 INF Linux service for cloudflared installed successfully
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bashContoh output akhir instalasi:
File Browser installed to /usr/local/bin/filebrowser
Run 'filebrowser -h' to see the help
Aktifkan repo backports sesuai versi OS:
. /etc/os-release
echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" | \
sudo tee /etc/apt/sources.list.d/backports.list
sudo apt update
sudo apt install -t ${VERSION_CODENAME}-backports cockpitKelola user yang dilarang login ke Cockpit:
sudo nano /etc/cockpit/disallowed-usersContoh isi file (satu username per baris):
root
sudo systemctl restart cockpitCek status instalasi:
dpkg -l | grep -E 'cockpit|cockpit-bridge'Contoh output:
ii cockpit 309-1~bpo12+1 arm64 Web Console for Linux servers
ii cockpit-bridge 309-1~bpo12+1 arm64 Cockpit privileged bridge
Akses Cockpit via browser:
https://<IP-SERVER>:9090
Navigator (file manager):
wget https://github.com/45Drives/cockpit-navigator/releases/download/v0.5.10/cockpit-navigator_0.5.10-1focal_all.deb
apt install ./cockpit-navigator_0.5.10-1focal_all.deb
systemctl restart cockpitPodman:
apt-get install -t ${VERSION_CODENAME}-backports cockpit-podman
systemctl restart cockpitSensors (suhu/hardware):
apt-get install lm-sensors -y
sensors-detectContoh pertanyaan interaktif sensors-detect (biasanya jawab YES/Enter untuk semua):
Do you want to generate /etc/sysconfig/lm_sensors? YES
apt-get install cockpit-sensorsSetelah restart Cockpit, buka menu Sensors di sidebar untuk melihat suhu CPU/board.
apt-get install npmCek versi:
node -v
npm -vContoh output:
v18.19.1
9.2.0
hostname -IContoh output:
192.168.x.x
ip -4 addrContoh output:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet 192.168.x.x/24 brd 192.168.x.255 scope global eth0
ip routeContoh output:
default via 192.168.x.1 dev eth0
192.168.x.0/24 dev eth0 proto kernel scope link src 192.168.x.x
ip addr add 192.168.x.x/24 dev eth0
ip route add default via 192.168.x.1
ping -c 3 192.168.x.1Contoh output ping berhasil:
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
cat /etc/resolv.confContoh output:
nameserver 192.168.x.1
nameserver 8.8.8.8
resolvectl statusContoh output (ringkas):
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 2 (eth0)
Current Scopes: DNS
DefaultRoute setting: yes
Current DNS Server: 192.168.x.1
DNS Servers: 192.168.x.1 8.8.8.8
resolvectl dns eth0 192.168.x.1 8.8.8.8
resolvectl domain eth0 '~.'
resolvectl query ports.ubuntu.comContoh output query berhasil:
ports.ubuntu.com: 91.189.91.83
apt-get install netplan.io
which netplanContoh output:
/usr/sbin/netplan
nano /etc/netplan/00-default-use-network-manager.yamlContoh isi file untuk IP statis:
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
addresses:
- 192.168.x.x/24
routes:
- to: default
via: 192.168.x.1
nameservers:
addresses:
- 192.168.x.1
- 8.8.8.8netplan generate
netplan tryContoh output netplan try:
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 120 seconds
Tekan Enter jika koneksi tetap jalan normal.
Verifikasi akhir:
ip -4 addr show eth0
ip route
resolvectl status
resolvectl query ports.ubuntu.com
ping -c 3 192.168.x.1
ping -c 3 8.8.8.8
ping -c 3 ports.ubuntu.com
rebootCatatan: selalu jalankan reboot setelah perubahan besar (instalasi kernel module, PAM, jaringan) untuk memastikan service jalan normal.
