- Mutare și reorganizare foldere proiecte - Actualizare path-uri în TOOLS.md - Sincronizare configurații agenți - 79 fișiere actualizate
167 lines
4.2 KiB
Markdown
167 lines
4.2 KiB
Markdown
# Cloudflare Tunnel: Make Localhost Public Without Port Forwarding
|
|
|
|
**Video:** https://youtu.be/etluT8UC-nw
|
|
**Durată:** 18:02
|
|
**Data:** 2026-01-29
|
|
**Tags:** #cloudflare #tunnel #localhost #networking #devops @work
|
|
|
|
---
|
|
|
|
## TL;DR
|
|
Cloudflare Tunnel permite expunerea unui server local (localhost) pe internet printr-un domeniu public, fără port forwarding, fără configurare router, fără expunerea IP-ului public. App-ul rămâne pe mașina ta, Cloudflare doar rutează traficul securizat.
|
|
|
|
---
|
|
|
|
## Două metode prezentate
|
|
|
|
### 1. Quick Tunnel (temporar, pentru teste rapide)
|
|
|
|
**Instalare Cloudflared:**
|
|
```bash
|
|
# Mac
|
|
brew install cloudflared
|
|
|
|
# Windows (PowerShell)
|
|
winget install -id cloudflare.cloudflared
|
|
|
|
# Linux Debian/Ubuntu
|
|
# Vezi documentația oficială pentru package-ul apt
|
|
```
|
|
|
|
**Verificare instalare:**
|
|
```bash
|
|
cloudflared --version
|
|
```
|
|
|
|
**Rulare Quick Tunnel:**
|
|
```bash
|
|
cloudflared tunnel --url localhost:3000
|
|
```
|
|
|
|
**Ce se întâmplă:**
|
|
- Apare un URL public temporar: `https://random-words.trycloudflare.com`
|
|
- Oricine poate accesa aplicația ta prin acest URL
|
|
- **Limitare:** URL-ul se schimbă la fiecare restart
|
|
|
|
---
|
|
|
|
### 2. Permanent Tunnel (cu domeniu propriu)
|
|
|
|
**Cerințe:**
|
|
- Cont Cloudflare (gratuit)
|
|
- Domeniu propriu (cumpărat de oriunde: GoDaddy, Namecheap, etc.)
|
|
- DNS-ul domeniului trebuie mutat la Cloudflare
|
|
|
|
**Pași detaliați:**
|
|
|
|
#### Pas 1: Adaugă domeniul în Cloudflare
|
|
1. Login pe Cloudflare Dashboard
|
|
2. Domains → Onboard a domain
|
|
3. Introdu numele domeniului
|
|
4. Lasă "Quick scan for DNS records" activat
|
|
5. Alege planul **Free** (suficient pentru tunnel)
|
|
|
|
#### Pas 2: Schimbă nameservers la registrar
|
|
1. Cloudflare îți dă 2 nameservers (ex: `xxx.ns.cloudflare.com`)
|
|
2. Mergi la registrar-ul tău (GoDaddy, etc.)
|
|
3. Schimbă nameservers cu cele de la Cloudflare
|
|
4. Așteaptă propagare DNS (5-10 min până la 24h)
|
|
|
|
#### Pas 3: Autentifică Cloudflared
|
|
```bash
|
|
cloudflared tunnel login
|
|
```
|
|
- Se deschide browser-ul
|
|
- Selectezi domeniul pentru care autorizezi
|
|
- Se creează fișier credentials în `~/.cloudflared/`
|
|
|
|
#### Pas 4: Creează tunnel
|
|
```bash
|
|
cloudflared tunnel create nume-tunnel
|
|
```
|
|
- Se creează un fișier JSON cu credentials în `~/.cloudflared/`
|
|
- Notează **Tunnel ID** (ex: `1ed140...`)
|
|
|
|
#### Pas 5: Creează rută DNS
|
|
```bash
|
|
cloudflared tunnel route dns nume-tunnel subdomain.domeniu.com
|
|
```
|
|
Exemplu: `cloudflared tunnel route dns myapp demo.romfast.ro`
|
|
|
|
#### Pas 6: Creează config file
|
|
```bash
|
|
touch ~/.cloudflared/config.yml
|
|
```
|
|
|
|
**Conținut `config.yml`:**
|
|
```yaml
|
|
tunnel: TUNNEL_ID_AICI
|
|
credentials-file: /Users/user/.cloudflared/TUNNEL_ID.json
|
|
|
|
ingress:
|
|
- hostname: demo.romfast.ro
|
|
service: http://localhost:3000
|
|
- service: http_status:404
|
|
```
|
|
|
|
**Important:** La `credentials-file` pune calea ABSOLUTĂ!
|
|
|
|
#### Pas 7: Pornește tunnel
|
|
```bash
|
|
cloudflared tunnel run nume-tunnel
|
|
```
|
|
|
|
---
|
|
|
|
## Puncte cheie
|
|
|
|
### Ce face Cloudflare Tunnel:
|
|
- Creează conexiune **outbound** securizată de la mașina ta la Cloudflare
|
|
- **NU** hostează app-ul pe serverele Cloudflare
|
|
- App-ul rulează **doar** pe mașina ta
|
|
- Traficul: Internet → Cloudflare → Tunnel securizat → Localhost
|
|
|
|
### Limitări:
|
|
- Dacă PC-ul e oprit → site-ul nu funcționează
|
|
- Dacă serverul local e oprit → Cloudflare returnează 404
|
|
- Nu e hosting, e routing
|
|
|
|
### Cazuri de utilizare ideale:
|
|
- Demo-uri pentru clienți
|
|
- Tool-uri interne
|
|
- Testare/staging
|
|
- Acces temporar public fără VPS
|
|
|
|
### Avantaje:
|
|
- **Gratuit** (planul free e suficient)
|
|
- Fără port forwarding
|
|
- Fără expunere IP public
|
|
- Fără configurare router/firewall
|
|
- Funcționează din orice rețea (și din spatele NAT)
|
|
|
|
---
|
|
|
|
## Comenzi utile
|
|
|
|
```bash
|
|
# Vezi toate tunnelele
|
|
cloudflared tunnel list
|
|
|
|
# Verifică path-ul complet al credentials
|
|
realpath ~/.cloudflared/TUNNEL_ID.json
|
|
|
|
# Pornește tunnel din config
|
|
cloudflared tunnel run nume-tunnel
|
|
```
|
|
|
|
---
|
|
|
|
## Aplicabilitate pentru ROA/Flowise
|
|
|
|
Poți expune chatbot-ul Flowise pe `chat.romfast.ro`:
|
|
1. Flowise rulează pe `localhost:3000` pe PC-ul tău
|
|
2. Configurezi tunnel: `hostname: chat.romfast.ro` → `service: http://localhost:3000`
|
|
3. Clienții accesează `chat.romfast.ro`, ajung la Flowise pe PC-ul tău
|
|
|
|
**Condiție:** PC-ul trebuie să fie pornit și conectat la internet.
|