bae705aa97
- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
4.7 KiB
4.7 KiB
Self-Hosted Infrastructure
Allt är self-hosted. Inga externa beroenden.
Filosofi
"Om vi inte kontrollerar infrastrukturen, kontrollerar vi inte produkten."
Allt körs på egna servrar. Inga externa AI-tjänster. Inga externa lagringstjänster. Inga externa monitoreringstjänster.
Infrastruktur
Core Services
| Tjänst | Teknik | Port | Beskrivning |
|---|---|---|---|
| Database | PostgreSQL + PostGIS | 5432 | Huvuddatabas |
| Cache | Redis | 6379 | Cache + Message broker |
| Object Storage | MinIO | 9000/9001 | S3-kompatibel lagring |
| Search | Elasticsearch | 9200 | Fulltextsökning |
| Message Queue | RabbitMQ | 5672/15672 | Advanced messaging |
Monitoring & Logging
| Tjänst | Teknik | Port | Beskrivning |
|---|---|---|---|
| Metrics | Prometheus | 9090 | Metrikinsamling |
| Dashboards | Grafana | 3000 | Visualisering |
| Log Aggregation | Loki | 3100 | Logghantering |
| Log Collector | Promtail | 9080 | Loggskrapning |
Networking
| Tjänst | Teknik | Port | Beskrivning |
|---|---|---|---|
| Reverse Proxy | Nginx | 80/443 | Lastbalansering |
| VPN/Mesh | Headscale | 8080 | Zero-trust nätverk |
DevOps
| Tjänst | Teknik | Port | Beskrivning |
|---|---|---|---|
| CI/CD | Jenkins | 8081 | Bygg och deploy |
| Container Registry | Docker Registry | 5000 | Image-lagring |
| Backup | Restic | — | Krypterade backups |
Application
| Tjänst | Teknik | Port | Beskrivning |
|---|---|---|---|
| API | FastAPI | 8000 | Huvudapplikation |
| Worker | Celery | — | Bakgrundsjobb |
| Scheduler | Celery Beat | — | Schemalagda uppgifter |
Snabbstart
# 1. Klona repo
git clone <repo-url>
cd iom
# 2. Konfigurera miljö
cp .env.example .env
# Redigera .env med dina värden
# 3. Starta allt
docker-compose -f docker-compose.selfhosted.yml up -d
# 4. Verifiera
docker-compose -f docker-compose.selfhosted.yml ps
# 5. Skapa första användare
curl -X POST http://localhost:8000/auth/register \
-d '{"username": "admin", "password": "***", "role": "admin"}'
Tjänster
MinIO (Object Storage)
- URL: http://localhost:9000
- Console: http://localhost:9001
- Buckets: iom-images, iom-exports
- Användning: Bilder, exports, backups
Elasticsearch (Search)
- URL: http://localhost:9200
- Användning: Fulltextsökning, logganalys
RabbitMQ (Message Queue)
- URL: http://localhost:15672
- Användning: Advanced messaging, event-driven arkitektur
Headscale (VPN)
- URL: http://localhost:8080
- Användning: Zero-trust nätverk för noder
Jenkins (CI/CD)
- URL: http://localhost:8081
- Användning: Bygg, test, deploy
Registry (Container Registry)
- URL: http://localhost:5000
- Användning: Docker image-lagring
Backup
# Manuell backup
./scripts/backup.sh
# Automatisk backup (dagligen)
# Redigerar crontab
crontab -e
# Lägg till:
0 2 * * * /path/to/iom/scripts/backup.sh
Övervakning
Grafana Dashboards
- System Overview: CPU, minne, disk
- API Metrics: Requests, latency, errors
- Business Metrics: Observations, signals, decisions
- AI Metrics: Model accuracy, predictions
Alerts
- API nere
- Hög felprocent
- Disk full
- Minne lågt
- Database connections hög
Säkerhet
Nätverk
- All kommunikation inom Docker-nätverk
- Nginx som enda exponerad tjänst
- Headscale för zero-trust VPN
Autentisering
- JWT tokens
- Role-based access control
- API keys för tjänster
Kryptering
- Restic för krypterade backups
- HTTPS via Nginx
- PostgreSQL SSL
Skalning
Horisontell skalning
# Skala API
docker-compose -f docker-compose.selfhosted.yml up -d --scale api=3
# Skala workers
docker-compose -f docker-compose.selfhosted.yml up -d --scale worker=5
Vertikal skalning
- Öka resurser för PostgreSQL
- Mer minne för Elasticsearch
- Större disk för MinIO
Felsökning
# Loggar
docker-compose -f docker-compose.selfhosted.yml logs -f api
docker-compose -f docker-compose.selfhosted.yml logs -f worker
# Status
docker-compose -f docker-compose.selfhosted.yml ps
# Resurser
docker stats
# Nätverk
docker network inspect iom-network
Sammanfattning
Komplett self-hosted infrastruktur:
- ✅ Database (PostgreSQL + PostGIS)
- ✅ Cache (Redis)
- ✅ Object Storage (MinIO)
- ✅ Search (Elasticsearch)
- ✅ Message Queue (RabbitMQ)
- ✅ Monitoring (Prometheus + Grafana)
- ✅ Logging (Loki + Promtail)
- ✅ VPN (Headscale)
- ✅ CI/CD (Jenkins)
- ✅ Registry (Docker Registry)
- ✅ Backup (Restic)
- ✅ API (FastAPI)
- ✅ Workers (Celery)
Inga externa beroenden. Full kontroll.