Negli ultimi 3 mesi mi sono divertito a perdere dei neuroni dietro questi due progetti:
- Installare localmente Nextcloud su un Raspberry Pi 3
- Installare localmente Invidious sul mio computer
Queste sono le guide che sono uscite da tutti gli appunti presi durante gli scleri.
Buona lettura
Nextcloud (14/04/2024)

Qualche tempo fa ho perso un paio di neuroni dietro ad uno sfizio che mi avevo lì da un pò di tempo: Installare Nextcloud sopra il Raspberry Pi 3 che ho in casa.
Una roba semplicissima mi direte, peccato che ho avuto a che fare con un paio di problemi che mi hanno dato abbastanza da pelare e questo articolo serve proprio per questi problemi.
Tutto quello che c’è scritto qua dentro è una specie di cronologia che mi permetterà in futuro di rifare la stessa operazione senza avere ulteriori problemi (spero).
Installare Nextcloud
Prima di installare NextCloud, è necessario disporre di alcuni prerequisiti sul sistema. NextCloud ha bisogno di un server web con Apache, MySQL (MariaDB) e PHP, in particolare di alcuni moduli PHP.
sudo apt install apache2 mariadb-server libapache2-mod-php
sudo apt install php-gd php-json php-mysql php-curl php-mbstring php-intl php-imagick php-xml php-zip
Attendi qualche minuto per il completamento dell’installazione e riavviare Apache per caricare i nuovi moduli PHP:
sudo service apache2 restart
Per installare Nextcloud bisogna andare nelle cartelle di Apache web e installare l’ultima releas di Nextcloud
cd /var/www/html
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
Se ti da dei problemi ad estrarre i file devi modificare i permessi della cartella per consentire ad Apache di accedervi
sudo chmod 750 nextcloud -R
sudo chown www-data:www-data nextcloud -R
NextCloud è quasi pronto per essere utilizzato, ma dobbiamo prima creare un database MySQL per memorizzare i suoi dati.
Configura MYSQL
Dopo l’installazione del server MariaDB, viene creato un utente root che può essere utilizzato solo dalla riga di comando. Connettiti a MYSQl tramite sudo mysql e copia questo file sql
-- Create the new user
CREATE USER 'nextcloud' IDENTIFIED BY 'password';
-- Create the new database
CREATE DATABASE nextcloud;
-- Give all permissions
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit
Il database è pronto e possiamo finire l’installazione di NextCloud.
Errori
Ora, se hai provato ad accedere a questo link https://IP/nextcloud e ti escono degli errori rimani in questa sezione, altrimenti puoi tranquillamente andare avanti. Il problema mi usciva colpa la versione di PHP che avevo installato. Ho risolto così:
installo PHP 8.3
sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt install -y php8.3-common php8.3-cli
Poi ho cambiato la versione di Default con questi comandi:
sudo a2dismod php*
sudo a2enmod php8.3
sudo systemctl restart apache2
Configura Nextcloud
Ora è possibile accedere alla pagina di configurazione di NextCloud e completare la configurazione.
Apri il seguente URL nel browser: https://IP/nextcloud. sostitusci “IP” con l’indirizzo IP di Raspberry Pi.
Viene visualizzato un modulo in cui scegliere un nome utente e una password per NextCloud.
La seconda parte chiede dove si desidera memorizzare i file di NextCloud. È possibile mantenere il valore predefinito se si dispone di una sola partizione principale, oppure modificarlo per utilizzare, ad esempio, un’unità USB esterna.
La terza parte è la configurazione del database. Inserite le credenziali appena create in MySQL:
- Utente: nextcloud
- Password: “password” (la password che avete usato nei comandi di MySQL)
- Database: nextcloud
- Host: localhost
Quindi fare clic su “Installa” e attendere qualche minuto.
Riapri il seguente URL nel browser: https://IP/nextcloud e ti troverai davanti al form di login.
Le Fontih!
Progetto realizzato grazie a questi tre articoli:
- Installing NextCloud on Your Raspberry Pi (2 ways)
- Install PHP 8.3 on Raspberry Pi
- How to Change Default PHP Version on Ubuntu
Invidious (03/07/2024)

