You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.0 KiB
52 lines
2.0 KiB
services: |
|
gitrepublic: |
|
# For using a pre-built image (e.g., from local build or registry): |
|
image: ${DOCKER_IMAGE:-silberengel/gitrepublic-web:latest} |
|
# For building from source, comment out image above and uncomment build below: |
|
# build: |
|
# context: . |
|
# dockerfile: Dockerfile |
|
container_name: gitrepublic-web |
|
# Publish port to host (required when reverse proxy is on host, not in Docker) |
|
# Apache on host machine proxies to 127.0.0.1:6543, so we need ports: not expose: |
|
ports: |
|
- "${PORT:-6543}:6543" |
|
# Alternative: If reverse proxy is in Docker (same network), use expose instead: |
|
# expose: |
|
# - "6543" # Internal only, accessed via reverse proxy container |
|
environment: |
|
- NODE_ENV=production |
|
- GIT_REPO_ROOT=/repos |
|
- GIT_DOMAIN=${GIT_DOMAIN:-gitrepublic.imwald.eu} # Set to your domain for production (without https://) |
|
- NOSTR_RELAYS=${NOSTR_RELAYS:-wss://theforest.nostr1.com} |
|
- NOSTRGIT_SECRET_KEY=${NOSTRGIT_SECRET_KEY:-} |
|
- PORT=6543 |
|
volumes: |
|
# Persist git repositories |
|
# Note: Ensure ./repos directory exists on the remote machine, or Docker will create it |
|
- ./repos:/repos |
|
# Optional: persist audit logs |
|
# - ./logs:/app/logs |
|
# Optional: mount config file if needed |
|
# - ./config:/app/config:ro |
|
restart: unless-stopped |
|
healthcheck: |
|
test: ["CMD", "node", "-e", "require('http').get('http://localhost:6543', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)}).on('error', () => {process.exit(1)})"] |
|
interval: 30s |
|
timeout: 5s |
|
retries: 3 |
|
start_period: 10s |
|
# Resource limits (adjust as needed) |
|
# Note: deploy section is for Docker Swarm only |
|
# For local development with docker-compose v1, use: |
|
# mem_limit: 2g |
|
# cpus: '2' |
|
# For docker-compose v2 or Docker Swarm, uncomment below: |
|
# deploy: |
|
# resources: |
|
# limits: |
|
# cpus: '2' |
|
# memory: 2G |
|
# reservations: |
|
# cpus: '1' |
|
# memory: 1G
|
|
|