Files
Docker-Compose/Domain-Locker/Compose.yaml
T
2025-12-06 01:14:49 +00:00

69 lines
1.9 KiB
YAML

services:
postgres:
image: postgres:15-alpine
container_name: domain-locker-db
restart: unless-stopped
# Env vars for initial DB
environment:
POSTGRES_DB: domain_locker
POSTGRES_USER: postgres
POSTGRES_PASSWORD: changeme2420
ports:
- "5432:5432"
volumes:
# This is where the Postgres data will be stored
- /srv/docker/domain-locker/postgres_data:/var/lib/postgresql/data
# If you want to skip the init script, you can use the SQL to seed the db
# - ./db/schema.sql:/docker-entrypoint-initdb.d/init-schema.sql:ro
networks:
- domain_locker_network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DL_PG_USER:-postgres}"]
interval: 5s
timeout: 3s
retries: 10
app:
image: lissy93/domain-locker:latest # or ghcr.io/lissy93/domain-locker:latest
container_name: domain-locker-app
restart: unless-stopped
environment:
DL_ENV_TYPE: selfHosted
DL_PG_HOST: domain-locker-db
DL_PG_PORT: 5432
DL_PG_USER: postgres
DL_PG_PASSWORD: changeme2420
DL_PG_NAME: domain_locker
#NOTIFY_WEBHOOK_BASE: https://ntfy.sh
#NOTIFY_WEBHOOK_TOPIC: my-topic-name
#NOTIFY_WEBHOOK_TOKEN: optional-token-if-private
ports:
- "5099:3000"
depends_on:
- postgres
networks:
- domain_locker_network
updater:
image: alpine:3.20
container_name: domain-locker-updater
restart: unless-stopped
depends_on:
- app
networks:
- domain_locker_network
command: >
/bin/sh -c "
apk add --no-cache curl &&
echo '0 3 * * * /usr/bin/curl -s -X POST http://app:3000/api/domain-updater' > /etc/crontabs/root &&
echo '0 4 * * * /usr/bin/curl -s -X POST http://app:3000/api/expiration-reminders' >> /etc/crontabs/root &&
crond -f -L /dev/stdout
"
networks:
domain_locker_network:
driver: bridge