# App Installer & Manager Ein Flask-basierter App-Installer und -Manager für Docker-basierte Projekte. ## Features - 🚀 **Automatische Installation** von Git-Repositories mit Dockerfile - 🔧 **Konfigurationsverwaltung** für .env-Dateien - 🐳 **Docker-Integration** für Build, Start, Stop und Monitoring - 📊 **Web-Dashboard** für Projektübersicht und -verwaltung - 🔄 **Automatische Updates** der Projektliste - 📋 **Masseninstallation** mehrerer Projekte - 🛠️ **Container-Monitoring** mit Logs und Statistiken ## Quick Start 1. **Dependencies installieren:** ```bash pip install -r requirements.txt ``` 2. **Docker sicherstellen:** ```bash docker --version git --version ``` 3. **Anwendung starten:** ```bash python app.py ``` 4. **Browser öffnen:** ``` http://localhost:5000 ``` ## Konfiguration ### Projektliste URL Konfiguriere eine URL, die eine Liste von Git-Repositories zurückgibt. Unterstützte Formate: **JSON Format:** ```json [ { "url": "https://gitea.simolzimol.net/Simon/quizify", "name": "quizify", "description": "Ein interaktives Quiz-System", "language": "JavaScript", "tags": ["quiz", "web"] } ] ``` **Gitea API Beispiel:** ``` https://gitea.simolzimol.net/api/v1/repos/search?sort=updated&order=desc&limit=50 ``` **GitHub API Beispiel:** ``` https://api.github.com/users/USERNAME/repos ``` ### Projekt-Anforderungen Jedes Projekt sollte enthalten: - `Dockerfile` - Für Container-Builds - `.env.example` - Für Umgebungskonfiguration - Optional: `docker-compose.yml` ## API Endpoints - `GET /` - Dashboard - `GET /available_projects` - Verfügbare Projekte - `GET /config` - Konfiguration - `POST /install_project` - Projekt installieren - `GET /build_project/` - Projekt bauen - `GET /start_project/` - Projekt starten - `GET /stop_project/` - Projekt stoppen - `GET /project_details/` - Projektdetails ## Verzeichnisstruktur ``` app installer/ ├── app.py # Hauptanwendung ├── requirements.txt # Python Dependencies ├── config.json # Konfigurationsdatei ├── config.example.json # Beispielkonfiguration ├── templates/ # HTML Templates │ ├── base.html │ ├── index.html │ ├── available_projects.html │ ├── config.html │ └── project_details.html ├── projects/ # Geklonte Projekte └── apps/ # Laufende Apps ``` ## Unterstützte Git-Provider - ✅ Gitea - ✅ GitHub - ✅ GitLab - ✅ Beliebige Git-URLs ## Docker-Features - Automatischer Build von Dockerfiles - Port-Management (8080, 8443, custom) - Container-Status-Monitoring - Log-Anzeige in Echtzeit - Resource-Monitoring (CPU, RAM, Netzwerk) - Backup & Restore von Containern ## Sicherheit - Isolierte Container-Umgebungen - Konfigurierbare Port-Bereiche - Sichere .env-Dateiverwaltung - Optional: Docker Registry Integration ## Erweiterte Features ### Masseninstallation Installiere mehrere Projekte gleichzeitig über das Web-Interface. ### Automatische Updates Projektlisten werden automatisch aktualisiert basierend auf der konfigurierten Frequenz. ### Backup & Restore - Automatische Backups vor Updates - Manuelle Backup-Erstellung - Wiederherstellung aus Backups ### Monitoring - Container-Ressourcenverbrauch - Netzwerk-Statistiken - Log-Aggregation - Status-Dashboard ## Beispiel-Projekt Für ein Projekt wie `https://gitea.simolzimol.net/Simon/quizify`: 1. Repository wird automatisch geklont 2. `.env.example` → `.env` kopiert 3. Dockerfile wird gebaut 4. Container wird gestartet 5. Web-Interface zeigt Status an ## Troubleshooting ### Docker nicht verfügbar ```bash # Windows Install Docker Desktop # Linux sudo systemctl start docker ``` ### Port bereits belegt Der Installer erkennt belegte Ports automatisch und schlägt Alternativen vor. ### Build-Fehler Überprüfe das Dockerfile und die .env-Konfiguration im Projektdetail-Panel. ## Roadmap - [ ] Kubernetes-Unterstützung - [ ] Multi-User-Management - [ ] SSL/TLS-Zertifikat-Management - [ ] Plugin-System - [ ] Mobile-optimierte UI - [ ] CI/CD-Integration ## Lizenz MIT License - Siehe LICENSE Datei für Details. ## Beitrag 1. Fork das Repository 2. Erstelle einen Feature-Branch 3. Committe deine Änderungen 4. Push zum Branch 5. Erstelle einen Pull Request