76 lines
2.1 KiB
Markdown
76 lines
2.1 KiB
Markdown
# Linkwarden
|
|
|
|
Self-hosted bookmark manager with link archiving.
|
|
|
|
## Access
|
|
- **Tailscale:** [linkwarden.bunny-wyvern.ts.net](https://linkwarden.bunny-wyvern.ts.net)
|
|
- **LAN:** `http://192.168.2.114:5001`
|
|
|
|
## Containers
|
|
|
|
| Container | Image | Role |
|
|
|---|---|---|
|
|
| `linkwarden` | `ghcr.io/linkwarden/linkwarden:latest` | Web app |
|
|
| `linkwarden-db` | `postgres:16-alpine` | PostgreSQL database |
|
|
| `linkwarden-tailscale-sidecar` | `tailscale/tailscale:latest` | Tailscale node |
|
|
|
|
## Compose File
|
|
**Path:** `/home/artanis/DockerFiles/linkwarden/docker-compose.yml`
|
|
|
|
```yaml
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: linkwarden-db
|
|
restart: always
|
|
pull_policy: always
|
|
volumes:
|
|
- /home/artanis/DockerFiles/linkwarden/pgdata:/var/lib/postgresql/data
|
|
|
|
linkwarden:
|
|
container_name: linkwarden
|
|
image: ghcr.io/linkwarden/linkwarden:latest
|
|
restart: always
|
|
pull_policy: always
|
|
ports:
|
|
- 5001:3000
|
|
volumes:
|
|
- /home/artanis/DockerFiles/linkwarden/data:/data/data
|
|
environment:
|
|
- DATABASE_URL=postgresql://postgres:<redacted>@postgres:5432/postgres
|
|
- NEXTAUTH_URL=https://linkwarden.bunny-wyvern.ts.net/api/v1/auth
|
|
- NEXTAUTH_SECRET=<redacted>
|
|
depends_on:
|
|
- postgres
|
|
|
|
linkwarden-tailscale-sidecar:
|
|
image: tailscale/tailscale:latest
|
|
container_name: linkwarden-tailscale-sidecar
|
|
restart: unless-stopped
|
|
cap_add:
|
|
- NET_ADMIN
|
|
devices:
|
|
- /dev/net/tun
|
|
volumes:
|
|
- linkwarden_tailscale_state:/var/lib/tailscale
|
|
environment:
|
|
- TS_AUTHKEY=<redacted>
|
|
- TS_HOSTNAME=linkwarden
|
|
- TS_STATE_DIR=/var/lib/tailscale
|
|
network_mode: "service:linkwarden"
|
|
|
|
volumes:
|
|
linkwarden_tailscale_state:
|
|
```
|
|
|
|
## Data Layout
|
|
|
|
| Path | Contents |
|
|
|---|---|
|
|
| `/home/artanis/DockerFiles/linkwarden/pgdata` | PostgreSQL data directory |
|
|
| `/home/artanis/DockerFiles/linkwarden/data` | Linkwarden app data (archived pages, assets) |
|
|
|
|
## Notes
|
|
- `NEXTAUTH_URL` must point to the Tailscale URL for auth to work correctly
|
|
- A Meilisearch service was previously considered (commented out in compose) but not deployed
|