Introduced health checks for `netneutrality-db` to ensure proper readiness before dependent services start. Replaced static sleep in `startup.sh` with dynamic database availability checks, improving startup reliability and reducing downtime risks.
97 lines
3.1 KiB
YAML
97 lines
3.1 KiB
YAML
services:
|
|
netneutrality-db:
|
|
image: mariadb:11@sha256:1cac8492bd78b1ec693238dc600be173397efd7b55eabc725abc281dc855b482
|
|
container_name: db
|
|
restart: unless-stopped
|
|
networks:
|
|
- netneutrality
|
|
volumes:
|
|
- netneutrality-db:/var/lib/mysql
|
|
environment:
|
|
- MYSQL_USER=${MYSQL_USER:-java}
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD:-password}
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE:-netneutrality}
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-password}
|
|
- MARIADB_AUTO_UPGRADE=1
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 20
|
|
start_period: 30s
|
|
|
|
netneutrality-bot:
|
|
image: gitea.bobert.me/anthorob/netneutrality:${NETNEUTRALITY_TAG:-latest}
|
|
container_name: bot
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
networks:
|
|
- netneutrality
|
|
depends_on:
|
|
netneutrality-db:
|
|
condition: service_healthy
|
|
lavalink:
|
|
condition: service_started
|
|
volumes:
|
|
- ./logs:/app/logs
|
|
environment:
|
|
- MYSQL_HOST=${MYSQL_HOST:-netneutrality-db}
|
|
- MYSQL_PORT=${MYSQL_PORT:-3306}
|
|
- MYSQL_USER=${MYSQL_USER:-java}
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD:-password}
|
|
- MYSQL_DATABASE=${MYSQL_DATABASE:-netneutrality}
|
|
- API_PORT=${NETNEUTRALITY_API_PORT:-9000}
|
|
|
|
# Lavalink >= 4.2.0 is required: the node handles DAVE end-to-end encryption,
|
|
# so the bot no longer ships native encoders.
|
|
lavalink:
|
|
image: ghcr.io/lavalink-devs/lavalink:4.2
|
|
container_name: lavalink
|
|
restart: unless-stopped
|
|
networks:
|
|
- netneutrality
|
|
depends_on:
|
|
- ejs-api
|
|
- webpo
|
|
volumes:
|
|
- ./lavalink/application.yml:/opt/Lavalink/application.yml:ro
|
|
environment:
|
|
- SERVER_PASSWORD=${NETNEUTRALITY_LAVALINK_PASSWORD:-youshallnotpass}
|
|
- NETNEUTRALITY_CIPHER_URL=${NETNEUTRALITY_CIPHER_URL:-http://ejs-api:8001}
|
|
- NETNEUTRALITY_CIPHER_PASSWORD=${NETNEUTRALITY_CIPHER_PASSWORD:-}
|
|
- NETNEUTRALITY_OAUTH_TOKEN=${NETNEUTRALITY_OAUTH_TOKEN:-}
|
|
- NETNEUTRALITY_POT_URL=${NETNEUTRALITY_POT_URL:-http://webpo:8080}
|
|
- NETNEUTRALITY_PO_TOKEN=${NETNEUTRALITY_PO_TOKEN:-}
|
|
- NETNEUTRALITY_VISITOR_DATA=${NETNEUTRALITY_VISITOR_DATA:-}
|
|
|
|
ejs-api:
|
|
image: ghcr.io/kikkia/yt-cipher:master@sha256:4c5ec381ff57336cfc24822d2b526a5ad7cd0171f61065a1bbc87bb736842449
|
|
container_name: ejs_signature_api
|
|
restart: unless-stopped
|
|
networks:
|
|
- netneutrality
|
|
# environment: # UNCOMMENT THIS LINE AND API_TOKEN TO ADD A PASSWORD
|
|
# - API_TOKEN=test
|
|
|
|
webpo:
|
|
image: ghcr.io/ashton045/webpo-generator
|
|
container_name: webpo-generator
|
|
environment:
|
|
- HOST=${HOST:-::}
|
|
- PORT=${PORT:-8080}
|
|
- WORKERS=${WORKERS:-1}
|
|
- QUEUE_SIZE=${QUEUE_SIZE:-32}
|
|
- MAX_PENDING_REQUESTS=${MAX_PENDING_REQUESTS:-256}
|
|
- REQUEST_TIMEOUT=${REQUEST_TIMEOUT:-30000}
|
|
- CACHE_SIZE=${CACHE_SIZE:-100}
|
|
- CACHE_TTL=${CACHE_TTL:-300000}
|
|
- VISITOR_TTL=${VISITOR_TTL:-600000}
|
|
- API_TOKEN=
|
|
restart: unless-stopped
|
|
volumes:
|
|
netneutrality-db: null
|
|
netneutrality-lavalink-plugins: null
|
|
|
|
networks:
|
|
netneutrality: null
|