Orange PI 3B

Pour utilisation serveur auto hébergé. Un grand merci à https://debian-fr.org, notamment Verner ;) pour les conseils avisés et expertises.

Liens

https://github.com/defencedog/orangepi3b_v2.1/blob/main/Ethernet_Dead.md

https://www.armbian.com/orangepi3b/

https://discord.com/channels/934722269522059335/934724729481342997

https://www.minimachines.net/actu/orange-pi-3b-une-carte-de-developpement-sous-rk3566-121015

Augmenter la zram des log

Par défaut que 50Mo, le serveur râle de temps en temps…

Pour augmenter cela, éditer

/etc/default/orangepi-ramlog

Et passer à 500 Mo

# size of the tmpfs mount -- # please keep in mind to adjust /etc/default/orangepi-zram-config too when increasing SIZE=50M

Rebooter

Brancher un disque USB au démarrage pour augmenter le stockage

Dans mon cas, sert à créer un stockage externe nextclound (qui hébergera notamment la musique de Navidrome)

Editer le fstab et insérer cette ligne. Les options sont importantes afin que la séquence de boot ne soit pas perturbée.

UUID=a85a287d-6bc2-4b6d-8219-33ea9cd3d2e2 /diskUSB ext4 user,exec,noauto,x-systemd.automount,errors=remount-ro 0 2

Nextcloud

Afin d'éviter les erreurs de la version 29, installer Nextcloud en sous domaine ;)

Gestion Ventilo

Pour l'instant, juste un script qui allume des diodes. A adapter avec le ventillo.

Le script

cat scripts/fan.sh #!/bin/bash WAIT=0.5 gpio mode 10 out gpio mode 6 out gpio mode 5 out while true; do gpio write 10 0 gpio write 6 0 gpio write 5 0 sleep $WAIT gpio write 10 1 gpio write 6 1 gpio write 5 1 sleep $WAIT done

Le service systemd

cat /etc/systemd/system/fan.service [Unit] Description=Gestion du ventilateur ConditionPathExists=/home/crust/scripts/fan.sh after=network.target [Service] Type=forking ExecStart=/home/crust/scripts/fan.sh start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target

Activer le service au démarrage

systemctl enable fan.service

Bug carte ethernet

Je ne sais pourquoi la carte ethernet du jour au lendemain est devenue HS. Impossible d'obtenir une IP

Bug référencé ici https://www.reddit.com/r/OrangePI/comments/1aojmn3/orange_pi_3b_ethernet_doesnt_work/

La solution est d'écrire un script et de relancer le réseau

#!/bin/sh # SOURCE https://www.reddit.com/r/OrangePI/comments/1aojmn3/orange_pi_3b_ethernet_doesnt_work/ /usr/local/bin/io -4 0xFDC60284 0x3f3f3f3f /usr/local/bin/io -4 0xFDC6028C 0x003f003f /usr/local/bin/io -4 0xFDC60298 0x3f003f00 /usr/local/bin/io -4 0xFDC6029C 0x3f3f3f3f /usr/local/bin/io -4 0xfdc60388 0xFFFF0049 /usr/sbin/service networking restart

Par contre il faudra le lancer après chaque reboot… Donc le coller sur une crontab root

# # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command # Fix ethernet bug @reboot /home/crust/scripts/fixethernet.sh

Attention cette procédure semble changer l'ipv6 de la carte, donc il faut mettre à jour sa zone DNS… A suivre.

Ajout d'infos au message lors du login

Modifier le message d'accueil

Le message d'accueil lors du login ssh se compose d'une succession de fichier lus les uns après les uns et se situant dans /etc/update-motd.d/ . Il suffit de les préfixer d'un nombre, ils sont lus par ordre croissant.

ls /etc/update-motd.d/
10-orangepi-header	41-orangepi-config
10-uname 35-orangepi-tips 92-unattended-upgrades
30-orangepi-sysinfo 40-orangepi-updates 98-orangepi-autoreboot-warn

Exemple d'ajout

# nano /etc/update-motd.d/31-disk-usb

Avec ce contenu

