Showing posts with label armbian. Show all posts
Showing posts with label armbian. Show all posts

Wednesday, 15 July 2026

menampilkan armbian welcome

 run-parts /etc/update-motd.d/


    _             _    _                                         _ _        

   /_\  _ _ _ __ | |__(_)__ _ _ _    __ ___ _ __  _ __ _  _ _ _ (_) |_ _  _ 

  / _ \| '_| '  \| '_ \ / _` | ' \  / _/ _ \ '  \| '  \ || | ' \| |  _| || |

 /_/ \_\_| |_|_|_|_.__/_\__,_|_||_| \__\___/_|_|_|_|_|_\_,_|_||_|_|\__|\_, |

                                                                       |__/ 

 v26.8 rolling for aml-s9xx-box running Armbian Linux 6.18.33-current-meson64


 Packages:     Debian stable (trixie)

 Updates:      Kernel upgrade enabled and 10 packages available for upgrade 

 Support:      for advanced users (rolling release)

 IPv4:        (LAN) 192.168.10.196, 100.73.52.27, 192.168.0.111 (WAN) 140.213.133.19


 Performance:  


 Load:         30%            Uptime:         14h 21m Local users:  3           

 Memory usage: 44% of 1.87G 

 CPU temp:     59°C            Usage of /:   63% of 5.7G   


 Tips:


 What’s new in Armbian v26.5? https://tinyurl.com/5cwr7wfh


 Commands: 


 Configuration: armbian-config

 Upgrade      : armbian-upgrade

 Monitoring   : htop


Friday, 5 June 2026

sites available wates dan anjir 2 situ dalam armbian

 root@aml-s9xx-box:~# ls -lh /etc/nginx/sites-enabled/
total 0
lrwxrwxrwx 1 root root 37 Jun  4 20:33 data-murid -> /etc/nginx/sites-available/data-murid
lrwxrwxrwx 1 root root 34 May 10 11:25 situs_a -> /etc/nginx/sites-available/situs_a
lrwxrwxrwx 1 root root 34 May 10 18:00 situs_b -> /etc/nginx/sites-available/situs_b
root@aml-s9xx-box:~# cat /etc/nginx/sites-enabled/situs_a
server {
    listen 80;
    listen [::]:80;
    server_name anjir.simsdn.my.id;

    root /var/www/situs_a/moodle;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;

        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}
