55 lines
1.7 KiB
YAML
55 lines
1.7 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
container_name: linkwarden-db
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
POSTGRES_PASSWORD:
|
|
NEXTAUTH_SECRET:
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /srv/docker/linkwarden/pgdata:/var/lib/postgresql/data
|
|
networks:
|
|
- traefik_network
|
|
- linkwarden
|
|
|
|
linkwarden:
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres
|
|
restart: unless-stopped
|
|
image: ghcr.io/linkwarden/linkwarden:latest
|
|
container_name: linkwarden
|
|
ports:
|
|
- 5017:3000
|
|
volumes:
|
|
- /srv/docker/linkwarden/data:/data/data
|
|
depends_on:
|
|
- postgres
|
|
networks:
|
|
- traefik_network
|
|
- linkwarden
|
|
labels:
|
|
- flame.type=application # "app" works too
|
|
- flame.name=${SERVICE_NAME}
|
|
- flame.url=https://${SERVICE_NAME}.${DOMAIN_NAME} #Adjust to your domain or IP
|
|
- flame.icon=https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/linkwarden.png
|
|
### Enable Traefik
|
|
- traefik.enable=true
|
|
- traefik.docker.network=traefik_network
|
|
### For HTTP
|
|
#- traefik.http.routers.${SERVICE_NAME}.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
|
|
#- traefik.http.routers.${SERVICE_NAME}.entrypoints=web
|
|
### For HTTPS
|
|
- traefik.http.routers.${SERVICE_NAME}-https.tls=true
|
|
- traefik.http.routers.${SERVICE_NAME}-https.tls.certresolver=cloudflare
|
|
- traefik.http.routers.${SERVICE_NAME}-https.entrypoints=websecure
|
|
- traefik.http.routers.${SERVICE_NAME}-https.rule=Host(`${SERVICE_NAME}.${DOMAIN_NAME}`)
|
|
networks:
|
|
traefik_network:
|
|
external: true
|
|
linkwarden:
|
|
name: linkwarden_network
|
|
driver: bridge |