Come fare il backup a CouchPotato

Se state pianificando di spostare il vostro server CouchPotato e non volete perdere tutte le impostazioni, preferenze, account… potrete salvarvi il file .conf situato probabilmente in:

/home/pi/.couchpotato/settings.conf

Semplicemente copiandolo nella nuova destinazione.

Tecnicamente vi basterà salvare quel file di testo e reincollarlo nel nuovo server, ma nel caso fate dei test prima di cancellare completamente tutto!

Ovviamente fate tutto con il servizio disattivato. Vi ricordo che si stoppa semplicemente con la chiamata:

sudo service couchpotato stop

Come installare Transmission su Raspberry Pi

Non sapete cos’è Transmission? Beh ve lo spiego subito: è un software per scaricare torrent tramite interfaccia web, quindi semplicemente da browser potrete collegarvi al vostro piccolo Raspberry Pi e scaricare facilmente dei torrent (anche tramite magnet link).

Aprite il terminale del Pi oppure collegatevi tramite SSH ed eseguite:

sudo apt install transmission-daemon

Vi installerà tutte le dipendenze e in pochi secondi potrete recarvi sul vostro browser con l’indirizzo IP oppure a

http://raspberrypi.local:9091

nel caso non abbiate cambiato hostname.

E voilà.

Se volete modificare le impostazioni dovrete seguire questi passaggi, altrimenti se volete rimuovere automaticamente i download dalla lista una volta che hanno terminato: installate questo script.

Come realizzare una Time Machine con un Raspberry Pi

Personalmente vi consiglio un Raspberry Pi Zero W, costa sui 10 euro e ha Wi-Fi integrato. Con l’aggiunta di un hard disk esterno (costo sui 40 euro per 1TB) potrete realizzare una Time Machine per il vostro Mac.

Allora iniziamo con l’aggiornare il Raspberry (qualunque esso sia, presupponendo che abbiate l’ultima versione di Raspian installata):

sudo apt update
sudo apt upgrade
sudo apt install netatalk hdparm

Ora identificate l’UUID del vostro hard disk (anche qua presupponendo che l’abbiate formattato in ext4) e copiatelo:

sudo blkid

Modifichiamo questo file:

sudo nano /etc/fstab

Aggiungendo in fondo (cambiando 0123456789abc con quello copiato prima):

UUID=0123456789abc /media/disk ext4 defaults 0 2

Poi create la cartella dove andrà montato e montiamo l’hard disk:

sudo mkdir /media/disk
sudo chmod 777 -R /media/disk
sudo mount -a

Ora modifichiamo il parametro di spinning dell’hard disk (per evitare di tenerlo sempre attivo anche quando non c’è nulla che scrive):

sudo nano /etc/hdparm.conf

E incollate al fondo questo:

/dev/sda {
spindown_time = 60
}

Poi modifichiamo l’ultima riga di questo file:

sudo nano /etc/netatalk/AppleVolumes.default

Incollando questo (ovviamente se non volete chiamarlo Tardis, dategli il nome che preferite):

/media/disk "Tardis" options:tm allow:pi

Ora aggiungete questo per avere un’icona nel Finder uguale a quella di una Time Capsule:

sudo nano /etc/avahi/services/afpd.service

Incollando questo:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Tardis</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
</service-group>

E riavviate i processi con:

sudo service avahi-daemon restart
sudo service netatalk restart

E voilà, ecco a voi una Time Machine Wi-Fi (o nel caso ethernet) con meno di 50 euro! Che ne pensate?

Dimenticavo, vi dovrete connettere con l’username pi e la password vostra (nel caso non l’abbiate ancora cambiata dovrebbe essere raspberry).

Come visualizzare spazio libero su Raspberry Pi

O su qualunque distribuzione tipo Ubuntu, Debian ecc vi basterà eseguire da terminale:

df -h

Vi visualizzerà sul terminale una schermata simile a questa:

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1       9.9G  6.7G  2.8G  72% /
udev             10M     0   10M   0% /dev
tmpfs           393M   40M  353M  11% /run
tmpfs           982M     0  982M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           982M     0  982M   0% /sys/fs/cgroup
tmpfs           197M     0  197M   0% /run/user/0

E potrete valutare se e come liberare spazio, nel caso non ne abbiate più disponibile.

Come rimuovere automaticamente i torrent completati da Transmission

