Files
container/linkwarden/docker-compose.yml

74 lines
2.2 KiB
YAML

services:
linkwarden:
image: ghcr.io/linkwarden/linkwarden:latest
container_name: linkwarden-app
environment:
- DATABASE_URL=postgresql://${PG_USER:-linkwarden}:${PG_PASS:-linkwarden}@postgres:5432/${PG_DB:-linkwarden}
- NEXTAUTH_URL=${NEXTAUTH_URL}
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
#- NEXTAUTH_BASE_PATH=/api/auth
- NEXT_PUBLIC_KEYCLOAK_ENABLED=${NEXT_PUBLIC_KEYCLOAK_ENABLED:-false}
- KEYCLOAK_CUSTOM_NAME=${KEYCLOAK_CLIENT_ID:-keycloak}
- KEYCLOAK_ISSUER=${KEYCLOAK_ISSUER}
- KEYCLOAK_CLIENT_ID=${KEYCLOAK_CLIENT_ID}
- KEYCLOAK_CLIENT_SECRET=${KEYCLOAK_CLIENT_SECRET}
restart: unless-stopped
ports:
- ${EXT_PORT}:3000
expose:
- 3000
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/data:/data/data
depends_on:
- postgres
- meilisearch
#networks:
# - internal
# - tier-2
#labels:
# - traefik.enable=true
# - traefik.docker.network=proxy
# - traefik.http.routers.linkwarden.rule=Host(`linkwarden.example.com`)
# - traefik.http.services.linkwarden.loadbalancer.server.port=3000
# # Optional part for traefik middlewares
# - traefik.http.routers.linkwarden.middlewares=local-ipwhitelist@file
postgres:
image: docker.io/library/postgres:16-alpine
container_name: linkwarden-psql
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
start_period: 20s
interval: 30s
retries: 5
timeout: 5s
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/psql:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: ${PG_PASS:-linkwarden}
POSTGRES_USER: ${PG_USER:-linkwarden}
POSTGRES_DB: ${PG_DB:-linkwarden}
expose:
- 5432
#networks:
# - internal
meilisearch:
image: getmeili/meilisearch:v1.12.8
container_name: linkwarden-search
restart: unless-stopped
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/meili_data:/meili_data
#networks:
# - internal
#networks:
# tier-2:
# external: true
# internal:
# internal: true