161ef94b4f
Sirius CI/CD Pipeline / Merge API Manifest (push) Blocked by required conditions
Sirius CI/CD Pipeline / Build API (${{ matrix.platform }}) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Build UI (${{ matrix.platform }}) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge UI Manifest (push) Blocked by required conditions
Sirius CI/CD Pipeline / Build Engine (${{ matrix.platform }}) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge Engine Manifest (push) Blocked by required conditions
Sirius CI/CD Pipeline / Build Infra (${{ matrix.service }}, ${{ matrix.platform }}) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-postgres) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-rabbitmq) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Merge Infra Manifest (sirius-valkey) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Integration Test (push) Blocked by required conditions
Sirius CI/CD Pipeline / Public Stack Contract (push) Blocked by required conditions
Sirius CI/CD Pipeline / Dispatch Demo Deployment (sirius-demo branch) (push) Blocked by required conditions
Sirius CI/CD Pipeline / Dispatch Demo Canary (main branch) (push) Blocked by required conditions
Check engine pin consistency / Dockerfile / CI pin consistency (push) Successful in 8s
Sirius CI/CD Pipeline / Detect Changes (push) Successful in 23s
Sirius CI/CD Pipeline / Guard Registry Namespace (push) Waiting to run
Validate Docker Configuration / Validate Docker Compose Configuration (push) Successful in 47s
196 lines
7.8 KiB
YAML
196 lines
7.8 KiB
YAML
# SiriusScan Development Docker Compose Override
|
|
# Use with: docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up --build
|
|
#
|
|
# Builds Postgres, Valkey, and RabbitMQ from ./sirius-* Dockerfiles (no GHCR pull).
|
|
# sirius-ui / sirius-api / sirius-engine use local dev images with pull_policy: never.
|
|
# For registry-based infra instead, use docker-compose.yaml alone or add IMAGE_TAG + ghcr login.
|
|
#
|
|
# Linux "Permission denied" on bind mounts: sirius-ui and sirius-api run as UID/GID 1001 by
|
|
# default. If the repo is owned by root (e.g. /opt/Sirius), webpack/go cannot write into mounts.
|
|
# Fix either:
|
|
# • chown -R 1001:1001 sirius-ui sirius-api (and optional minor-projects paths you mount), or
|
|
# • Add to .env: SIRIUS_DEV_CONTAINER_UID=0 SIRIUS_DEV_CONTAINER_GID=0 (dev-only; runs as root in those containers).
|
|
|
|
services:
|
|
sirius-rabbitmq:
|
|
build:
|
|
context: ./sirius-rabbitmq
|
|
dockerfile: Dockerfile
|
|
image: sirius-sirius-rabbitmq:source
|
|
pull_policy: never
|
|
|
|
sirius-postgres:
|
|
build:
|
|
context: ./sirius-postgres
|
|
dockerfile: Dockerfile
|
|
image: sirius-sirius-postgres:source
|
|
pull_policy: never
|
|
|
|
sirius-valkey:
|
|
build:
|
|
context: ./sirius-valkey
|
|
dockerfile: Dockerfile
|
|
image: sirius-sirius-valkey:source
|
|
pull_policy: never
|
|
|
|
sirius-ui:
|
|
build:
|
|
context: ./sirius-ui/
|
|
dockerfile: Dockerfile
|
|
target: development # Use development stage
|
|
args:
|
|
NEXT_PUBLIC_CLIENTVAR: "clientvar"
|
|
# Override registry image with local dev build
|
|
image: sirius-sirius-ui:dev
|
|
pull_policy: never
|
|
user: "${SIRIUS_DEV_CONTAINER_UID:-1001}:${SIRIUS_DEV_CONTAINER_GID:-1001}"
|
|
volumes:
|
|
# Mount source code for live reloading
|
|
- ./sirius-ui/src:/app/src
|
|
- ./sirius-ui/public:/app/public
|
|
- ./sirius-ui/prisma:/app/prisma
|
|
- ./sirius-ui/next.config.mjs:/app/next.config.mjs
|
|
- ./sirius-ui/tailwind.config.ts:/app/tailwind.config.ts
|
|
- ./sirius-ui/package.json:/app/package.json
|
|
- ./sirius-ui/postcss.config.cjs:/app/postcss.config.cjs
|
|
# Mount startup scripts for live updates
|
|
- ./sirius-ui/start-dev.sh:/app/start-dev.sh
|
|
- ./sirius-ui/start-prod.sh:/app/start-prod.sh
|
|
# Preserve node_modules from container to avoid architecture conflicts
|
|
- node_modules:/app/node_modules
|
|
# Add system monitor from separate repository
|
|
- ../minor-projects/app-system-monitor:/system-monitor
|
|
# Add app administrator from separate repository
|
|
- ../minor-projects/app-administrator:/app-administrator
|
|
# Note: UI reads NSE scripts from ValKey (populated by scanner)
|
|
# No sirius-nse volume mount needed - scanner manages repos independently
|
|
environment:
|
|
- NODE_ENV=development
|
|
- NEXT_TELEMETRY_DISABLED=1
|
|
# Override to use SQLite for authentication as defined in schema.prisma
|
|
- DATABASE_URL=file:./dev.db
|
|
- NEXTAUTH_SECRET=development-secret-key
|
|
- NEXTAUTH_URL=http://localhost:3000
|
|
- VALKEY_HOST=sirius-valkey
|
|
- VALKEY_PORT=6379
|
|
- RABBITMQ_URL=amqp://guest:guest@sirius-rabbitmq:5672/
|
|
- SIRIUS_API_URL=http://sirius-api:9001
|
|
- NEXT_PUBLIC_SIRIUS_API_URL=http://localhost:9001
|
|
- CONTAINER_NAME=sirius-ui
|
|
# Internal API auth (file mount from base compose)
|
|
- SIRIUS_API_KEY_FILE=${SIRIUS_API_KEY_FILE:-/run/secrets/sirius_api_key}
|
|
# Performance: increase Node.js heap for faster webpack compilation
|
|
- NODE_OPTIONS=--max-old-space-size=4096
|
|
# Performance: enable filesystem polling for reliable hot reload on Docker bind mounts
|
|
- WATCHPACK_POLLING=true
|
|
ports:
|
|
- "3000:3000"
|
|
- "3001:3001" # Development port
|
|
# Remove PostgreSQL dependency - using SQLite for authentication
|
|
depends_on: []
|
|
# Override base resource limits for development performance
|
|
# Webpack compilation needs significantly more CPU than serving a production build
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 4G
|
|
cpus: "4"
|
|
reservations:
|
|
memory: 1G
|
|
cpus: "1"
|
|
|
|
sirius-api:
|
|
build:
|
|
context: ./sirius-api/
|
|
target: development # Use development stage
|
|
# Override image for dev builds
|
|
image: sirius-sirius-api:dev
|
|
pull_policy: never
|
|
user: "${SIRIUS_DEV_CONTAINER_UID:-1001}:${SIRIUS_DEV_CONTAINER_GID:-1001}"
|
|
volumes:
|
|
- ./sirius-api:/api
|
|
# Enable for local go-api development with source-aware functionality:
|
|
- ../minor-projects/go-api:/go-api
|
|
# Add system monitor from separate repository
|
|
- ../minor-projects/app-system-monitor:/system-monitor
|
|
# Add app administrator from separate repository
|
|
- ../minor-projects/app-administrator:/app-administrator
|
|
ports:
|
|
- "9001:9001"
|
|
environment:
|
|
- GO_ENV=development
|
|
- API_PORT=9001
|
|
- POSTGRES_HOST=sirius-postgres
|
|
- POSTGRES_USER=postgres
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required for development. Run installer first using docker compose -f docker-compose.installer.yaml run --rm sirius-installer}
|
|
- POSTGRES_DB=sirius
|
|
- POSTGRES_PORT=5432
|
|
- VALKEY_HOST=sirius-valkey
|
|
- VALKEY_PORT=6379
|
|
- RABBITMQ_URL=amqp://guest:guest@sirius-rabbitmq:5672/
|
|
- LOG_LEVEL=info
|
|
- CONTAINER_NAME=sirius-api
|
|
- SIRIUS_API_KEY_FILE=${SIRIUS_API_KEY_FILE:-/run/secrets/sirius_api_key}
|
|
|
|
sirius-engine:
|
|
build:
|
|
context: ./sirius-engine/
|
|
target: development # Use development stage
|
|
# Override image for dev builds
|
|
image: sirius-sirius-engine:dev
|
|
pull_policy: never
|
|
# Uses bridge networking (from base compose) with explicit port mapping:
|
|
# 5174:5174 - Engine main port
|
|
# 50051:50051 - Agent gRPC port
|
|
# This allows native agents on the host to connect via localhost:50051
|
|
# Required for ICMP probes in ping++ fingerprinting
|
|
cap_add:
|
|
- NET_RAW
|
|
volumes:
|
|
- ./sirius-engine:/engine
|
|
# Mount start scripts for hot reload of startup changes
|
|
- ./sirius-engine/start-enhanced.sh:/start-enhanced.sh
|
|
- ./sirius-engine/start.sh:/start.sh
|
|
# Development volume mounts (require ../minor-projects/ structure):
|
|
# Enabled for local development with source-aware functionality
|
|
- ../minor-projects/app-agent:/app-agent
|
|
- ../minor-projects/app-scanner:/app-scanner
|
|
- ../minor-projects/app-terminal:/app-terminal
|
|
- ../minor-projects/go-api:/go-api
|
|
- ../minor-projects/ping++:/ping++
|
|
- ../minor-projects/sirius-nse:/sirius-nse
|
|
- ../minor-projects/sirius-agent-modules:/app-agent/sirius-agent-modules
|
|
# Add system monitor from separate repository
|
|
- ../minor-projects/app-system-monitor:/system-monitor
|
|
# Add app administrator from separate repository
|
|
- ../minor-projects/app-administrator:/app-administrator
|
|
environment:
|
|
- GO_ENV=development
|
|
- ENGINE_MAIN_PORT=5174
|
|
- GRPC_AGENT_PORT=50051
|
|
- POSTGRES_HOST=sirius-postgres
|
|
- POSTGRES_USER=postgres
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required for development. Run installer first using docker compose -f docker-compose.installer.yaml run --rm sirius-installer}
|
|
- POSTGRES_DB=sirius
|
|
- POSTGRES_PORT=5432
|
|
- VALKEY_HOST=sirius-valkey
|
|
- VALKEY_PORT=6379
|
|
- RABBITMQ_URL=amqp://guest:guest@sirius-rabbitmq:5672/
|
|
- LOG_LEVEL=info
|
|
# Scanner/agent API base (canonical SIRIUS_API_URL; API_BASE_URL mirrors it in base compose)
|
|
- SIRIUS_API_URL=${SIRIUS_API_URL:-http://sirius-api:9001}
|
|
- API_BASE_URL=${SIRIUS_API_URL:-http://sirius-api:9001}
|
|
- AGENT_ID=sirius-engine
|
|
- HOST_ID=sirius-engine
|
|
- ENABLE_SCRIPTING=true
|
|
- CONTAINER_NAME=sirius-engine
|
|
- SIRIUS_API_KEY_FILE=${SIRIUS_API_KEY_FILE:-/run/secrets/sirius_api_key}
|
|
|
|
networks:
|
|
default:
|
|
name: sirius
|
|
driver: bridge
|
|
|
|
volumes:
|
|
node_modules:
|