#!/bin/bash # Afficher l'occupation disque du disque externe DISK=/diskUSB/ NOMDISK="ZIK" # Couleurs VERT="\e[0;92m" COLDEFAUT="\033[0m" echo -e "Storage("$VERT$NOMDISK$COLDEFAUT"):\t"$VERT$(df -h $DISK | grep G | awk '{print $5}')$COLDEFAUT " of "$(df -h $DISK | grep G | awk '{print $2}') echo ""

Le rendre executable

# chmod +x /etc/update-motd.d/31-disk-usb

Puis au prochain log, l'insertion sera effective ;)

Pour le tester de suite

update-motd

Migration vers DEBIAN 12 / YUNOHOST 12

Passage sans soucis

Mise à jour complète au préalable et backups des apps et du systeme

yunohost tools update yunohost tools upgrade apps yunohost tools upgrade system

Backups

yunohost backup create --apps -n 20241109apps -o /diskUSB yunohost backup create --system -n 20241109sys -o /diskUSB

Lancement de la migration

yunohost tools migrations run yunohost tools migrations run --accept-disclaimer

Accès refusé aux pages internet, relancer nginx et c'est réglé

service nginx restart

Soucis au niveau d'apt. Pour le régler :

yunohost tools regen-conf apt --dry-run --with-diff yunohost tools regen-conf apt --force

Soucis au niveau d'une clef (ugly) méthode pour le régler :

cd /etc/apt cp trusted.gpg trusted.gpg.d

Installation du rspamd pose soucis. Suffit de supprimer l'ancienne version manuellement

apt purge rspamd rm -rf /etc/rspamd

Et d'installer la brique éponyme de yunohost via l'API web de yunohost

yunohost --version yunohost: repo: stable version: 12.0.6 yunohost-admin: repo: stable version: 12.0.3.5 yunohost-portal: repo: stable version: 12.0.6 moulinette: repo: stable version: 12.0.3 ssowat: repo: stable version: 12.0.3
lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm

Créer une liste blanche (whitelist) et une liste noire (blacklist) pour rspamd (yunohost 12)

Après avoir relu la doc très consistante de rspamd et épluché le web, j’ai adopté cette solution qui me convient (elle peut être très adaptée à tous les besoins mais faut l’assimiler :wink:

Donc, tout ce passe dans /etc/rspamd et surtout dans le dossier local.d/ (donc dans /etc/rspamd/local.d ). Ce dossier permet que les additions de config ne soient pas effacées en cas de mise à jour et de compléter les conf existantes sans les effacer.

De base, il n’y a que le fichier redis.conf

Créer un fichier de multimap.conf contenant la map suivante :

WHITELIST_SENDER_DOMAIN { type = "from"; filter = "email:domain"; map = "${LOCAL_CONFDIR}/local.d/whitelist.sender.domain.map"; action = "accept"; } WHITELIST_SENDER_EMAIL { type = "from"; map = "${LOCAL_CONFDIR}/local.d/whitelist.sender.email.map"; action = "accept"; } BLACKLIST_SENDER_DOMAIN { type = "from"; filter = "email:domain"; map = "${LOCAL_CONFDIR}/local.d/blacklist.sender.domain.map"; action = "reject"; } BLACKLIST_SENDER_EMAIL { type = "from"; map = "${LOCAL_CONFDIR}/local.d/blacklist.sender.email.map"; action = "reject"; }

Créer ensuite un fichier whitelist.sender.domain.map qui permettra une liste blanche basée sur le domaine.extension et un fichier whitelist.sender.email.map qui fournira une liste blanche basée sur l’adresse mail

Donc, par exemple whitelist.sender.domain.map

site1.ext site2.ext

Et pour les adresses mails whitelist.sender.email.map

mail@site1.ext mail@site2.ext

Faire de même pour la liste noire, pour cela créer 2 fichiers blacklist.sender.domain.map et blacklist.sender.email.map et les renseigner comme ceux de la liste blanche. Sinon les laisser vides.

Attention, pour la blacklist , les mails reviendront à l’expéditeur avec ce message

<mail@serveur.ext>: host serveur.ext[XX.XX.XX.XX] said: 554 5.7.1 Matched map: BLACKLIST_SENDER_DOMAIN (in reply to end of DATA command)

Relancer ensuite rpsamd

service rspamd restart

C’est mis en place

Plus d’infos ici : Multimap module