HA – Tunnel CloudFlare Install

Instalace vzdáleného přístupu (doména, cloudflare, cloudflared)

zřízení domény třeba na: freenom.com

zřízení účtu na cloudfare.com
websites – add a site

nastavení nameserverů z cloudflare do freenom
dns settings – Cloudflare Nameservers

cloudflare zero trust (xxxxxxxxxxxxx.cloudflare.com)
zvolit program 0$
zero trust
access – tunnels – create
tunnelname – pojmenovat tunel
vybrat „docker“
vygeneruje se příkaz
docker run cloudflare/cloudflared:latest tunnel –no-autoupdate run –token xxxspoustaznakuuuuuuxxx
v příkazu nahradit „cloudflare/cloudflared“ –> „erisamoe/cloudflared“
spustit sudo přikaz
vytvoří se spojení ke čtyřem datovým centrům
(Cannot determine default configuration path, no file config.yaml config.yml in /usr/local/etc/cloudflared. Will be fetching remotely managed configuration from cloudflare API. defaulting to protocol: quic.)
na webu dash.cloudflare.com zkontrolovat status:“connected“ (tunel je rozbalovací!)
a stisknout NEXT
public hostnames
zvolit subdomain:ha, domain, type:https, url:192.168.1.xx:8123
u domén zdarma (.tk, .gq, …) je nutné ručne nastavit DNS u domény

A * xxx.xxx.xxx.xxx Proxied Auto
A www xxx.xxx.xxx.xxx Proxied Auto
CNAME ha xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.cfargotunnel.com Proxied Auto
(dává se connector ID)

na ha.camelot.gq se objeví chyba Argo tunelu 1033

HOW TO deploy Cloudflare tunnel on a Container. (the raw way)
ls -ls
mkdir cloudflared
ls -ls
sudo chown -R 65532:65532 ~/cloudflared
docker run -v ~/cloudflared:/home/pi/.cloudflared erisamoe/cloudflared:latest tunnel login
přijde odkaz na autorizaci – autorizovat
přijde hláška o úspěšném loginu a kam byl uložen soubor cert.pem (bohužel jinam, než kam jsme chtěli)
ls
cd cloudflared
ls -ls
ale soubor tam není, je zakopanej někde v /var/lib/docker/overlay2/blabla…/diff/.cloudflared
docker run -v ~/cloudflared:/home/pi/.cloudflared erisamoe/cloudflared:latest tunnel create test-tunnel
a je to v prdeli, nenajde cert.pem !!! konec

nový pokus:
sudo chown -R 65532:65532 ~/cloudflared
docker run -v $PWD/cloudflared:/home/pi/.cloudflared erisamoe/cloudflared:latest tunnel login
přijde odkaz na autorizaci – autorizovat
přijde hláška o úspěšném loginu a kam byl uložen soubor cert.pem
docker run -v $PWD/.cloudflared:/cloudflared erisamoe/cloudflared:latest tunnel create test-tunnel
(docker run -v $PWD/cloudflared:/cloudflared erisamoe/cloudflared:latest tunnel create test-tunnel)
zase jiná chyba

další pokus:
docker run -v /etc/cloudflared:/etc/cloudflared erisamoe/cloudflared:latest tunnel create testtunel
hurá – prošlo to!
jasoň se vytvořil v /etc/cloudflared (předtím jsem založil ve /var/lib/docker/overlay2/blabla…/diff/.cloudflared ješte /etc/cloudflared a zkopíroval tam cert.pem)

pokračujem:
vytvořit v /etc/cloudflared/
config.yml
(tunnel: uuid-for-tunnel
credentials-file: /etc/cloudflared/uuid-for-tunnel.json (ten jasoň)

ingress:
– hostname: mywebsite.com
service: http://nginx:80
– service: http_status:404)

docker run -v /etc/cloudflared:/etc/cloudflared erisamoe/cloudflared:latest tunnel list
vypíše tunely

docker run -v /etc/cloudflared:/etc/cloudflared erisamoe/cloudflared:latest tunnel route dns testtunel ha.xxxxxxx.gq
přidá CNAME do DNS

docker run -v /etc/cloudflared:/etc/cloudflared erisamoe/cloudflared:latest tunnel run testtunel
všechno prošlo, tunel běží (d62b82a1460c intelligent_bouman)

stránka píše: 400: bad request

teď už jen maličkost
do configuration.yaml (homeassistant)
přidat toto:
http:
use_x_forwarded_for: true
trusted_proxies:
– 173.245.48.0/20
– 103.21.244.0/22
– 103.22.200.0/22
– 103.31.4.0/22
– 141.101.64.0/18
– 108.162.192.0/18
– 190.93.240.0/20
– 188.114.96.0/20
– 197.234.240.0/22
– 198.41.128.0/17
– 162.158.0.0/15
– 104.16.0.0/13
– 104.24.0.0/14
– 172.64.0.0/13
– 131.0.72.0/22 (IP adresy včetne masky z cloudflared https://www.cloudflare.com/ips-v4 nebo https://www.cloudflare.com/en-gb/ips/)
– 172.17.0.2 (IP adresu kontejneru cloudflared – dá se zjistit jako chyba z home-assistant.log)

po úpravě zkontrolovat konfiguraci (nástroje pro vývojáře) a restartovat homeassistanta

FUNGUJE přes HTTP i přes HTTPS

sudo docker update –restart always d62b82a1460c (zajistí start kontejneru cloudflared po startu/restartu)