From 4d37c87b8c703c32d3452de0febaf743bb042d5f Mon Sep 17 00:00:00 2001 From: "leon.hoppe" Date: Sat, 25 Mar 2023 10:50:33 +0100 Subject: [PATCH] Fixed Docker issue + added README.md --- ProjectManager.Backend/Apis/IDockerApi.cs | 1 - README.md | 66 +++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 README.md diff --git a/ProjectManager.Backend/Apis/IDockerApi.cs b/ProjectManager.Backend/Apis/IDockerApi.cs index cb09b72..b2e9c85 100644 --- a/ProjectManager.Backend/Apis/IDockerApi.cs +++ b/ProjectManager.Backend/Apis/IDockerApi.cs @@ -38,7 +38,6 @@ public sealed class DockerApi : IDockerApi { $"{hostVolumePath}:/pb_data" }, RestartPolicy = new RestartPolicy { - MaximumRetryCount = 3, Name = RestartPolicyKind.UnlessStopped } }, diff --git a/README.md b/README.md new file mode 100644 index 0000000..37e577a --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# Project Manager +Der ProjectManager ist ein Tool zum Verwalten von mehreren PocketBase Instanzen. +Es handelt sich hierbei um ein einfach zu benutzendes WebInterface zum erstellen, bearbeiten und löschen von PocketBase Instanzen. + +## Features +- [x] Automatische Docker Konfiguration +- [x] Automatisches DNS Mapping +- [x] Automatische SSL Konfiguration mithilfe von NginxProxyManager +- [ ] Projekt transferierung auf verschiedene Nodes +- [ ] Eigene Domains +- [ ] Mehrere Sprachen + +## Instalation +Die Instalation erfolgt durch eine Docker-Compose Datei. Hierbei werden zwei Container, einer für das Backend und einer für das Frontend, gestartet. +Die Standartkonfiguration sieht wie folgt aus: + +```yml +version: '3.0' +services: + frontend: + image: git.leon-hoppe.de/leon.hoppe/projectmanager_frontend:latest + restart: unless-stopped + environment: + - BACKEND=https://api.example.com + ports: + - '4220:4000' + + backend: + image: git.leon-hoppe.de/leon.hoppe/projectmanager_backend:latest + restart: unless-stopped + environment: + - FRONTEND=https://example.com + - GENERAL__DATABASE=server=1.2.3.4;database=ProjectManager;user=ProjectManager;password=changeMe + - GENERAL__ROOT=/projects + - PROXY__ENABLE=true + - PROXY__URL=https://proxy.example.com + - PROXY__EMAIL=admin@example.com + - PROXY__PASSWORD=changeMe + - PROXY__DOMAIN=api.example.com + - PROXY__HOST=1.2.3.4 + ports: + - '4221:80' + volumes: + - /var/run/docker.sock:/var/run/docker.sock +``` +### Enviroment Variablen + +| Variable | Bedeutung | +|-------------------|----------------------------------------------------------------------| +| BACKEND | Die URL des Backends | +| FRONTEND | Die URL des Frontends | +| GENERAL__DATABASE | Der MySql Connection String | +| GENERAL__ROOT | Ordner auf dem Hostsystem zur Speicherung der PocketBase Datein | +| PROXY__ENABLE | Aktiviert die eingebaute SSL verschlüsselung durch NginxProxyManager | +| PROXY__URL | Die URL für das WebInterface des NginxProxyManager | +| PROXY__EMAIL | E-Mail Adresse für einen Admin Benutzer von NginxProxyManager | +| PROXY__PASSWORD | Passwort für einen Admin Benutzer von NginxProxyManager | +| PROXY__DOMAIN | Standart Domain für PocketBase instanzen ([id].api.example.com) | +| PROXY__HOST | Hostadresse des Servers (für die reverse proxy) | + +### Docker Images von SourceCode generieren +Falls Sie den SourceCode selbst bearbeiten wollen, steht Ihnen dieser natürlich zur Verfügung. Um das Backend im Debug Modus zu verwenden sollten sie eine +``appsettings.Development.json`` Datei im Hauptverzeichnis anlegen um dort die entsprechende Konfiguration für die Entwicklungsumgebung erstellen. +Zum Debuggen empfehle ich ``npm run dev:ssr`` um das Frontend zu starten und ``dotnet run``um das Backend zu starten. Sofern Sie mit den Bearbeitungen fertig +sind gibt es eine ``docker-compose.example.yml`` Datei im dem Repository die automatisch den SoruceCode neu baut und die Container startet. +Wahlweise können Sie diese mit ``docker build`` auch selbst bauen.