From e7e7d3895090b476bde0058b526dbff520ff2be9 Mon Sep 17 00:00:00 2001 From: Dorian Date: Mon, 16 Mar 2026 21:18:36 +0000 Subject: [PATCH] feat: add IndeedHub as submodule, full stack in demo compose MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IndeedHub source included as git submodule at ./indeedhub/. Demo compose builds all services from source — no registry needed. Stack: app, api, postgres, redis, minio, relay. Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitmodules | 3 + docker-compose.demo.yml | 138 +++++++++++++++++++++++++++++++++++++++- indeedhub | 1 + 3 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 .gitmodules create mode 160000 indeedhub diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..755a2411 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "indeedhub"] + path = indeedhub + url = https://git.tx1138.com/lfg2025/indeehub.git diff --git a/docker-compose.demo.yml b/docker-compose.demo.yml index 37d622fb..bbcfb73a 100644 --- a/docker-compose.demo.yml +++ b/docker-compose.demo.yml @@ -11,7 +11,7 @@ services: dockerfile: neode-ui/Dockerfile.backend container_name: archy-demo-backend environment: - VITE_DEV_MODE: "existing" # Skip setup/onboarding, go straight to login + VITE_DEV_MODE: "existing" ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} NODE_OPTIONS: "--dns-result-order=ipv4first" expose: @@ -38,12 +38,144 @@ services: restart: unless-stopped # ══════════════════════════════════════════════════════════════ - # IndeedHub — Pre-built image from registry (demo mode) + # IndeedHub — Built from submodule (indeedhub/) # ══════════════════════════════════════════════════════════════ indeedhub: - image: git.tx1138.com/lfg2025/indeedhub:latest + build: + context: ./indeedhub + dockerfile: Dockerfile + args: + VITE_USE_MOCK_DATA: "false" + VITE_INDEEHUB_API_URL: /api + VITE_INDEEHUB_CDN_URL: /storage + VITE_NOSTR_RELAYS: "" container_name: indeedhub ports: - "7777:7777" + depends_on: + - indeedhub-api + - indeedhub-relay + networks: + - default + - indeedhub restart: unless-stopped + + indeedhub-api: + build: + context: ./indeedhub/backend + dockerfile: Dockerfile + container_name: indeedhub-api + environment: + ENVIRONMENT: production + PORT: 4000 + DOMAIN: ${DOMAIN:-localhost} + FRONTEND_URL: ${FRONTEND_URL:-http://localhost:7777} + DATABASE_HOST: indeedhub-postgres + DATABASE_PORT: 5432 + DATABASE_USER: indeedhub + DATABASE_PASSWORD: indeedhub + DATABASE_NAME: indeedhub + QUEUE_HOST: indeedhub-redis + QUEUE_PORT: 6379 + S3_ENDPOINT: http://indeedhub-minio:9000 + AWS_REGION: us-east-1 + AWS_ACCESS_KEY: minioadmin + AWS_SECRET_KEY: minioadmin + S3_PRIVATE_BUCKET_NAME: indeedhub-private + S3_PUBLIC_BUCKET_NAME: indeedhub-public + S3_PUBLIC_BUCKET_URL: /storage + NOSTR_JWT_SECRET: demo-jwt-secret-change-in-production + NOSTR_JWT_EXPIRES_IN: 7d + AES_MASTER_SECRET: demo-aes-secret-change-in-production + depends_on: + indeedhub-postgres: + condition: service_healthy + indeedhub-redis: + condition: service_started + networks: + - indeedhub + restart: unless-stopped + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:4000/nostr-auth/health"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 60s + + indeedhub-postgres: + image: postgres:16-alpine + container_name: indeedhub-postgres + environment: + POSTGRES_USER: indeedhub + POSTGRES_PASSWORD: indeedhub + POSTGRES_DB: indeedhub + volumes: + - indeedhub-pgdata:/var/lib/postgresql/data + networks: + - indeedhub + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "pg_isready -U indeedhub"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + + indeedhub-redis: + image: redis:7-alpine + container_name: indeedhub-redis + command: redis-server --appendonly yes + volumes: + - indeedhub-redis:/data + networks: + - indeedhub + restart: unless-stopped + + indeedhub-minio: + image: minio/minio:latest + container_name: indeedhub-minio + command: server /data --console-address ":9001" + environment: + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: minioadmin + volumes: + - indeedhub-minio:/data + networks: + - indeedhub + restart: unless-stopped + + indeedhub-minio-init: + image: minio/mc:latest + container_name: indeedhub-minio-init + depends_on: + - indeedhub-minio + entrypoint: > + /bin/sh -c " + sleep 5; + mc alias set local http://indeedhub-minio:9000 minioadmin minioadmin; + mc mb local/indeedhub-private --ignore-existing; + mc mb local/indeedhub-public --ignore-existing; + mc anonymous set download local/indeedhub-public; + " + networks: + - indeedhub + restart: "no" + + indeedhub-relay: + image: scsibug/nostr-rs-relay:latest + container_name: indeedhub-relay + volumes: + - indeedhub-relay:/usr/src/app/db + networks: + - indeedhub + restart: unless-stopped + +networks: + indeedhub: + +volumes: + indeedhub-pgdata: + indeedhub-redis: + indeedhub-minio: + indeedhub-relay: diff --git a/indeedhub b/indeedhub new file mode 160000 index 00000000..8d56fe39 --- /dev/null +++ b/indeedhub @@ -0,0 +1 @@ +Subproject commit 8d56fe392d844a4a8713ce4f4985c01ada499022