Initial project scaffold for a PHP Media API including routing, controllers, models and services under api/ (Router, Media/Cast/Image/Settings controllers, models, database/bootstrap files and automatic docs service). Adds Docker support (Dockerfile, docker-compose.yml, DOCKER_README.md, php-custom.ini), .htaccess for pretty URLs, API documentation and example payloads (API_EXAMPLES.md, api/README.md, api_examples/*.json), image handling service and logging, plus a comprehensive .gitignore. This commit provides a runnable development environment and example requests to get the API up and tested quickly.
1.7 KiB
1.7 KiB
Docker Setup für Kyoo Backend
Dieses Projekt wurde für die Ausführung in einer Docker-Umgebung mit PHP, MariaDB und phpMyAdmin konfiguriert.
Voraussetzungen
- Docker installiert
- Docker Compose installiert
Services
Die Docker Compose-Konfiguration enthält folgende Services:
- PHP 8.2 mit Apache (Port 8080) - Webserver für die API
- MariaDB 10.11 (Port 3306) - Datenbank
- phpMyAdmin (Port 8081) - Datenbank-Verwaltungsoberfläche
Datenbank-Zugangsdaten
- Host: mariadb (innerhalb Docker) oder localhost (von außen)
- Datenbank: kyoo
- Benutzer: kyoo_user
- Passwort: kyoo_password
- Root-Passwort: root_password
Starten der Umgebung
docker-compose up -d --build
Stoppen der Umgebung
docker-compose down
Logs anzeigen
# Alle Logs
docker-compose logs
# Logs für einen bestimmten Service
docker-compose logs php
docker-compose logs mariadb
docker-compose logs phpmyadmin
Zugriff
- API: http://localhost:8080/api
- phpMyAdmin: http://localhost:8081
Datenbank-Reset
Um die Datenbank komplett zurückzusetzen:
docker-compose down -v
docker-compose up -d --build
Achtung: Dies löscht alle Datenbankdaten!
Entwicklung
Die API-Dateien werden als Volume gemountet, sodass Änderungen sofort wirksam werden. Ein Neustart ist nicht notwendig.
Troubleshooting
PHP-Container startet nicht
docker-compose logs php
Datenbank-Verbindungsfehler
Stelle sicher, dass der MariaDB-Container läuft:
docker-compose ps
Tabellen werden nicht erstellt
Die Tabellen werden automatisch beim ersten API-Aufruf erstellt. Wenn Probleme auftreten, überprüfe die Logs:
docker-compose logs php