Ecco come ho installato localmente un’istanza invidious locale, in modo da vedere i video dei tuoi youtuber preferiti senza essere tracciato da YouTube.
Pacchetti richiesti
Invidious può essere installato sia tramite Docker che tramite Podman, ma in questo caso vedremo la seconda opzione.
Quindi, prima di cominciare, bisogna installare Podman sul nostro computer tramite questo comando:
sudo dnf install podman-compose pwgen
Ora possiamo cominciare.
Installare Invidious
In primis bisogna scaricare la Github il repository ufficiale di Invidious ed entrare dentro la directory appena creata
git clone https://github.com/iv-org/invidious.git
cd invidious
Il passo successivo consiste nell’editare il file docker-compose.yml con queste modifiche:
Aggiungi l’image di Invidious:
image: quay.io/invidious/invidious:latest
Cambiare la Porta:
ports: - "3000:3000"
Cambiare l’hmac_key. È necessario impostare un valore casuale generato per il parametro hmac_key. Su Linux è possibile generarlo utilizzando il comando pwgen 20 1
.Prima
hmac_key: "CHANGE_ME!!"
.Dopo
hmac_key: saeNg5xufooraofeevee
A fine modifiche, il file docker_compose.yml deve assomigliare a questo qui sotto:
# Warning: This docker-compose file is made for development purposes.
# Using it will build an image from the locally cloned repository.
#
# If you want to use Invidious in production, see the docker-compose.yml file provided
# in the installation documentation: https://docs.invidious.io/installation/
# Warning: This docker-compose file is made for development purposes.
# Using it will build an image from the locally cloned repository.
#
# If you want to use Invidious in production, see the docker-compose.yml file provided
# in the installation documentation: https://docs.invidious.io/installation/
version: "3"
services:
invidious:
image: quay.io/invidious/invidious:latest
build:
context: .
dockerfile: docker/Dockerfile
restart: unless-stopped
ports:
- "3000:3000"
environment:
# Please read the following file for a comprehensive list of all available
# configuration options and their associated syntax:
# https://github.com/iv-org/invidious/blob/master/config/config.example.yml
INVIDIOUS_CONFIG: |
db:
dbname: invidious
user: kemal
password: kemal
host: invidious-db
port: 5432
check_tables: true
# external_port:
# domain:
# https_only: false
# statistics_enabled: false
hmac_key: Ees6vou2IekaipeiCeib
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1
interval: 30s
timeout: 5s
retries: 2
depends_on:
- invidious-db
invidious-db:
image: docker.io/library/postgres:13
restart: unless-stopped
volumes:
- postgresdata:/var/lib/postgresql/data
- ./config/sql:/config/sql
- ./docker/init-invidious-db.sh:/docker-entrypoint-initdb.d/init-invidious-db.sh
environment:
POSTGRES_DB: invidious
POSTGRES_USER: kemal
POSTGRES_PASSWORD: kemal
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
volumes:
postgresdata:
Piccola nota a margine: A causa di vari problemi, Invidious deve essere riavviato spesso, almeno una volta al giorno, idealmente ogni ora.
Eseguire invidious
Per eseguire Invidious, basta entrare dentro la directory invidious ed eseguire il comando podman-compose up
cd invidious/
podman-compose up
Per ottimizzare quest’operazione ho creato un piccolo script shell che mi permette di accendere, spegnere e aggiornare invidious
#!/bin/bash
clear
# Mostra il primo menu
echo "Scegli un'opzione:"
echo "1. Accendi"
echo "2. Spegni"
echo "3. aggiorna"
read -p "Inserisci il numero corrispondente: " scelta
# Esegui l'azione in base alla scelta
case $scelta in
1) cd invidious/ # Cambia la directory in "invidious/"
podman-compose up # Esegui "podman-compose up"
;;
2)
cd invidious/
podman-compose stop
echo "Invidious spento!"
;;
3)
cd invidious/
podman-compose pull
podman-compose up -d
podman image prune -f
echo "Invidious aggiornato!"
;;
esac