Raspberry PI - 5 🍑
Ok, dacă tot e un web server, să fie pe web, nu ?
Necesită și un nume de domeniu. Deci trebuie mers la un registrar (de exemplu https://www.globehosting.com/), și cumpărat un domeniu disponibil (de exemplu www.gigel.net e luat din păcate, dar www.muculm.eu e disponibil).
Un reverse-proxy
Apoi, pentru a ne conecta domeniul la site-ul găzduit pe Raspberry PI, o variantă la îndemână este de folosire a unui reverse proxy. Cea mai convenabilă soluție în momentul de față pare să fie cea de la CloudFlare.
Se apelează de aici: https://dash.cloudflare.com/. Și există tutoriale mai detaliate, precum: https://pimylifeup.com/raspberry-pi-cloudflare-tunnel/.
De pe PI, se instalează cloudflared:
sudo apt install curl lsb-release
curl -L https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update
sudo apt install cloudflared
Apoi este necesară autentificarea de pe PI. Posibil să fie nevoie de deschiderea unui link web pe computerul principal.
cloudflared tunnel login
La minerit
Trebuie creat un tunel, instrucțiuni mai detaliate aici: (from https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/install-and-setup/tunnel-guide/local/ ).
cloudflared tunnel create MUCTUNNEL
Consola ne va informa:
Created tunnel MUCTUNNEL with id 12345678-abcd-1a2b-3c4d-13523423412x
cloudflared tunnel route dns MUCTUNNEL muculm.eu
cloudflared tunnel list
Test (opțional)
Se lansează tunelul pe portul pe care ascultă nginx:
cloudflared tunnel run --url localhost:8088 MUCTUNNEL
Acum dacă se deschide un url în browser (de oriunde) pe domeniul folosit (de ex: https://muculm.eu), ar trebui să se ajungă la site-ul găzduit pe Raspberry PI.
La final, se oprește tunelul.
CTRL + C
Mută configurarea într-un fișier
Configurarea ar trebui să fie într-un fișier yml, ca să putem executa un serviciu la fiecare pornire a Raspberry PI-ului (inclusiv când se ia curentul, sau se scoate accidental cablul de alimentare din priză pentru a pune aspiratorul).
cd /home/PIUSER/.cloudflared/
sudo touch config.yml
sudo nano config.yml
Conținutul fișierului de configurare config.yml ar trebui să semene cu
url: http://localhost:8088
tunnel: 12345678-abcd-1a2b-3c4d-13523423412x
credentials-file: /home/PIUSER/.cloudflared/12345678-abcd-1a2b-3c4d-13523423412x.json
ingress:
- hostname: muculm.eu
service: http://localhost:8088
- service: http_status:404
Se poate folosi de probă comanda:
cloudflared tunnel --config /home/PIUSER/.cloudflared/config.yml run MUCTUNNEL
…Și deschide un url în browser către domeniul folosit.
CTRL + C
Configurează ca serviciu
Make it a service
sudo cp config.yml /etc/cloudflared/config.yml
sudo cloudflared service install
sudo systemctl start cloudflared
systemctl status cloudflared
Ce a vrut să spună autorul
Cu un reverse proxy, precum cloudflare se poate expune un site găzduit pe un Raspberry PI.