Se utilizzate Transmission sul vostro Raspberry Pi (o su qualunque altro tipo di computer/server) e volete automaticamente rimuovere dalla lista i torrent che hanno finito, dovete seguire questi semplici passaggi.

Prima di tutto stoppate il servizio di transmission con:

sudo service transmission stop

Poi cambiate due righe qua:

sudo nano /var/lib/transmission-daemon/info/settings.json

Con:

"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/home/pi/transmissionpurge.sh",

Ora chiudete e salvate con CTRL+X ed eseguite:

sudo nano transmissionpurge.sh

E incollate:

#!/bin/sh

SERVER="9091 --auth transmission:transmission"

TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=1`

transmission-remote $SERVER --list

for TORRENTID in $TORRENTLIST

do

echo Processing : $TORRENTID

DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"`
STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"`

if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then

transmission-remote $SERVER --torrent $TORRENTID --remove

else

echo "Torrent #$TORRENTID is not completed. Ignoring."

fi

done

Ora dategli i permessi di esecuzione con:

sudo chmod 777 /home/pi/transmissionpurge.sh

E il gioco è fatto! ora ogni volta che ultimerete un torrent, esso verrà subito cancellato dalla lista.

Ah quasi dimenticavo, riavviate transmission con:

sudo service transmission start

Come installare nginx su Raspberry Pi

Prima di tutto dovete fare una cosa importantissima, rimuovete Apache:

sudo apt-get remove apache2

Ora che l’avete rimosso e potete iniziare a divertirvi seriamente, installate nginx:

sudo apt-get install nginx

Finito. Ecco sì, finito! Avrà già configurato la cartella che usavate in precedenza e tutto quanto dovrebbe funzionarvi alla perfezione (ovviamente meglio di prima).

Nel caso, configurate quel che vi manca da qua:

sudo nano /etc/nginx/sites-available/default

Posso garantirvi personalmente, che non sentirete la mancanza. E anzi, vi domanderete perché non l’avete fatto prima!

Come installare Headphones su Raspberry Pi

Penso che non abbia bisogno di presentazioni Headphones, allora iniziamo:

sudo git clone https://github.com/rembo10/headphones.git /opt/headphones

Ora create l’utente (nel caso vogliate tenere le cose separate):

sudo touch /etc/default/headphones
sudo adduser --system --no-create-home headphones
sudo chown headphones:nogroup -R /opt/headphones

Per avviare il processo a ogni riavvio del vostro Raspberry Pi:

sudo ln -s /opt/headphones/init-scripts/init.ubuntu /etc/init.d/headphones
sudo update-rc.d headphones defaults
sudo update-rc.d headphones enable

Avviatelo e aspettate che crei il file di configurazione (ci metterà qualche secondo):

sudo service headphones start

Poi stoppatelo con sudo service headphones stop e modificate questo file di configurazione:

sudo nano /opt/headphones/config.ini

Cambiano il campo http_host da localhost a 0.0.0.0 (serve per averlo visibile in tutta la vostra rete locale). Ora quindi andate su http://raspberrypi.local:8181 e voilà.

Come gestire Homebridge con systemd

Se volete gestire Homebridge come servizio e far si che a ogni riavvio venga gestito direttamente dal sistema operativo, senza il supporto di screen come vi avevo fatto vedere qua, seguite questa semplice guida!

Prima di tutto trovate il percorso di Homebridge con:

which homebridge

Poi modificate sudo nano /etc/default/homebridge e incollate:

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/homebridge

# If you uncomment the following line, homebridge will log more 
# You can display this via systemd's journalctl: journalctl -f -u homebridge
# DEBUG=*

