Reverse Proxy

Set up Caddy, Nginx, or Cloudflare Tunnel to expose LinkBreeze with HTTPS.

LinkBreeze runs on port 3000 by default. To expose it on a domain with HTTPS, use a reverse proxy.

Caddy automatically provisions and renews Let's Encrypt certificates.

links.example.com {
    reverse_proxy localhost:3000
}

That's it. Caddy handles TLS, HTTP/2, and redirects HTTP to HTTPS automatically.

Nginx

server {
    listen 80;
    server_name links.example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Then set up Certbot for HTTPS:

sudo certbot --nginx -d links.example.com

Traefik (Docker Labels)

Add labels to your Docker Compose service:

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.linkbreeze.rule=Host(`links.example.com`)"
  - "traefik.http.routers.linkbreeze.entrypoints=websecure"
  - "traefik.http.routers.linkbreeze.tls.certresolver=letsencrypt"
  - "traefik.http.services.linkbreeze.loadbalancer.server.port=3000"

Cloudflare Tunnel (No Open Ports)

No domain purchase or port forwarding needed:

cloudflared tunnel --url http://localhost:3000

Cloudflare provides an instant HTTPS URL. For a permanent setup, create a named tunnel and point your domain's CNAME to it.