peskyadmin 1c7da2bef5 docs: rewrite README with clear Tailscale vs Headscale paths
- Tailscale as default (Quick Start at top)
- Headscale section at bottom with explicit steps
- Clear .env changes for each environment
- Updated serve config switching table
2026-08-02 16:26:58 -04:00

Vikunja with Tailscale Integration

Vikunja with Tailscale

This project sets up a Vikunja instance with Tailscale VPN integration using Docker Compose.

Quick Start (Tailscale)

  1. Copy the example environment file and fill in your values:
    cp .env.example .env
    
  2. Edit .env and set:
    • TS_AUTHKEY — your Tailscale auth key
    • TS_LOGIN_SERVER — leave as https://controlplane.tailscale.com (default)
  3. Start the stack:
    docker compose up -d
    
  4. Access Vikunja at http://vikunja.<your-tailnet>.ts.net

Headscale

If you're using Headscale instead of Tailscale:

  1. Copy the example environment file:
    cp .env.example .env
    
  2. Edit .env and set:
    • TS_AUTHKEY — your Headscale auth key
    • TS_LOGIN_SERVER — your Headscale server URL
  3. Switch to the Headscale serve config:
    cp tailscale/config/serve.headscale.json tailscale/config/serve.json
    
  4. Edit serve.json and replace vikunja.example.com with your actual domain
  5. Start the stack:
    docker compose up -d
    
  6. Access Vikunja at http://vikunja.yourdomain.com

Configuration

See .env.example for all available options.

Switching Serve Configs

Environment File to use Notes
Tailscale (default) tailscale/config/serve.json Supports HTTP + HTTPS with certs
Headscale tailscale/config/serve.headscale.json HTTP only

After changing the serve config, restart the sidecar:

docker compose restart vikunja-ts

Optional: Direct Host Access

Uncomment the ports section in docker-compose.yml if you need direct access without Tailscale:

ports:
  - 3456:3456
Description
Tailscale ready Vikunja deployment
Readme 53 KiB
Languages
Markdown 100%