Files
The-transit-Project/DOCKER_README.md
T
Sven laptop 8cf3fe98cb create admin_ui
Co-authored-by: Copilot <copilot@github.com>
2026-05-06 10:55:31 +02:00

5.3 KiB

Docker Setup voor Transit Project APIs

Dit project bevat Docker-configuratie voor alle APIs, Admin Control Center en PostgreSQL database.

Bestanden

  • auth_api/Dockerfile - Image voor Authentication API (port 5000)
  • employee_api/Dockerfile - Image voor Employee API (port 4000)
  • transit_api/Dockerfile - Image voor Transit API (port 5001)
  • admin_ui/Dockerfile - Image voor Admin Control Center (port 5174)
  • docker-compose.yml - Orchestratie van alle services
  • .dockerignore - Bestanden die niet in Docker images opgenomen worden
  • .env.example - Template voor environment variabelen
  • DEPLOYMENT.md - Gedetailleerde deployment guide
  • scripts/deploy.sh - Deployment helper script
  • scripts/build-and-push.sh - Build en push script voor registry

Vereisten

  • Docker (>=20.10)
  • Docker Compose (>=2.0)

Installatie

1. Environment variabelen configureren

cp .env.example .env
# Bewerk .env met je eigen waarden

2. Services starten

# Start alle services (APIs + Admin UI)
docker-compose up -d

# Of build en start tegelijk (als je code hebt aangepast)
docker-compose up -d --build

# Quick start met script
./scripts/deploy.sh start

3. Logs bekijken

# Alle logs
docker-compose logs -f

# Logs van specifieke service
docker-compose logs -f auth_api
docker-compose logs -f transit_api
docker-compose logs -f admin_ui

# Via script
./scripts/deploy.sh logs admin_ui

Beschikbare Services

Service Port Beschrijving
admin_ui 5174 Admin Control Center (React + Nginx)
auth_api 5000 Authentication endpoints
employee_api 4000 Employee management endpoints
transit_api 5001 Transit management endpoints

Commando's

Services beheren (Quick way)

# Via helper script
./scripts/deploy.sh start       # Start alle services
./scripts/deploy.sh stop        # Stop alle services
./scripts/deploy.sh restart     # Herstart alle services
./scripts/deploy.sh status      # Show status
./scripts/deploy.sh logs        # Bekijk logs admin_ui
./scripts/deploy.sh logs transit_api  # Bekijk logs specifieke service

Services beheren (Docker compose)

# Start services
docker-compose up -d

# Stop services
docker-compose down

# Herstart services
docker-compose restart

# Verwijder containers en volumes
docker-compose down -v

Individuele services

# Herstart specifieke service
docker-compose restart auth_api
docker-compose restart admin_ui

# Build specifieke image
docker-compose build auth_api

# Logs van specifieke service
docker-compose logs -f transit_api

Admin UI

# Bekijk Admin UI
http://localhost:5174

# Logs
docker-compose logs -f admin_ui

# Shell in container
docker-compose exec admin_ui sh

Troubleshooting

Port al in gebruik

# Check welke container de port gebruikt
docker ps

# Verander port in docker-compose.yml (e.g., "5000:5000" naar "5010:5000")

Database connectie fout

# Check database status
docker-compose logs db

# Herstart database
docker-compose restart db

API start probleem

# Check logs
docker-compose logs auth_api

# Controleer environment variabelen in .env
# Controleer database connection string

Admin UI niet bereikbaar

# Check Admin UI container
docker-compose logs admin_ui

# Zorg ervoor dat poort 5174 niet in gebruik is
lsof -i :5174

Admin Control Center

De Admin UI is een modern React + Vite applicatie die alle admin functies biedt.

Features

  • Authenticatie: JWT-based login met dev token helper
  • Stops Management: Create en beheer transit stops met geo-coördinaten
  • Bus Lines: Define bus routes met start/end stops en reistijd
  • Fleet Management: Monitor fleet vehicles
  • Stop Linking: Assign stops aan bus lines met volgorde en ETA

Toegang

URL: http://localhost:5174

Deployment Configuratie

Environment variabelen in docker-compose.yml:

Voor externe toegang, update de URLs naar je deployment domain.

Build en Deployment

# Build Admin UI image
docker-compose build admin_ui

# Push naar registry
./scripts/build-and-push.sh ghcr.io/your-org/xtransit latest

# Deploy met updated image
docker-compose up -d

Development

Wijzigingen doorgevoerd in code

# Rebuild container
docker-compose build auth_api

# Herstart service
docker-compose restart auth_api

Code reloading (hot reload)

Voor hot reload kunt u volumes toevoegen aan docker-compose.yml:

volumes:
  - ./auth_api:/app

Dit kan performance beïnvloeden. Alleen gebruiken tijdens development.

Productie Tips

  1. Veiligheid: Wijzig alle wachtwoorden en JWT_SECRET in .env
  2. Database: Gebruik een managed database service in productie
  3. Logging: Configureer centralized logging (ELK stack, Splunk, etc.)
  4. Backups: Stel automatische backups in voor de database
  5. Health Checks: Monitoreer de health endpoints van de APIs
  6. SSL/TLS: Gebruik reverse proxy (nginx) voor HTTPS

Netwerking

De services kunnen elkaar bereiken via:

  • auth_api: http://auth_api:5000
  • employee_api: http://employee_api:4000
  • transit_api: http://transit_api:5001
  • database: db:5432