guida snikket

Le parti operative di questa guida sono per la maggior parte estrapolate dalla guida italiana creata dalla XMPP-IT community e dal sito ufficiale a cui si rimanda per ulteriori informazioni e casistiche differenti. Snikket si installa tramite docker, quindi assicurati di averlo installato nel tuo sistema.

installazione di Snikket su VPS

Per prima cosa devi avere un dominio che supporti i sottodomini, lo puoi acquistare su un qualunque provider. Poi devi procurarti un server virtuale (VPS) con Linux. Per fornire il servizio ad un gruppo ristretto di utenti come la propria famiglia o un’associazione di piccole dimensioni sarà sufficiente un VPS con 1Gb di RAM.

DNS

Cerca l’ip del tuo server e crea quindi un record A che lo punti con specificato il dominio (o sottodominio chat.) che vuoi dedicare a Snikket.

# Domain           TTL  Class  Type  Target
chat.example.com.  300  IN     A     203.0.113.123

Aggiungi quindi questi altri 2 record DNS

# Domain                 TTL  Class  Type   Target
groups.chat.example.com  300  IN     CNAME  chat.example.com.
share.chat.example.com   300  IN     CNAME  chat.example.com.

Nota: Nel pannello di controllo di alcuni fornitori i TTL sono espressi in minuti, 300 = 5 min.

Ora connettiti col terminale utilizzando il comando

 ssh root@il.tuo.ip

e alla richiesta Are you sure you want to continue connecting (yes/no/[fingerprint])? rispondi Yes e incolla la pwd, che non si vedrà. Sei entrato come amministratore, aggiorna il server con

sudo apt update

e

sudo apt upgrade

snikket

Bene, ora crea la cartella di configurazione:

sudo mkdir /etc/snikket

entraci:

cd /etc/snikket

e scarica il file:

sudo curl -o docker-compose.yml https://snikket.org/service/resources/dockercompose.beta.yml

Sempre qui crea il file di configurazione usando vim o nano (come nell’esempio):

sudo nano /etc/snikket/snikket.conf

e copiaci dentro questi valori:

# The primary domain of your Snikket instance
SNIKKET_DOMAIN=chat.example.com
# An email address where the admin can be contacted
# (also used to register your Let's Encrypt account to obtain certificates)
SNIKKET_ADMIN_EMAIL=you@example.com

ovviamente modificando con i tuoi valori e salva il file. Dai poi questo comando:

sudo docker-compose up -d

Hai fatto!

Ora devi creare il tuo profilo amministrativo con cui puoi entrare da browser nel tuo chat.dominio.tld con la parola d’ordine che ti viene suggerita. Il comando per crearlo è

sudo docker exec snikket create-invite --admin --group default

Ti viene generato un link utilizzabile una sola volta. Tutti gli altri utenti li puoi creare dal tuo pannello di controllo una volta eseguito l’accesso.

porte

Perché Snikket funzioni devi aprire le porte del server virtuale descritte qui

supporto

Se vuoi maggiori informazioni puoi iniziare creando prima un account xmpp su uno dei server pubblici e poi unirti a dei gruppi (MUC, Multi User Chat in terminologia XMPP) specifici.

Se hai bisogno di supporto su Snikket c’è il gruppo ufficiale (in inglese): general

Se preferisci un gruppo italiano qui troverai degli appassionati: xmpp-it

reverse proxy

Se come me devi gestire più servizi nello stesso server, ti serve un reverse proxy. Io uso Caddy1, la configurazione per Snikket è molto semplice e la trovi a questo link. Per prima cosa devi dire a Snikket di usare porte diverse per le connessioni verso l’esterno, quindi modifica il file di configurazione in /etc/snikket/snikket.conf con queste stringhe

SNIKKET_TWEAK_HTTP_PORT=5080
SNIKKET_TWEAK_HTTPS_PORT=5443

Sempre all’interno della cartella /etc/snikket rilancia il container per aggiornare le modifiche al file di configurazione con

sudo docker-compose up -d

Dopo di che devi configurare Caddy, inserisci nel Caddyfile le stringhe riportate

http://chat.example.com,
http://groups.chat.example.com,
http://share.chat.example.com {
	reverse_proxy localhost:5080
}

chat.example.com,
groups.chat.example.com,
share.chat.example.com {
	reverse_proxy https://localhost:5443 {
		transport http {
			tls_insecure_skip_verify
		}
	}
}

e rilancialo con

sudo systemctl reload caddy 

per sistemare il tutto.

this is the way

Se hai seguito la guida ed installato la tua istanza Snikket, complimenti! Buon divertimento e buone comunicazioni libere!

Il divertimento di un babbo mentre la truppa dorme


2023-12-23