diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7532e41 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Markus F.J. Busche + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ed93157 --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# Dawarich Reverse Proxy + +Docker Compose Setup für [Dawarich](https://dawarich.app) mit nginx als Reverse Proxy und Let's Encrypt SSL. + +## Voraussetzungen + +- Docker und Docker Compose +- Ein auf den Server zeigender Domainname (DNS A-Record) + +## Schnellstart + +### 1. Konfiguration + +Kopiere die Beispiel-Konfiguration und passe sie an: + +```bash +cp .env.example .env +``` + +Bearbeite `.env`: + +| Variable | Beschreibung | +|----------|--------------| +| `FQDN` | Vollqualifizierter Domainname (z.B. `location.example.com`) | +| `CERTBOT_EMAIL` | E-Mail für Let's Encrypt (erforderlich für SSL-Zertifikate) | + +### 2. Netzwerk erstellen + +Das `frontend`-Netzwerk muss extern existieren: + +```bash +docker network create frontend +``` + +### 3. Starten + +```bash +docker compose up -d --build +``` + +Beim ersten Start fordert nginx automatisch ein Let's Encrypt-Zertifikat an. Die Anwendung ist danach unter `https://` erreichbar. + +## Komponenten + +- **nginx** – Reverse Proxy mit HTTPS, gzip-Kompression, WebSocket-Support (ActionCable) +- **dawarich_app** – Rails-Anwendung +- **dawarich_sidekiq** – Hintergrund-Jobs +- **dawarich_db** – PostgreSQL/PostGIS +- **dawarich_redis** – Redis + +## SSL-Zertifikate + +- Automatische Anforderung beim ersten Start (wenn `CERTBOT_EMAIL` gesetzt) +- Automatische Erneuerung alle 12 Stunden +- Zertifikate werden im Volume `certbot_etc` persistiert + +## FQDN ändern + +Nach Änderung von `FQDN` in `.env`: + +```bash +docker compose build nginx --no-cache +docker compose up -d nginx +``` + +**Hinweis:** Ein neues Let's Encrypt-Zertifikat wird für die neue Domain angefordert. + +## Lizenz + +MIT – siehe [LICENSE](LICENSE).