Poi sudo nano /etc/systemd/system/homebridge.service e incollate (cambiando ad ExecStart il percorso che avete trovato precedentemente con il which:

[Unit]
Description=Node.js HomeKit Server 
After=syslog.target network-online.target

[Service]
Type=simple
User=homebridge
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Ora create un utente: sudo useradd --system homebridge, create le cartelle con i permessi giusti e abilitate il servizio:

sudo mkdir /var/homebridge
sudo cp ~/.homebridge/config.json /var/homebridge/
sudo cp -r ~/.homebridge/persist /var/homebridge
sudo chmod -R 0777 /var/homebridge
sudo systemctl daemon-reload
sudo systemctl enable homebridge
sudo service homebridge start

E controllate se funziona con: sudo service homebridge status.

Fonte: https://timleland.com/setup-homebridge-to-start-on-bootup/

Come installare LazyLibrarian su Raspberry Pi

Se volete installare LazyLibrarian su Raspberry Pi non vi basta che eseguire questi due semplici comandi:

sudo git clone https://github.com/DobyTang/LazyLibrarian /opt/lazylibrarian
python /opt/lazylibrarian/LazyLibrarian.py -d

Nel caso vogliate farlo andare in background avviate il daemon togliendo la -d, quindi eseguite: python /opt/lazylibrarian/LazyLibrarian.py -daemon

Se volete che si avvii a ogni riavvio e che parta come servizio, quindi gestibile semplicemente con un sudo service lazylibrarian start fate ancora questi due passaggi:

sudo cp /opt/lazylibrarian/init/lazylibrarian.default /etc/default/lazylibrarian
sudo cp /opt/lazylibrarian/init/lazylibrarian.service /etc/systemd/system/lazylibrarian.service
sudo cp /opt/lazylibrarian/init/lazylibrarian.initd /etc/init.d/lazylibrarian

Ora aprite questo file:

sudo nano /etc/default/lazylibrarian

E aggiungete all’inizio del file USER=pi, salvate e aggiornate:

sudo update-rc.d lazylibrarian defaults
sudo systemctl daemon-reload
sudo systemctl enable lazylibrarian

Ora andate su http://raspberrypi.local:5299 e voilà, già fatto!

Come creare una Time Capsule con Raspberry Pi

Se non volete spendere più di 300 euro per una Time Capsule della Apple e volete realizzare la vostra Time Machine personale, seguite questi semplici passaggi (vi consiglio di partire da una versione di Raspbian nuova e pulita):

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install netatalk libc6-dev avahi-daemon libnss-mdns

Ora aprite questo file:

sudo nano /etc/netatalk/AppleVolumes.default

E al fondo cambiate questa riga (potete anche cambiare percorso nel caso abbiate un hard disk attaccato o una pendrive) con:

/home/pi "Time Capsule" options:tm allow:pi

Ora modificate questo file:

sudo nano /etc/avahi/services/afpd.service

Cancellate tutto e incollate:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Time Capsule</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
</service-group>

Riavviate i servizi e via:

sudo service avahi-daemon restart
sudo service netatalk restart

E… voilà. Davvero! Già finito. Aprite il Finder su macOS e lo vedrete già a lato (Avahi avrà mandato in broadcast dei pacchetti di benvenuto). Ora potete andare sulle impostazioni e configurare il vostro backup!

Come fare uno speedtest alla microSD del Raspberry Pi

Per testare la velocità di scrittura eseguite:

sync; dd if=/dev/zero of=~/test.tmp bs=500K count=1024

Per la lettura:

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
sync; time dd if=~/test.tmp of=/dev/null bs=500K count=1024

Poi ovviamente cancellate il file temporaneo che ha usato per farlo. Quanto raggiungete voi? 22 MB/s dovrebbe essere una buona media visto il bus condiviso.

Come installare CouchPotato su Raspberry Pi

sudo git clone http://github.com/RuudBurger/CouchPotatoServer.git /opt/couchpotato
sudo chmod -R 755 /opt/couchpotato
sudo chown -R pi:pi /opt/couchpotato
python /opt/couchpotato/CouchPotato.py

Ora andate su http://raspberrypi.local:5050/wizard/ e vedete se funziona! Poi stoppatelo con CTRL+C e andiamo avanti:

sudo cp /opt/couchpotato/init/ubuntu /etc/init.d/couchpotato
sudo cp /opt/couchpotato/init/ubuntu.default /etc/default/couchpotato
sudo cp /opt/couchpotato/init/couchpotato.service /etc/systemd/system/couchpotato.service
sudo nano /etc/default/couchpotato

Cancellate tutto e incollate:

CP_USER=pi
CP_HOME=/opt/couchpotato
CP_DATA=/var/opt/couchpotato
CP_PIDFILE=/var/run/couchpotato/couchpotato.pid
PYTHON_BIN=/usr/bin/python
sudo nano /etc/systemd/system/couchpotato.service

Cambiate queste righe in:

ExecStart=/opt/couchpotato/CouchPotato.py
Type=simple
User=pi
Group=pi
sudo chmod +x /etc/init.d/couchpotato
sudo update-rc.d couchpotato defaults
sudo systemctl daemon-reload
sudo systemctl enable couchpotato

E ora avviatelo con: sudo service couchpotato start. Andate da browser all’indirizzo di prima e benvenuti!

Come dare più corrente tramite USB dal Raspberry Pi

Se volete fornire 1.2A invece di 600mA (che è la corrente erogata dal circuito direttamente) modificate questo file:

sudo nano /boot/config.txt

Aggiungendo in fondo questo:

max_usb_current=1

E riavviate! È sicuro (nonostante possiate dubitarne) in termini di sicurezza elettrica vera e propria. Ovvio che lo è, se usate un trasformatore decente e non uno di quelli cinesi. Online ho trovato questo:

All that max_usb_current=1 does is to set GPIO38 high, which in turn turns on a FET, which connects a second 39K resistor in parallel to an existing one, on pin 5 of U13, the AP2553W6 USB power manager, lifting the current limit from 0.6A to double that (1.2A), see no possible scenario there why the PI resets because of that, except in case the gate of the FET Q4 is somehow shorted to GND. Which could be caused by a production fault. Inspect Q4, as look if there is solder shorting pins together. Also R6 (resistor mounted between gate of Q4 and GND) should be 100K not 0 Ohm. U13, Q4 and R6 should be near the USB ports.

Fonte: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=100244

Come far coesistere AFP e SMB su Raspberry Pi

AFP e SMB detti anche protocollo di rete di Apple e Samba rispettivamente, risultano essere incompatibili. Online sembra che sia impossibile farli funzionare sullo stesso IP o con lo stesso hostname.

Ma a quanto pare (dopo varie sperimentazioni) potete installarvi semplicemente Avahi e configurare due servizi. Ovviamente dovrete aver già configurato entrambi i protocolli e averli attivi (quindi esposti a tutta la rete locale).

Prima di tutto spostatevi dentro la cartella di Avahi:

cd /etc/avahi/services

Che dico, l’avete installato vero? Nel caso:

sudo apt-get install avahi-daemon

Ora create due file:

sudo touch afpd.service smb.service

Nel primo:

sudo nano afpd.service

Incollate:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Time Capsule</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
</service-group>

E nel secondo:

sudo nano smb.service

Incollate questo:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=Xserve</txt-record>
</service>
</service-group>

Ora tornate nel Finder di macOS e vi ritroverete questi due bei device distinti al quale potrete connettervi con i rispettivi account:

Ovviamente le icone potete cambiarle, semplicemente trovavo comodo poter usufruire di un file server e di una Time Machine in rete, a costo praticamente nullo. Alla prossima!

Risparmio energetico di un hard disk su Raspberry Pi

Dato che probabilmente al vostro bel Pi non attaccherete un SSD (nel caso, buon per voi) vorrete che risparmi energia e non sia sempre a ruotare (l’hard disk ndr). Procediamo con la configurazione.

Prima di tutto installate:

sudo apt-get install hdparm

Identificate l’ID (non UUID) del vostro hard disk con:

sudo ls -la /dev/disk/by-id

Copiatelo e qua dentro:

sudo nano /etc/hdparm.conf

Andrete ad incollare questo al fondo:

/dev/disk/by-id/id-copiato-precedentemente {
spindown_time = 60
}

Con ad esempio dopo 5 minuti di riposo andrà in stop (vanno a multipli di 5, cercate su Stack nel caso vogliate capirci meglio), nel caso vogliate aumentarlo… aumentatelo.

Come partizionare un hard disk o pendrive su Raspberry Pi

Prima di tutto dovete identificate il percorso del vostro drive:

sudo blkid

Di norma dovrebbe essere /dev/sda, /dev/sda1 oppure /dev/sdb o /dev/sdb1.

Io vi vi consiglio di formattarlo in EXT4 perché è più ben gestibile da Debian/Ubuntu. Se invece volete formattarlo in FAT32 o HFS+ scelta vostra, spesso può dar problemi (HFS+ se gli viene a mancare la corrente ha bisogno di essere riparato e fidatevi, non è una bella procedura).

Procediamo allora (cambiate il percorso, ovviamente e ogni volta che ve lo richiede rispondete con Yes e Ignore):

sudo parted /dev/sda mklabel gpt
sudo parted -a optimal /dev/sda mkpart Primary 0% 100%
sudo mkfs.ext4 /dev/sda1

Ed ecco fatto (una parola, dipende dalla grandezza del vostro hard disk o pendrive ma dovrebbe metterci un po’ di tempo quantificabile in minuti).