add readme
This commit is contained in:
@@ -16,6 +16,14 @@ labels:
|
||||
depends_on:
|
||||
- build
|
||||
|
||||
# deploy doesn't need the repo — it runs docker compose against a host-mounted
|
||||
# dir. Skip the default clone to keep the UI clean.
|
||||
clone:
|
||||
- name: skip-clone
|
||||
image: alpine
|
||||
commands:
|
||||
- ":"
|
||||
|
||||
steps:
|
||||
- name: deploy
|
||||
image: docker:24-cli
|
||||
|
||||
18
README.md
Normal file
18
README.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# stellar-ops / NOVA
|
||||
|
||||
Airline operations platform built with MCP (Model Context Protocol). Connects AI agents to real-time flight data, crew duty status, weather, and airport conditions to assist with irregular ops — flight disruptions, crew rebooking, and passenger notifications.
|
||||
|
||||
Two agent clients share a common set of MCP servers:
|
||||
|
||||
- **EFH agent** — internal ops-facing, monitors disruptions and drives crew/rebooking decisions
|
||||
- **Handover agent** — passenger-facing, generates notifications and status updates
|
||||
|
||||
## Docs
|
||||
|
||||
Browse the architecture docs locally:
|
||||
|
||||
```bash
|
||||
python -m http.server 8000 --directory docs
|
||||
```
|
||||
|
||||
Then open `http://localhost:8000`.
|
||||
103
ctrl/deploy.sh
103
ctrl/deploy.sh
@@ -1,103 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Deploy UNT (NOVA) to server
|
||||
# Usage: ./ctrl/deploy.sh [push|rsync|sync|restart|edge]
|
||||
#
|
||||
# push — (default) build images locally, push to registry, deploy (avoids OOM on server)
|
||||
# rsync — sync source, rebuild images on server, restart (bypass CI)
|
||||
# sync — sync source only (no rebuild, no restart)
|
||||
# restart — restart containers (no sync, no rebuild)
|
||||
# edge — pull latest images from registry and restart
|
||||
#
|
||||
# Note: code is baked into the image (no volume mounts), so code changes
|
||||
# need a rebuild (rsync | edge). Config-only changes (docker-compose, .env
|
||||
# already on server) can use `restart`.
|
||||
|
||||
set -e
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
SERVER="mcrn.ar"
|
||||
REMOTE_DIR="~/unt"
|
||||
|
||||
do_sync() {
|
||||
echo "=== Syncing source to $SERVER ==="
|
||||
rsync -avz --exclude='.git' --exclude='node_modules' --exclude='.venv' \
|
||||
--exclude='ui/app/dist' --exclude='__pycache__' \
|
||||
--exclude='ctrl/edge/.env' \
|
||||
--filter=':- .gitignore' \
|
||||
. "$SERVER:$REMOTE_DIR/"
|
||||
}
|
||||
|
||||
do_rebuild_and_restart() {
|
||||
echo "=== Building and restarting on server ==="
|
||||
ssh "$SERVER" << 'EOF'
|
||||
cd ~/unt
|
||||
docker build -t registry.mcrn.ar/unt/api:latest -f ctrl/Dockerfile.api .
|
||||
docker build -t registry.mcrn.ar/unt/ui:latest -f ctrl/Dockerfile.ui .
|
||||
cd ctrl/edge
|
||||
[ -f .env ] || cp .env.example .env
|
||||
docker compose up -d --remove-orphans --force-recreate
|
||||
docker image prune -f
|
||||
docker compose ps
|
||||
EOF
|
||||
}
|
||||
|
||||
do_restart() {
|
||||
echo "=== Restarting containers on $SERVER ==="
|
||||
ssh "$SERVER" << 'EOF'
|
||||
cd ~/unt/ctrl/edge
|
||||
docker compose up -d --remove-orphans --force-recreate
|
||||
docker compose ps
|
||||
EOF
|
||||
}
|
||||
|
||||
case "${1:-push}" in
|
||||
rsync)
|
||||
do_sync
|
||||
do_rebuild_and_restart
|
||||
;;
|
||||
|
||||
sync)
|
||||
do_sync
|
||||
;;
|
||||
|
||||
restart)
|
||||
do_restart
|
||||
;;
|
||||
|
||||
push)
|
||||
echo "=== Building images locally ==="
|
||||
docker build -t unt/api:latest -f ctrl/Dockerfile.api .
|
||||
docker build -t unt/ui:latest -f ctrl/Dockerfile.ui .
|
||||
|
||||
echo "=== Pushing to registry ==="
|
||||
/home/mariano/wdir/ppl/ctrl/push-image.sh unt/api latest
|
||||
/home/mariano/wdir/ppl/ctrl/push-image.sh unt/ui latest
|
||||
|
||||
echo "=== Pulling and restarting on $SERVER ==="
|
||||
ssh "$SERVER" << 'EOF'
|
||||
cd ~/unt/ctrl/edge
|
||||
docker compose pull
|
||||
docker compose up -d --remove-orphans --force-recreate
|
||||
docker image prune -f
|
||||
docker compose ps
|
||||
EOF
|
||||
;;
|
||||
|
||||
edge)
|
||||
echo "=== Pulling latest images on $SERVER ==="
|
||||
ssh "$SERVER" << 'EOF'
|
||||
cd ~/unt/ctrl/edge
|
||||
docker compose pull
|
||||
docker compose up -d --remove-orphans --force-recreate
|
||||
docker image prune -f
|
||||
docker compose ps
|
||||
EOF
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 [rsync|sync|restart|push|edge]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "=== Done ==="
|
||||
Reference in New Issue
Block a user