mirror of
https://github.com/dograh-hq/dograh.git
synced 2026-06-07 07:55:16 +02:00
2.3 KiB
2.3 KiB
scripts/
Bash ↔ PowerShell parity — keep them in sync
Most contributor-facing scripts ship as a .sh + .ps1 pair so macOS/Linux and Windows users get the same workflow. When you edit one, edit the other in the same change. Env-var names, defaults, flags, and behavior should match — if start_services_dev.sh reads HEALTH_MAX_ATTEMPTS, so should start_services_dev.ps1.
Current pairs:
setup_fork.{sh,ps1}— contributor bootstrap (git remotes, submodule, venv, env files)setup_requirements.{sh,ps1}— Python + pipecat dependency installstart_services_dev.{sh,ps1}— local backend launcher (auto-reload + health-check wait)stop_services.{sh,ps1}makemigrate.{sh,ps1}/migrate.{sh,ps1}— Alembic helpers
Bash-only (deployment / CI / OSS-user setup — not intended for Windows contributors):
start_services.sh— VM productionstart_services_docker.sh— Docker image CMDrolling_update.sh— zero-downtime VM redeploysetup_local.sh/setup_remote.sh— OSS Docker-compose setupformat.sh/lint.sh/pre_commit.shgenerate_sdk.sh/release_sdks.sh/dump_docs_openapi.py
The three "start" scripts — pick the right one
| Script | Where it runs | Key behavior |
|---|---|---|
start_services_dev.sh |
Local dev shell | uvicorn --reload, exits after launching, restart by re-running, single arq worker, waits for /api/v1/health before exiting. |
start_services.sh |
VM production | Multi-port uvicorn behind nginx, sudo nginx -t && systemctl reload, writes run/active_band for rolling_update.sh. |
start_services_docker.sh |
Docker image CMD |
PID 1: traps SIGTERM, uvicorn --workers $FASTAPI_WORKERS, wait -n so a dying child tears the container down. |
If you find yourself adding nginx/sudo logic to the dev script, or --reload to the production/Docker scripts, stop — you probably want a different file.