Web-Hosting¶
Architektur¶
Docker-basiertes Shared Hosting:
Traefik (SSL) → hosting-webserver (nginx) → hosting-php84 (FPM via TCP:9000)
→ hosting-sftp (Port 2222)
- SSL terminiert an Traefik (nginx nur intern Port 80)
- PHP-FPM via TCP
hosting-php84:9000(nicht Unix Socket) - Traefik-Routen werden von der Platform-API generiert (
/etc/xynap/traefik/conf.d/hosting-routes.yml)
Sites¶
Site erstellen¶
Site auflisten¶
Site suspendieren / aktivieren¶
Datenbanken¶
# Datenbanken einer Site
GET /api/v1/hosting/sites/{id}/databases
# Datenbank erstellen
POST /api/v1/hosting/sites/{id}/databases
{"name": "wp_main", "password": "auto-generated"}
# Datenbank loeschen
DELETE /api/v1/hosting/databases/{id}
Dateisystem¶
Kunden-Daten liegen unter:
/var/lib/xynap/customers/{customer_id}/{domain}/
├── htdocs/ # DocumentRoot
├── logs/ # Access + Error Logs
└── tmp/ # PHP Temp
vHost-Generierung¶
Die Platform API generiert nginx-vHosts via Jinja2-Templates:
- Template:
app/modules/hosting/templates/vhost.conf.j2 - Output:
/etc/xynap/hosting/vhosts/{domain}.conf
FPM-Pool-Config:
- Template:
app/modules/hosting/templates/fpm-pool.conf.j2 - Output:
/etc/xynap/hosting/php-fpm/{domain}.conf