Repository navigation
Network Access
🌐 Language: EN · DE · FR · ES · TR · EL
Tesla Carview runs on your own server — but for it to be reachable from the internet (including from your Tesla), you need a stable, publicly accessible address. This page walks you through every option, step by step.
Not an IT expert? Follow this page from top to bottom. Every option includes precise instructions with no assumed knowledge.
| Your situation | Best option |
|---|---|
| Home internet (IP changes daily) | Option A: Cloudflare Tunnel or Option B: DynDNS + Router |
| Cable / fibre — can't open ports (CG-NAT) | Option A: Cloudflare Tunnel |
| VPS / server at a hosting provider | Option C: VPS with static IP |
| You own a domain | Option D: Own domain + DNS record |
Your home internet connection gets a new IP address every day (or more often). This means the address you enter today is wrong tomorrow.
Dynamic DNS solves this:
- You reserve a fixed hostname (e.g.
my-tesla.duckdns.org) - A small program on your router or server automatically reports each new IP
- Your hostname always points to the current IP — no manual updates needed
Many cable providers (Vodafone, Virgin Media, and others) no longer give each customer their own public IPv4. Multiple customers share one IP — this is Carrier-Grade NAT (CG-NAT).
How to check:
- Visit https://api4.my-ip.io/ip — note the IP shown
- Open your router's status page — note the WAN IP there
- If the two IPs are different → you are behind CG-NAT
With CG-NAT, port forwarding does not work. Use Option A (Cloudflare Tunnel) — it doesn't need open ports.
Cloudflare Tunnel creates an encrypted outbound connection from your server to Cloudflare's global network. No port forwarding needed. Free. Works behind CG-NAT.
Requirements: A domain, or a free subdomain (instructions below).
Go to duckdns.org, sign in with Google or GitHub, choose a name → you get e.g. my-tesla.duckdns.org for free.
Or buy a cheap domain (~$1/year) at Porkbun, Namecheap, or inwx.de.
- Register at dash.cloudflare.com — free
- Click "Add a Site" → enter your domain → Free plan
- Cloudflare shows you two nameserver addresses, e.g.:
alice.ns.cloudflare.com bob.ns.cloudflare.com - Go to your domain registrar and enter these as the nameservers
- Wait 10–30 minutes → Cloudflare confirms "Nameservers updated"
On your server (via SSH):
# Download and install
curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb \
-o /tmp/cloudflared.deb
dpkg -i /tmp/cloudflared.deb
# Log in (a browser link is shown — open it)
cloudflared tunnel login
# Create tunnel
cloudflared tunnel create tesla-carview
# Note the Tunnel ID shown!Create config file:
mkdir -p /etc/cloudflared
nano /etc/cloudflared/config.ymlContent (replace YOUR_TUNNEL_ID and yourdomain.com):
tunnel: YOUR_TUNNEL_ID
credentials-file: /root/.cloudflared/YOUR_TUNNEL_ID.json
ingress:
- hostname: tesla.yourdomain.com
service: http://localhost:80
- service: http_status:404Create DNS entry automatically:
cloudflared tunnel route dns tesla-carview tesla.yourdomain.comcloudflared service install
systemctl enable cloudflared
systemctl start cloudflaredDone. Tesla Carview is now accessible at https://tesla.yourdomain.com — with automatic HTTPS, no open ports, no static IP needed.
Important: Only works if you have a real public IPv4 address. Check for CG-NAT first.
Dynu (free, no monthly confirmation required):
- Go to dynu.com → create account → DDNS → Add
- Enter a name, e.g.
my-tesla→ you getmy-tesla.freeddns.org - Note your hostname, username, and password (Control Panel → API Credentials)
DuckDNS (even simpler):
- duckdns.org → sign in → choose subdomain → note your token
FritzBox:
-
Open http://fritz.box → Internet → Sharing → DynDNS
-
Check "Use DynDNS" and fill in:
Field Dynu DuckDNS Provider User-defined User-defined Update URL https://api.dynu.com/nic/update?hostname=<domain>&myip=<ipaddr>https://www.duckdns.org/update?domains=YOURNAME&token=YOURTOKEN&ip=<ipaddr>Domain my-tesla.freeddns.orgmy-tesla.duckdns.orgUsername Dynu username — Password Dynu password — -
Click Apply → green checkmark = working
Other routers: Look for "Dynamic DNS" or "DDNS" in the internet/WAN settings.
So incoming traffic reaches your server:
FritzBox: Internet → Sharing → Port Sharing → New Port Sharing → Other Application
| Field | Value |
|---|---|
| Name | Tesla Carview |
| Protocol | TCP |
| External port | 443 |
| To device | Your server's local IP (e.g. 192.168.1.100) |
| Internal port | 443 |
Tip: Give your server a fixed local IP. On FritzBox: Home Network → Network → your device → Always assign this IP.
# Set FRONTEND_URL in /opt/tesla-carview/backend/.env:
FRONTEND_URL=https://my-tesla.freeddns.org
# Get SSL certificate:
certbot --nginx -d my-tesla.freeddns.orgA VPS (Virtual Private Server) is a small rented Linux server with a fixed, permanent public IP. No DynDNS, no port forwarding needed.
Price comparison (2025):
| Provider | Product | Price/month |
|---|---|---|
| Hetzner | CX22 | ~€4.35 |
| netcup | VPS 1000 G11 | ~€4.44 |
| Contabo | VPS S | ~€5.99 |
Setup (example: Hetzner):
- Register → create server → choose Ubuntu 24.04 → note the public IP
- SSH in:
ssh root@YOUR-SERVER-IP - Run the setup script:
curl -fsSL https://raw.githubusercontent.com/KnevS/Tesla-Carview/main/deploy/setup.sh | bash
The script asks for your domain name and configures nginx + Let's Encrypt automatically.
Then point a domain at it → Option D
If you have your own domain and a server with a fixed IP, create an A record:
What is an A record? It's a phone-book entry: tesla.yourdomain.com → 123.456.789.0
At Cloudflare DNS:
DNS → Add record → Type: A, Name: tesla, IPv4: your server IP → Save
At Namecheap:
Domain List → Manage → Advanced DNS → Add New Record → A Record, Host: tesla, Value: your IP
At IONOS:
Domains → your domain → DNS → Add record → A, Hostname: tesla, Destination: your IP
At Hetzner DNS (dns.hetzner.com):
Select zone → Records → Add Record → A, Name: tesla, Value: your IP
TTL: Set 300 (5 minutes) initially — makes it easy to correct errors. Increase to 3600 later.
nslookup tesla.yourdomain.com
# or online: https://dnschecker.orgIf your domain but no fixed IP:
CNAME → DuckDNS (router keeps DuckDNS updated):
tesla.yourdomain.com → CNAME → my-tesla.duckdns.org
Is your router IP different from what https://api4.my-ip.io/ip shows?
YES (CG-NAT) → Option A: Cloudflare Tunnel
NO:
Do you have a server in a data centre?
YES → Option C + D (VPS + DNS record)
NO (home network):
Do you have your own domain?
YES → Option B (DynDNS) + Option D (DNS record)
NO → Option B with free subdomain (DuckDNS/Dynu)
DNS takes 5–30 minutes to propagate. Test locally first:
curl -I http://localhostcertbot renew --force-renewal
systemctl restart nginxYour router replaces <ipaddr> automatically — don't fill it in manually. Test the URL in a browser by replacing <ipaddr> with your actual current IP.
That's CG-NAT → use Option A (Cloudflare Tunnel).
Newer fibre connections use IPv6. It works the same — use a AAAA record instead of A in DNS. Your router keeps a fixed IPv6 prefix (no DynDNS needed for IPv6 on most connections).
- Cloudflare Tunnel docs
- DuckDNS — free dynamic DNS
- Dynu DDNS — free, no monthly confirmation
- dnschecker.org — verify DNS propagation worldwide
- api4.my-ip.io/ip — check your public IP
🇬🇧 Home · Installation · Troubleshooting · License | 🇩🇪 Startseite · Installation · Fehlerbehebung | 🇫🇷 Accueil | 🇪🇸 Inicio | 🇹🇷 Ana Sayfa | 🇬🇷 Αρχική
GitHub Repository · Report an Issue
Tesla Carview — non-commercial, self-hosted Tesla data logger · © Sven Krische
🇬🇧 English
🚀 Getting Started
🌐 Network & Infrastructure
⚙️ Configuration
🔐 Security
📱 Reference
🇩🇪 Deutsch
🚀 Einstieg
🌐 Netzwerk & Infrastruktur
⚙️ Konfiguration
🔐 Sicherheit
📱 Referenz
🇫🇷 Français
🚀 Démarrage
🌐 Réseau & Infrastructure
⚙️ Configuration
🔐 Sécurité
📱 Référence
🇪🇸 Español
🚀 Primeros pasos
🌐 Red & Infraestructura
⚙️ Configuración
🔐 Seguridad
📱 Referencia
🇹🇷 Türkçe
🚀 Başlarken
🌐 Ağ & Altyapı
⚙️ Yapılandırma
🔐 Güvenlik
📱 Başvuru