root@aml-s9xx-box:~# cat /etc/nginx/sites-enabled/situs_b
server {
    listen 8080;
    server_name sman1wates.jurnaldo.my.id;

    root /var/www/situs_b/moodle;
    index index.php index.html;

    # 🔥 WAJIB untuk Moodle
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 🔥 FIX utama (support slasharguments)
    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;

        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    # 🔥 Optional (biar static file lebih cepat)
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
        expires max;
        log_not_found off;
    }
}
root@aml-s9xx-box:~# cat /etc/nginx/sites-available/data-murid
server {
    listen 8081;
    server_name murid_paduan.jurnaldo.my.id;

    root /var/www/data-murid;
    index index.html;
   
    access_log /var/log/nginx/data-murid-access.log;
    error_log  /var/log/nginx/data-murid-error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

Thursday, 4 June 2026

Sync github ke data murid situs

 

Untuk kondisi Guru Duan saat ini, saya akan memilih tahapan bertahap, jangan langsung webhook.

Tahap 1 (Sekarang) — Deploy Manual dengan Script

Buat script:

nano /opt/update-data-murid.sh

Isi:

#!/bin/bash

echo "=== UPDATE DATA MURID ==="

cd /opt/data-murid || exit

git pull

rsync -av --delete \
--exclude='.git' \
/opt/data-murid/ \
/var/www/data-murid/

echo "=== UPDATE SELESAI ==="

Simpan:

chmod +x /opt/update-data-murid.sh

Tahap 2 — Uji

Saat ada perubahan di GitHub:

cd /opt/data-murid
git status

lalu:

/opt/update-data-murid.sh

Keuntungan:

  • Sangat sederhana.

  • Tidak ada service tambahan.

  • Tidak ada port tambahan.

  • Tidak ada risiko webhook disalahgunakan.


Tahap 3 — Tambahkan Backup

Karena ini data alumni yang berharga, saya justru lebih fokus ke backup daripada otomatisasi.

Buat:

mkdir -p /backup/data-murid

Backup harian:

cp /var/www/data-murid/alumni.json \
/backup/data-murid/alumni-$(date +%F).json

Atau pakai cron seminggu sekali.


Tahap 4 — Pisahkan Log

Karena Guru Duan sudah memakai GoAccess, saya sarankan mempertahankan:

access_log /var/log/nginx/data-murid-access.log;
error_log  /var/log/nginx/data-murid-error.log;

Nanti statistik hanya untuk situs alumni.


Tahap 5 — Kalau Sudah Sering Update

Baru pertimbangkan:

Opsi A: Cron

Misalnya tiap jam:

0 * * * * /opt/update-data-murid.sh

Ini cukup aman dan sederhana.

Opsi B: Webhook GitHub

Saya baru akan memasang webhook jika:

  • Guru Duan mengubah data setiap hari.

  • Ada beberapa situs yang dikelola.

  • Ingin benar-benar otomatis setelah git push.


Yang Saya Pilih Jika Ini Server Saya

Untuk repository yang isinya hanya:

alumni.json
index.html
script.js

saya akan tetap memakai:

/opt/update-data-murid.sh

manual.

Alasannya:

  • Repository hanya ±500 KB.

  • Update tidak setiap jam.

  • HG680P sudah menjalankan beberapa situs.

  • Semakin sedikit service tambahan, semakin mudah dirawat.

Jadi alurnya:

Laptop Ubuntu
    ↓
git push
    ↓
Armbian
/opt/update-data-murid.sh
    ↓
Website langsung ter-update

Menurut saya itu sudah ideal untuk ukuran proyek data-murid saat ini. Jika nanti Guru Duan ingin menghubungkannya langsung dengan Moodle (misalnya ekspor JSON alumni otomatis dari database Moodle), barulah kita bisa membuat deploy yang lebih otomatis.

Friday, 3 April 2026

kirim video ke armbian

 sudo mount -t cifs //192.168.1.68/Seagate /mnt/armbian -o guest,vers=3.0

 

sudo rsync -avh --no-perms --no-owner --no-group --progress *.mp4 /mnt/armbian/film/
 

Wednesday, 1 April 2026

Kirim file dari laptop Ubuntu ke Armbian

 

Baik, berarti file ada di laptop Ubuntu, dan mau dikirim ke server Armbian 100.106.69.13 ke folder yang sama:

/var/www/html/moodle/local/jurnalmengajar

Perintah dijalankan di laptop Ubuntu.


Cara paling aman (disarankan) — rsync

Ini paling bagus untuk plugin Moodle:

rsync -av /var/www/html/moodle/local/jurnalmengajar/ \
root@100.106.69.13:/var/www/html/moodle/local/jurnalmengajar/

Ini akan:

  • Upload file baru

  • Update file yang berubah

  • Tidak menghapus file lama

  • Lebih cepat dari scp


Kalau mau pakai SCP (copy semua)

scp -r /var/www/html/moodle/local/jurnalmengajar/* \
root@100.106.69.13:/var/www/html/moodle/local/jurnalmengajar/

Kalau hanya file PHP saja

Biasanya update plugin cukup ini:

cd /var/www/html/moodle/local/jurnalmengajar

scp *.php root@100.106.69.13:/var/www/html/moodle/local/jurnalmengajar/

Kalau termasuk folder penting plugin Moodle

cd /var/www/html/moodle/local/jurnalmengajar

scp -r classes db lang templates cli pix vendor \
root@100.106.69.13:/var/www/html/moodle/local/jurnalmengajar/

Urutan kerja yang biasa admin Moodle lakukan

Biasanya seperti ini:

cd /var/www/html/moodle/local
rsync -av jurnalmengajar/ root@100.106.69.13:/var/www/html/moodle/local/jurnalmengajar/

Ini yang paling rapi.


Setelah upload di server Armbian (penting)

Login ke Armbian lalu:

chown -R www-data:www-data /var/www/html/moodle/local/jurnalmengajar

Supaya Moodle tidak error permission.


Ringkasan cepat

TujuanPerintah
Kirim 1 folderrsync -av folder/ server:/folder
Kirim semua filescp -r folder/* server:/folder
Kirim file php sajascp *.php server:/folder
Update plugin Moodlersync -av

Friday, 27 March 2026

Pindahkan Nextcloud ke HDD (/mnt/seagate atau /mnt/audio).

 

Sekarang terlihat jelas struktur /var/www/html.

Isi /var/www/html

apps      492M
moodle    411M
core      189M
dist       74M
3rdparty   48M
lib        18M

Struktur ini sebenarnya bukan Moodle / WordPress, tapi Nextcloud (karena ada folder apps, core, updater, ocs, dll).

Jadi kesimpulannya:

FolderUkuran
/var/www/nextcloud822M
/var/www/html (Nextcloud web)1.3G
Moodlekemungkinan di tempat lain
Root kecil6.5G

👉 Nextcloud yang memenuhi root storage.


Penyebab utama root penuh

Total Nextcloud:

Nextcloud web      1.3G
Nextcloud folder   822M
TOTAL              ~2.1G

Untuk root 6.5GB → ini sangat besar.


Solusi terbaik (WAJIB kalau pakai STB / eMMC kecil)

Pindahkan Nextcloud ke HDD (/mnt/seagate atau /mnt/audio).

Ini solusi paling benar, bukan menghapus.


Cara pindahkan Nextcloud ke HDD

Misalnya pindah ke /mnt/seagate/nextcloud

1. Stop nginx & php

systemctl stop nginx
systemctl stop php8.2-fpm

2. Pindahkan folder

mv /var/www/html /mnt/seagate/nextcloud

3. Buat symlink

ln -s /mnt/seagate/nextcloud /var/www/html

4. Start lagi

systemctl start php8.2-fpm
systemctl start nginx

Setelah itu cek storage

df -h

Root harus turun dari:

83% → sekitar 50%

Struktur server yang ideal untuk server kecil seperti ini

Sebaiknya:

LokasiIsi
/ (root kecil)OS + nginx + php + mysql
/var/lib/mysqldatabase
/mnt/seagatemoodledata
/mnt/seagatenextcloud
/mnt/seagatebackup
/mnt/audiomusic navidrome
/var/wwwhanya symlink

Kesimpulan penting

Masalah server Guru bukan HDD penuh, tapi:

Root kecil (6.5GB) terisi Nextcloud + web files

Solusi permanen:

  • Pindahkan Nextcloud

  • Pindahkan moodledata

  • Simpan semua data di /mnt


Kalau Guru mau, kita bisa rapikan struktur server supaya:

  • Moodle

  • Nextcloud

  • Navidrome

  • Backup

  • Database

Semua aman dan root tidak pernah penuh lagi.

cek size armbian

 du -h --max-depth=1 / | sort -h
du: tidak dapat membaca direktori '/mnt/audio': error Masukan/Keluaran
du: tidak dapat mengakses '/proc/73770/task/73770/fd/3': Tidak ada berkas atau direktori seperti itu
du: tidak dapat mengakses '/proc/73770/task/73770/fdinfo/3': Tidak ada berkas atau direktori seperti itu
du: tidak dapat mengakses '/proc/73770/fd/4': Tidak ada berkas atau direktori seperti itu
du: tidak dapat mengakses '/proc/73770/fdinfo/4': Tidak ada berkas atau direktori seperti itu
0    /dev
0    /proc
0    /sys
0    /tmp
4,0K    /media
4,0K    /selinux
4,0K    /srv
16K    /lost+found
72K    /root
15M    /run
16M    /etc
81M    /opt
82M    /home
153M    /boot
2,4G    /usr
2,9G    /var
85G    /mnt
90G    /

du -h --max-depth=1 /mnt | sort -h
du: tidak dapat membaca direktori '/mnt/audio': error Masukan/Keluaran
4,0K    /mnt/audio
85G    /mnt
85G    /mnt/seagate

df -h
Sistem Berkas  Besar   Isi  Sisa Isi% Dipasang di
udev            762M     0  762M   0% /dev
tmpfs           180M   15M  165M   9% /run
/dev/mmcblk2p2  6,5G  5,4G  1,2G  83% /
tmpfs           897M     0  897M   0% /dev/shm
tmpfs           5,0M  8,0K  5,0M   1% /run/lock
tmpfs           897M     0  897M   0% /tmp
/dev/mmcblk2p1  510M  153M  358M  30% /boot
/dev/zram1       47M   11M   34M  24% /var/log
/dev/sda1       458G   62G  373G  15% /mnt/audio
/dev/sdd1       458G   85G  350G  20% /mnt/seagate
tmpfs           180M     0  180M   0% /run/user/0


# du -h --max-depth=1 --exclude=/mnt / | sort -h
du: tidak dapat mengakses '/proc/74010/task/74010/fd/3': Tidak ada berkas atau direktori seperti itu
du: tidak dapat mengakses '/proc/74010/task/74010/fdinfo/3': Tidak ada berkas atau direktori seperti itu
du: tidak dapat mengakses '/proc/74010/fd/4': Tidak ada berkas atau direktori seperti itu
du: tidak dapat mengakses '/proc/74010/fdinfo/4': Tidak ada berkas atau direktori seperti itu
0    /dev
0    /proc
0    /sys
0    /tmp
4,0K    /media
4,0K    /selinux
4,0K    /srv
16K    /lost+found
72K    /root
15M    /run
16M    /etc
81M    /opt
82M    /home
153M    /boot
2,4G    /usr
2,9G    /var
5,6G    /


============

# du -h --max-depth=1 /var | sort -h
4,0K    /var/local
4,0K    /var/mail
4,0K    /var/opt
20K    /var/spool
44K    /var/tmp
884K    /var/backups
6,7M    /var/log.hdd
11M    /var/log
16M    /var/moodledata
82M    /var/cache
447M    /var/lib
2,3G    /var/www
2,9G    /var
 

====================

# du -h --max-depth=1 /var/www | sort -h
822M    /var/www/nextcloud
1,3G    /var/www/html
2,3G    /var/www
 

========================

# du -h --max-depth=1 /var/www/html | sort -h
8,0K    /var/www/html/data
8,0K    /var/www/html/ocs-provider
12K    /var/www/html/ocs
80K    /var/www/html/themes
108K    /var/www/html/config
364K    /var/www/html/LICENSES
788K    /var/www/html/resources
1,4M    /var/www/html/updater
18M    /var/www/html/lib
48M    /var/www/html/3rdparty
74M    /var/www/html/dist
189M    /var/www/html/core
411M    /var/www/html/moodle
492M    /var/www/html/apps
1,3G    /var/www/html
 

=======================

 



Tuesday, 17 March 2026

Hapus docker navidrome dari stb

 

Siap Guru Duan 👍
Dari hasil itu, Docker hanya dipakai untuk Navidrome saja → aman untuk dihapus kalau memang tidak dipakai lagi.

Saya kasih langkah bersih & aman ya (biar tidak sisa-sisa) 👇


⚠️ 1. Stop & hapus container dulu

docker stop navidrome
docker rm navidrome

⚠️ 2. (Opsional tapi disarankan) Hapus image Navidrome

docker rmi deluan/navidrome:latest

⚠️ 3. Stop service Docker

systemctl stop docker
systemctl stop containerd

⚠️ 4. Disable biar tidak jalan saat boot

systemctl disable docker
systemctl disable containerd

⚠️ 5. Uninstall Docker (bersih)

apt purge docker-ce docker-ce-cli containerd.io -y
apt autoremove -y

⚠️ 6. (Opsional) Bersihkan sisa folder

Kalau mau benar-benar bersih:

rm -rf /var/lib/docker
rm -rf /var/lib/containerd

🔍 7. Cek hasil

systemctl list-units --type=service | grep docker

👉 harusnya sudah tidak ada


🚀 Dampak setelah dihapus

Guru akan langsung terasa:

  • RAM lebih lega 💨

  • CPU lebih stabil ⚡

  • tidak ada container “diam-diam makan resource”


🧠 Catatan penting

Kalau nanti butuh Navidrome lagi:
👉 bisa install tanpa Docker (native) → lebih ringan untuk HG680P

Kalau mau, saya bisa bantu:
✅ install Navidrome tanpa Docker
✅ atau alternatif lebih ringan untuk musik server


🎯 Kesimpulan

👉 Dalam kasus Guru:

✔ Menghapus Docker = keputusan tepat 🔥
✔ Sistem akan lebih cocok untuk STB HG680P


Kalau sudah dihapus, kirim lagi:

top

Saya bantu cek:
👉 apakah PHP masih berat atau sudah normal 👍

Ubah ke ip statis armbian

Mantap Guru 👍 dari hasil `ip a` sudah jelas:

✅ Interface: **eth0**
✅ IP sekarang: **192.168.1.206 (DHCP)**
👉 Artinya tinggal kita ubah ke statis saja, tidak ada masalah interface.

---

## 🔧 Setting IP Statis (langsung sesuai kondisi Guru)

### 1. Edit netplan

```bash
nano /etc/netplan/00-default-use-network-manager.yaml
```

---

### 2. Isi seperti ini (AMAN untuk kasus Guru)

```yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.10/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 1.1.1.1
```

---

### 3. Apply

```bash
netplan apply
```

---

### 4. Cek

```bash
ip a
```

Harus berubah jadi:

```
inet 192.168.1.10/24
```

---


## 🆘 Kalau tiba-tiba hilang lagi (tidak bisa SSH)

Langsung di STB (monitor):

```bash
nano /etc/netplan/00-default-use-network-manager.yaml
```

ubah balik:

```yaml
dhcp4: yes
```

lalu:

```bash
netplan apply
```

---