stacks/linkwarden/compose.yaml
2025-07-01 17:30:05 +08:00

51 lines
1.5 KiB
YAML

name: linkwarden
services:
linkwarden:
image: ghcr.io/linkwarden/linkwarden:latest
depends_on:
- linkwarden_db
- linkwarden_search
volumes:
- /mnt/docker/linkwarden/data:/data/data
environment:
- DATABASE_URL=postgresql://linkwarden:${POSTGRES_PASSWORD}@linkwarden_db:5432/linkwarden
- MEILI_HOST=linkwarden_search
- NEXTAUTH_URL=https://linkwarden.ferngarden.net/api/v1/auth
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
- NEXT_PUBLIC_AUTHENTIK_ENABLED=true
- AUTHENTIK_ISSUER=https://auth.fern.garden/application/o/linkwarden
- AUTHENTIK_CLIENT_ID=${AUTHENTIK_CLIENT_ID}
- AUTHENTIK_CLIENT_SECRET=${AUTHENTIK_CLIENT_SECRET}
networks:
- default
- proxy
restart: always
labels:
caddy: linkwarden.ferngarden.net
caddy.import: internal
caddy.reverse_proxy: '{{ upstreams 3000 }}'
linkwarden_db:
image: postgres:16-alpine
container_name: linkwarden_db
volumes:
- /mnt/docker/linkwarden/database:/var/lib/postgresql/data
environment:
- POSTGRES_USER=linkwarden
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=linkwarden
networks:
- default
restart: always
linkwarden_search:
image: getmeili/meilisearch:v1.12.8
container_name: linkwarden_search
volumes:
- /mnt/docker/linkwarden/search:/meili_data
networks:
- default
restart: always
networks:
default:
proxy:
external: true