Settare Istanza Betula / Betula Self-Hosted
Guida: https://betula.mycorrhiza.wiki/
Prerequisiti
- VPS con:
- Certbot
- Caddy
- PC in grado di eseguire Go
💁♂️ Testato su VPS Intel Xeon D-1531 @ 400MHz / 256Mb RAM / Debian GNU/Linux 12
📉 Esperimento perfetto se sei a corto di spazio, memoria, o hai una VPS davvero economica!
Procedura
-
Scaricare e compilare https://betula.mycorrhiza.wiki su un computer in grado di eseguire e compilare Go, usando Linux o WSL
-
Mettere il file
betula
appena compilato dentro la cartella/srv/betula/bin
. Se queste cartelle non esistono vanno create. -
Acquistare un dominio o usarne uno già esistente; sarà dove la nostra istanza sarà disponibile.
-
Settare i certificati usando certbot di let’s encrypt, con l’opzione DNS. Se l’opzione HTTP-01 è disponibile, ignorare questo passaggio.
certbot certonly --preferred-challenge dns -d <dominio>
Da questo punto in poi il deploy è stato fatto con l’utente root: non fatelo!
- Nella directory
/srv/betula/
scrivere un Caddyfile con il seguente contenuto:
betula.<dominio>:<porta-esterna-da-esporre> {
tls /etc/letsencrypt/live/betula.<dominio>/fullchain.pem /etc/letsencrypt/live/betula.<dominio>/privkey.pem
log {
output file /var/log/caddy/betula.<dominio>.log {
roll_size 16MiB
roll_keep 16
}
}
route /* {
reverse_proxy http://127.0.0.1:1738
}
encode zstd gzip
}
-
Accedere al pannello di controllo del dominio e cambiare il DNS facendolo puntare alla macchina dove sta girando Caddy e la porta esposta
-
Dopo aver testato manualmente che funzioni, scrivere una unit di
systemd
che avvii Betula.
Salvare in /etc/systemd/system/betula.service
:
[Unit]
Description=Betula
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/srv/betula/bin/betula /srv/betula/database
[Install]
WantedBy=multi-user.target
NB:
/srv/betula/database
puo assumere il valore di un file scrivibile in una qualunque posizione del sistema
Digitare systemctl enable betula
per eseguirlo ad ogni avvio della macchina.
- Scrivere una unit di
systemd
che avvii il server Caddy.
Salvare in /etc/systemd/system/caddy.service
:
[Unit]
Description=Caddy OLEOLEs
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
WorkingDirectory=/srv/betula
ExecStart=/usr/bin/caddy run --config /srv/betula/Caddyfile --adapter caddyfile
[Install]
WantedBy=multi-user.target
NB:
/srv/betula/database
puo assumere il valore di un file scrivibile
Digitare systemctl enable caddy
per eseguirlo ad ogni avvio della macchina.