new file: file_manager.py modified: requirements.txt new file: sessions_db.json modified: templates/base.html new file: templates/file_manager.html new file: templates/file_manager_new.html new file: templates/login.html new file: templates/profile.html new file: templates/users_management.html new file: user_management.py new file: users_db.json
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
-
Dependencies installieren:
pip install -r requirements.txt -
Docker sicherstellen:
docker --version git --version -
Anwendung starten:
python app.py -
Browser öffnen:
http://localhost:5000
Konfiguration
Projektliste URL
Konfiguriere eine URL, die eine Liste von Git-Repositories zurückgibt. Unterstützte Formate:
JSON Format:
[
{
"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 /- DashboardGET /available_projects- Verfügbare ProjekteGET /config- KonfigurationPOST /install_project- Projekt installierenGET /build_project/<name>- Projekt bauenGET /start_project/<name>- Projekt startenGET /stop_project/<name>- Projekt stoppenGET /project_details/<name>- 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:
- Repository wird automatisch geklont
.env.example→.envkopiert- Dockerfile wird gebaut
- Container wird gestartet
- Web-Interface zeigt Status an
Troubleshooting
Docker nicht verfügbar
# 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
- Fork das Repository
- Erstelle einen Feature-Branch
- Committe deine Änderungen
- Push zum Branch
- Erstelle einen Pull Request
Description
Languages
HTML
70.5%
Python
29.2%
Batchfile
0.3%