platform-deployments/docker/verdaccio/docker-compose.yml
2026-03-05 21:30:08 -08:00

51 lines
1.7 KiB
YAML

version: '3.8'
# =============================================================================
# Verdaccio - Hybrid NPM Cache
# =============================================================================
# Purpose: Cache public npm packages + mirror @lilith/* from Forgejo
# Location: black (10.0.0.11) at npm.nasty.sh
#
# Deployment:
# scp -r deployments/docker/verdaccio black:/bigdisk/
# ssh black "cd /bigdisk/verdaccio && docker-compose up -d"
#
# Access (VPN-only):
# http://npm.nasty.sh:4873/ (via nginx proxy)
# =============================================================================
services:
verdaccio:
image: verdaccio/verdaccio:6
container_name: verdaccio
restart: unless-stopped
environment:
- VERDACCIO_PORT=4873
- VERDACCIO_PUBLIC_URL=http://npm.black.local
# Forge authentication token (passed to uplink config)
- FORGEJO_NPM_TOKEN=${FORGEJO_NPM_TOKEN}
ports:
- "4873:4873"
volumes:
# Package storage (persistent on bigdisk)
- /bigdisk/verdaccio/storage:/verdaccio/storage
# Configuration
- ./config:/verdaccio/conf
networks:
- forgejo_forgejo # Share Forgejo's network for nginx access
# Map forge.nasty.sh to Forgejo nginx container
# Forgejo's package metadata returns external URLs (forge.nasty.sh) for tarballs
# Use nginx proxy IP for proper HTTP/HTTPS routing
extra_hosts:
- "forge.black.local:172.18.0.3"
- "npm.black.local:172.18.0.3"
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:4873/-/ping"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
forgejo_forgejo:
external: true