Add Docker build workflow and mobile application

This commit is contained in:
Sven laptop
2026-05-05 17:39:02 +02:00
parent 39278dc857
commit 00758561f9
159 changed files with 8424 additions and 3 deletions
+170
View File
@@ -0,0 +1,170 @@
# Docker Setup voor Transit Project APIs
Dit project bevat Docker-configuratie voor alle 3 APIs 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)
- **docker-compose.yml** - Orchestratie van alle services
- **.dockerignore** - Bestanden die niet in Docker images opgenomen worden
- **.env.example** - Template voor environment variabelen
## Vereisten
- Docker (>=20.10)
- Docker Compose (>=2.0)
## Installatie
### 1. Environment variabelen configureren
```bash
cp .env.example .env
# Bewerk .env met je eigen waarden
```
### 2. Services starten
```bash
# Start alle services (database + alle APIs)
docker-compose up -d
# Of build en start tegelijk (als je code hebt aangepast)
docker-compose up -d --build
```
### 3. Logs bekijken
```bash
# Alle logs
docker-compose logs -f
# Logs van specifieke service
docker-compose logs -f auth_api
docker-compose logs -f employee_api
docker-compose logs -f transit_api
docker-compose logs -f db
```
## Beschikbare Services
| Service | Port | Database | Beschrijving |
|---------|------|----------|--------------|
| auth_api | 5000 | PostgreSQL | Authentication endpoints |
| employee_api | 4000 | PostgreSQL | Employee management endpoints |
| transit_api | 5001 | PostgreSQL | Transit schedule endpoints |
| db | 5432 | - | PostgreSQL database server |
## Commando's
### Services beheren
```bash
# 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
```bash
# Herstart specifieke service
docker-compose restart auth_api
# Build specifieke image
docker-compose build auth_api
# Logs van specifieke service
docker-compose logs -f transit_api
```
### Database commando's
```bash
# Verbinding met database
docker-compose exec db psql -U transit_user -d transit_db
# Database backup
docker-compose exec db pg_dump -U transit_user transit_db > backup.sql
# Database restore
docker-compose exec -T db psql -U transit_user transit_db < backup.sql
```
## Troubleshooting
### Port al in gebruik
```bash
# Check welke container de port gebruikt
docker ps
# Verander port in docker-compose.yml (e.g., "5000:5000" naar "5010:5000")
```
### Database connectie fout
```bash
# Check database status
docker-compose logs db
# Herstart database
docker-compose restart db
```
### API start probleem
```bash
# Check logs
docker-compose logs auth_api
# Controleer environment variabelen in .env
# Controleer database connection string
```
## Development
### Wijzigingen doorgevoerd in code
```bash
# 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:
```yaml
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`