- Use npm ci --omit=dev to avoid building sharp (needs native libvips not available on Alpine) then install tsx separately - Change app depends_on from seeder (service_completed_successfully) to relay only, so the app still starts even if seeding fails Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
1.2 KiB
YAML
55 lines
1.2 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# ── Frontend (nginx serving built Vue app) ───────────────────
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
ports:
|
|
- "7777:7777"
|
|
depends_on:
|
|
- relay
|
|
networks:
|
|
- indeedhub-network
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:7777/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# ── Nostr Relay (stores comments, reactions, profiles) ───────
|
|
relay:
|
|
image: scsibug/nostr-rs-relay:latest
|
|
restart: unless-stopped
|
|
volumes:
|
|
- relay-data:/usr/src/app/db
|
|
networks:
|
|
- indeedhub-network
|
|
|
|
# ── Seeder (one-shot: seeds test data into relay, then exits) ─
|
|
# wait-for-relay.mjs handles readiness polling before seeding.
|
|
seeder:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.seed
|
|
depends_on:
|
|
- relay
|
|
environment:
|
|
- RELAY_URL=ws://relay:8080
|
|
- ORIGIN=http://localhost:7777
|
|
networks:
|
|
- indeedhub-network
|
|
restart: "no"
|
|
|
|
networks:
|
|
indeedhub-network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
relay-data:
|