server-up/apps/tailscale/template.json
Ramon ec49337167
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 3m18s
feat(apps): WireGuard, Tailscale, Cloudflare Tunnel en Proton Mail Bridge
De catalogus had niets om een machine elders bij je eigen netwerk te laten
komen, en niets om Proton Mail bruikbaar te maken voor apps die geen Proton
spreken.

- wireguard: client (eigen wg0.conf in wg_confs) of server, met NET_ADMIN,
  SYS_MODULE, de kernelmodules van de host en src_valid_mark.
- tailscale: network_mode host zodat de tunnel voor de hele machine geldt,
  met bewaarde staat en optionele subnetroutes.
- cloudflared: publiceert zelf geen poorten en werkt zichzelf niet bij.
- protonmail-bridge: SMTP op 1026 zodat hij naast Mailpit past; het sjabloon
  legt de eenmalige aanmelding via de CLI uit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H9Vcwu7owJZ3nj5dCf4VFT
2026-08-07 15:29:47 +02:00

50 lines
2.6 KiB
JSON

{
"kind": "compose",
"metadata": {
"name": "Tailscale",
"description": "Zet deze machine in je eigen Tailscale-netwerk, zodat je er vanaf elke locatie bij kunt zonder poorten open te zetten. Als subnetrouter maakt hij ook de rest van je thuisnetwerk bereikbaar.",
"tags": ["vpn", "wireguard", "op afstand", "netwerk", "mesh"],
"icon": {"provider": "selfhst", "id": "tailscale"},
"version": {"name": "latest"},
"categories": ["netwerk", "beveiliging"],
"architectures": ["amd64", "arm64"],
"architecture_note": "Draait met network_mode: host, zodat de tunnel voor de hele machine geldt en niet alleen voor deze container."
},
"variables": [
{
"title": "Algemeen",
"items": [
{"name": "service_name", "type": "str", "title": "Servicenaam",
"default": "tailscale", "required": true},
{"name": "machine_naam", "type": "str", "title": "Naam in je netwerk",
"default": "server-up", "required": true,
"description": "Onder deze naam verschijnt de machine in je tailnet."},
{"name": "appdata_dir", "type": "str", "title": "Appdata-map",
"default": "/opt/serverup/appdata", "required": true,
"description": "Hier blijft de aanmelding staan, zodat je na een herstart niet opnieuw hoeft te koppelen."}
]
},
{
"title": "Toegang",
"items": [
{"name": "auth_key", "type": "str", "title": "Auth key",
"default": "", "required": true, "secret": true, "eigen_invoer": true,
"help": "Maak er een aan in de Tailscale-console onder Settings → Keys. Een reusable key is handig als je meerdere machines aansluit."}
]
},
{
"title": "Netwerk",
"items": [
{"name": "routes", "type": "str", "title": "Netwerken achter deze machine",
"default": "", "required": false,
"description": "Bijvoorbeeld 10.0.20.0/24 om je hele thuisnetwerk bereikbaar te maken. Keur de route daarna goed in de Tailscale-console. Leeg = alleen deze machine."},
{"name": "accept_dns", "type": "str", "title": "DNS van Tailscale gebruiken",
"default": "false", "required": true, "advanced": true,
"description": "'true' laat deze machine de DNS-instellingen uit je tailnet volgen — handig voor split-DNS naar je eigen domein, maar het overschrijft de resolver van de host."},
{"name": "extra_args", "type": "str", "title": "Extra opties",
"default": "--accept-routes", "required": false, "advanced": true,
"description": "Wordt meegegeven aan het commando 'tailscale up'."}
]
}
]
}