===== Installing and Configuring Cloudflared on an LXC ===== ==== 1. Download and Install Cloudflared ==== * Download the `.deb` package: wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb * Install the package using `dpkg`: sudo dpkg -i cloudflared-linux-amd64.deb * Verify the installation: cloudflared --version ==== 2. Authenticate Cloudflared with Cloudflare ==== * Run the following command to log in and create a tunnel: cloudflared tunnel login * The authentication process will prompt you to open a URL in your browser to log in with your Cloudflare account. ==== 3. Create a New Tunnel ==== * Create the tunnel and give it a name: cloudflared tunnel create my-tunnel * Note the tunnel ID and the location of the `cert.pem` file, which will be used for routing traffic. ==== 4. Configure the Tunnel to Route Traffic ==== * Create a configuration file: sudo nano /etc/cloudflared/config.yml * Example configuration: tunnel: 72a29ddd==== TUNNEL ====cc4d8e3fc2ba credentials-file: /home/facundo/.cloudflared/72a29ddd-7ef4-46e3-97ef-cc4d8e3fc2ba.json ingress: - hostname: *.facundoitest.space service: http://192.168.88.250:443 - service: http_status:404 ==== 5. Run the Tunnel ==== * Start the tunnel: sudo cloudflared tunnel run my-tunnel * Ensure the tunnel is active and routing traffic correctly. ==== 6. Configure NGINX on Raspberry Pi ==== * Update the NGINX configuration on your Raspberry Pi to handle requests coming from the tunnel. ==== 7. Set Up Cloudflared as a Systemd Service ==== * Create a systemd service file: sudo nano /etc/systemd/system/cloudflared.service * Add the following configuration: [Unit] Description=Cloudflare Tunnel After=network.target [Service] Type=simple User=facundo ExecStart=/usr/local/bin/cloudflared tunnel run my-tunnel Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target * Enable and start the service: sudo systemctl daemon-reload sudo systemctl enable cloudflared sudo systemctl start cloudflared * Check the status of the service: sudo systemctl status cloudflared ==== 8. Verify Tunnel Operation ==== * Ensure that the tunnel is running and NGINX is properly handling requests by checking the logs and testing the subdomains. ===== Conclusion ===== Following these steps will ensure that your `cloudflared` tunnel is correctly set up on your LXC and that it integrates smoothly with your existing reverse proxy setup on your Raspberry Pi.