-
-
Save danielraffel/c1ede062cae5a863ec388aef61ae5eb9 to your computer and use it in GitHub Desktop.
Cloudflare Tunnel setup for Teslamate and Grafana
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Add cloudflare gpg key | |
sudo mkdir -p --mode=0755 /usr/share/keyrings | |
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null | |
# Add this repo to your apt repositories | |
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared jammy main' | sudo tee /etc/apt/sources.list.d/cloudflared.list | |
# install cloudflared | |
sudo apt-get update && sudo apt-get install cloudflared | |
sudo cloudflared tunnel login | |
sudo cloudflared tunnel create teslamate-yourDomain-com # Configure the name for your tunnel using your domain | |
sudo cloudflared tunnel route ip add YOUR_SERVER_IP/32 teslamate-yourDomain-com # Configure YOUR_SERVER_IP | |
sudo cloudflared tunnel route dns teslamate-yourDomain-com teslamate.yourDomain.com # Configure your tunnel teslamate-yourDomain-com and your domain teslamate.yourDomain.com | |
sudo cloudflared tunnel route dns teslamate-yourDomain-com grafana.yourDomain.com # Assiming hosting on same domain use your tunnel teslamate-yourDomain-com and configure grafana domain grafana.yourDomain.com | |
tunnel_id=$(sudo cloudflared tunnel info teslamate-yourDomain-com | grep -oP 'Your tunnel \K([a-z0-9-]+)') # Replace teslamate-yourDomain-com with your tunnel info | |
# Create config file | |
mkdir /etc/cloudflared | |
echo "tunnel: teslamate-yourDomain-com" > /etc/cloudflared/config.yml # Replace teslamate-yourDomain-com with your tunnel info | |
echo "credentials-file: /root/.cloudflared/$tunnel_id.json" >> /etc/cloudflared/config.yml | |
echo "protocol: quic" >> /etc/cloudflared/config.yml | |
echo "logfile: /var/log/cloudflared.log" >> /etc/cloudflared/config.yml | |
echo "loglevel: debug" >> /etc/cloudflared/config.yml | |
echo "transport-loglevel: info" >> /etc/cloudflared/config.yml | |
echo "ingress:" >> /etc/cloudflared/config.yml | |
echo " - hostname: teslamate.yourDomain.com" >> /etc/cloudflared/config.yml # Configure your teslamate domain aka teslamate.yourDomain.com | |
echo " service: http://localhost:4000" >> /etc/cloudflared/config.yml | |
echo " - hostname: grafana.yourDomain.com" >> /etc/cloudflared/config.yml # Configure your grafana domain aka grafana.yourDomain.com | |
echo " service: http://localhost:3000" >> /etc/cloudflared/config.yml | |
echo " - service: http_status:404" >> /etc/cloudflared/config.yml | |
cloudflared service install | |
systemctl start cloudflared | |
systemctl status cloudflared |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment