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