# BookStack with Tailscale Integration ![BookStack with Tailscale](https://raw.githubusercontent.com/BookStackApp/BookStack/master/logo.svg "BookStack") This project sets up a BookStack instance with Tailscale VPN integration using Docker Compose. ## Quick Start (Tailscale) 1. Copy the example environment file and fill in your values: ```bash cp .env.example .env ``` 2. Edit `.env` and set: - `TS_AUTHKEY` — your Tailscale auth key 3. Generate a BookStack `APP_KEY` (32-char base64) — see https://bookstack.com/installation/generate-appkey 4. Start the stack: ```bash docker compose up -d ``` 5. Access BookStack at `http://bookstack..ts.net` ## Headscale If you're using Headscale instead of Tailscale: 1. Copy the example environment file: ```bash 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: ```bash cp tailscale/config/serve.headscale.json tailscale/config/serve.json ``` 4. Edit `serve.json` and replace `bookstack.example.com` with your actual domain 5. Start the stack: ```bash docker compose up -d ``` 6. Access BookStack at `http://bookstack.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: ```bash docker compose restart bookstack-ts ``` ## Optional: Direct Host Access Uncomment the ports section in `docker-compose.yml` if you need direct access without Tailscale: ```yaml ports: - 80:80 ```