🌐 Šta je Cloudflare Tunnel?
Cloudflare Tunnel je besplatna usluga koja omogućava sigurno povezivanje vaših lokalnih aplikacija (poput Jellyfin-a) sa internetom, bez potrebe za otvaranjem portova na ruteru ili nabavkom statične IP adrese.
Umesto da korisnici direktno pristupaju vašem serveru, Cloudflare pravi siguran tunel između:
- Vašeg servera (gde je Jellyfin)
- Cloudflare mreže (sa 200+ data centara)
- Krajnjih korisnika (bilo gde na svetu)
Prednosti:
- ✅ Besplatno - 100% free za osnovnu upotrebu
- ✅ Bezbedno - Automatski HTTPS, DDoS zaštita
- ✅ Brzo - Cloudflare CDN optimizacija
- ✅ Jednostavno - Setup za 30 minuta
- ✅ Bez port forwarding-a - Router ostaje zatvoren
📋 Šta ti treba
Instaliran na Ubuntu/Debian VPS-u sa Docker-om
Registrovan domen (npr. vasedomen.com)
Besplatan nalog na cloudflare.com
Za ceo setup proces
Dodaj Domen na Cloudflare
- Idi na dash.cloudflare.com
- Klikni Add a Site
- Unesi svoj domen (npr. vasedomen.com)
- Izaberi Free Plan
- Klikni Continue
Postavi Nameservere
Cloudflare će ti dati 2 nameservera, npr:
- bob.ns.cloudflare.com
- emma.ns.cloudflare.com
Idi na svog domain registrar-a (Namecheap, GoDaddy...) i zameni postojeće nameservere sa Cloudflare-ovim.
Promena nameservera može trajati 24h, ali obično radi za sat-dva.
Kreiraj Zero Trust Account
- Idi na one.dash.cloudflare.com
- Klikni Create a team
- Unesi naziv (npr. moj-home-server)
- Izaberi Free Plan
Sledeći korak: instaliramo cloudflared na server.
Instaliraj cloudflared (Docker)
Prijavimo se na VPS preko SSH-a:
ssh admin@your-server-ip
Kreiraj Docker Compose File
nano ~/docker-compose.yml
Dodaj cloudflared servis
cloudflared:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: unless-stopped
command: tunnel --no-autoupdate run
environment:
- TUNNEL_TOKEN=TVOJ_TOKEN_OVDE
networks:
- media
NE startuj kontejner dok ne dobiješ token u sledećem koraku.
Generiši Tunnel Token
- Idi na one.dash.cloudflare.com
- Klikni Networks → Tunnels
- Klikni Create a tunnel
- Izaberi Cloudflared
- Unesi naziv: home-server
- Klikni Save tunnel
Kopiraj Token
Cloudflare će prikazati komandu sa tokenom, npr:
cloudflared tunnel run --token eyJhIjoiZXhhbXBsZVRva2VuMTIzNDU2Nzg5MCJ9
Kopiraj samo token deo (posle --token).
Dodaj Token u docker-compose.yml
nano ~/docker-compose.yml
Zameni TVOJ_TOKEN_OVDE sa pravim tokenom:
environment:
- TUNNEL_TOKEN=eyJhIjoiZXhhbXBsZVRva2VuMTIzNDU2Nzg5MCJ9
Sačuvaj fajl: CTRL + O, zatim ENTER, pa CTRL + X.
Startuj Tunnel
docker-compose up -d cloudflared
Proveri da li radi
docker logs cloudflared
Ako vidiš poruku poput:
Connection registered
...znači da tunel radi! 🎉
Sledeći korak: konfiguriši javne hostname-ove.
Dodaj Public Hostname-ove
U Cloudflare Zero Trust Dashboard-u (Networks → Tunnels):
- Klikni na svoj tunel home-server
- Klikni Public Hostnames
- Klikni Add a public hostname
Jellyfin Hostname
| Opcija | Vrednost |
|---|---|
| Subdomain | jellyfin |
| Domain | vasedomen.com |
| Type | HTTP |
| URL | jellyfin:8096 |
Klikni Save hostname.
Radarr, Sonarr, Prowlarr
Ponovite isti proces za ostale servise:
| Servis | Subdomain | URL |
|---|---|---|
| Radarr | radarr | radarr:7878 |
| Sonarr | sonarr | sonarr:8989 |
| Prowlarr | prowlarr | prowlarr:9696 |
Testiraj Pristup
Otvori browser i idi na:
Sada možeš pristupiti serveru sa bilo kog mesta.
Bonus: Remote SSH Pristup
Omogući remote SSH pristup bez otvaranja porta 22.
Dodaj SSH Hostname
| Opcija | Vrednost |
|---|---|
| Subdomain | ssh |
| Type | SSH |
| URL | localhost:22 |
Instalacija cloudflared na lokalnom računaru
Windows
- Preuzmi: github.com/cloudflare/cloudflared/releases
- Skini cloudflared-windows-amd64.exe
- Preimenuj u cloudflared.exe
- Kopiraj u C:\Windows\System32\
Linux
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
chmod +x cloudflared-linux-amd64
sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared
Povezivanje
ssh admin@ssh.vasedomen.com
Možeš pristupiti serveru sa bilo kog mesta.
Cloudflare Access - Email Login
Omogući pristup samo određenim ljudima preko email autentifikacije.
U Zero Trust Dashboard-u
- Access → Applications
- Klikni Add an application
- Izaberi Self-hosted
Application Configuration
| Opcija | Vrednost |
|---|---|
| Application name | Jellyfin |
| Session Duration | 24 hours |
| Application domain | jellyfin.vasedomen.com |
Klikni Next.
Policy Configuration
- Policy name: Allow Friends
- Action: Allow
- Klikni + Add include
- Izaberi Emails
- Dodaj email adrese prijatelja
- Klikni Next i Add application
Kada neko pokuša pristupiti, Cloudflare prikazuje login ekran, korisnik unosi email, dobija magic link, klikne i automatski je ulogovan na 24h.
Samo odobreni ljudi mogu pristupiti.
Rešavanje Problema
Problem: Tunnel ne radi
docker logs cloudflared
Ako piše "authentication failed" - proveri token.
Problem: Domen ne radi nakon 24h
DNS propagacija može trajati duže. Proveri na: dnschecker.org
Problem: HTTPS ne radi
Proveri SSL/TLS mod u Cloudflare: SSL/TLS → Overview → Full
Problem: Restartovanje tunela
docker restart cloudflared
Problem: Prijatelj ne može pristupiti
- Proveri da li je email dodat u Access policy
- Proveri spam folder za magic link
🎉 Uspešno si postavio remote pristup!
Šta si dobio:
- ✅ Javni pristup sa bilo kog mesta
- ✅ Automatski HTTPS
- ✅ Email login za prijatelje
- ✅ Remote SSH
- ✅ Bez port forwarding-a
Vaši URL-ovi:
- 🎬 https://jellyfin.vasedomen.com
- 🎥 https://radarr.vasedomen.com
- 📺 https://sonarr.vasedomen.com
- 🖥️ ssh@ssh.vasedomen.com
Uživaj! 🚀