Skip to main content

Docker & Deployment

Servicesโ€‹

ContainerImagePortPurpose
airsafenet_frontendNginx + React5173Web dashboard
airsafenet_backendASP.NET Core 87276REST API
airsafenet_aiPython 3.11 + FastAPI8000AI inference
airsafenet_dbPostgreSQL 16InternalDatabase
airsafenet_nginxNginx Alpine80/443Reverse proxy (prod)

Commandsโ€‹

# Development (hot reload)
docker compose up -d

# Development with logs
docker compose up

# Production (with Nginx reverse proxy)
docker compose --profile prod up -d

# Production with registry images
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

# Rebuild after code changes
docker compose up -d --build frontend

# View logs
docker compose logs -f ai_server

# Stop + remove containers
docker compose down

# Stop + remove volumes (full reset)
docker compose down -v

Persistent Volumesโ€‹

VolumeMountContents
postgres_data/var/lib/postgresql/dataDatabase
ai_data/app/dataForecast/history CSV cache
ai_models/app/modelsTrained model .pkl files
backend_data/app/dataBackend file storage

Development Overrideโ€‹

docker-compose.override.yml is automatically loaded in development:

  • Frontend: Vite dev server with hot reload on port 5173
  • Backend: dotnet watch auto-restart
  • AI Server: uvicorn --reload auto-restart
  • Database: port 5432 exposed for pgAdmin/DBeaver

Production Deployโ€‹

# Tag and push images
git tag v1.0.0
git push origin v1.0.0
# โ†’ GitHub Actions auto-builds and pushes to ghcr.io

# Pull and run on server
export TAG=v1.0.0
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d