Kleine CLI, um in Sekunden lokale Projekte (z. B. Django) samt DB, Traefik-Routing und TLS-Zertifikat aufzusetzen.
Kurz:
devon config --type=django && devon start→ läuft unterhttps://<projekt>.devon.site.
- 🧩 Projekt-Setup per Templates (
$DEVON_HOME/templates) - 🐍 Django + Postgres (weitere Frameworks/DBs erweiterbar)
- 🔒 Lokale TLS-Zertifikate via
mkcert+ Traefik - 🧰 Helfer:
doctor,status,logs,db shell/export/import - ⚙️ Konfiguration in
.devon/config.yaml(bearbeitbar, maschinenlesbar viayq)
- Docker & Docker Compose v2
mkcert(macOS:brew install mkcert nss && mkcert -install)- optional:
yq(empfohlen, robustes YAML-Handling)
- Script ausführbar machen:
chmod +x devon- Ins PATH legen (Beispiel macOS):
sudo install -m 0755 devon /usr/local/bin/devon- DEVON_HOME initialisieren (falls nicht vorhanden):
mkdir -p "$HOME/.devon"/{templates,traefik}
echo "0.0.1" > "$HOME/.devon/VERSION"Alternativ kannst du ein eigenes install.sh verwenden, das diese Schritte automatisiert.
# im Projektordner (z. B. ~/Projects/myapp)
devon config --type=django --python-version=3.12 --db-port=5433
devon start
devon open # öffnet https://myapp.devon.siteWichtigste Artefakte:
- .devon/config.yaml – zentrale Konfiguration
- .devon/docker-compose.yaml – generiert
- .devon/.env – generiert (nicht committen)
devon <command> [options]Hauptbefehle:
- config — generiert/aktualisiert .devon/
- Flags:
- --type= (z. B. django)
- --python-version=<x.y> (z. B. 3.12)
- --db-type=<postgres|...>
- --db-image=image:tag (z. B. postgres:15)
- --db-name= (default: db)
- --db-user= (default: postgres)
- --db-password= (default: db)
- --db-port= (default: 5432)
- start / stop / restart
- status — Containerstatus + URL
- logs [django|db|traefik]
- ssh — Shell im Django-Container
- db shell|import <dump.sql>|export [out.sql]
- outer start|stop|restart|logs — globaler Traefik
- open — Browser öffnen
- doctor — Diagnose inkl. TLS-Check
- --version — Tool-Version anzeigen
- help — Hilfe
.
├─ devon # CLI
├─ templates/
│ ├─ frameworks/
│ │ └─ django/
│ │ ├─ config.yaml.tpl
│ │ └─ create.sh
│ └─ services/
│ └─ postgres.yaml
├─ traefik/
│ └─ global_certs/ # (im Repo ignoriert)
├─ VERSION # z. B. 0.0.1
└─ README.mdAlle relevanten Werte landen in .devon/config.yaml. Beispiele:
project_name: myapp
framework: django
domain: myapp.devon.site
python_version: 3.12
db:
type: postgres
name: db
user: postgres
password: db
port: 5433Du kannst diese Datei manuell editieren; devon liest sie via yq (Fallback mit grep/awk).
- devon doctor ausführen.
- Prüfe, ob devon-traefik läuft (devon router start).
- Stelle sicher, dass mkcert -install ausgeführt wurde (CA im System).
- Prüfe /etc/hosts: 127.0.0.1 .devon.site.
- In Traefik-Logs schauen:
docker logs -f devon-traefik | grep -i "Configuration loaded"Das Traefik-Dashboard ist lokal und ggf. mit --api.insecure=true aktiviert. Nur lokal verwenden. Nicht auf öffentlichen Hosts betreiben.
- Tool-Version kommt aus:
- DEVON_VERSION (ENV) oder
- $DEVON_HOME/VERSION oder
- Fallback 0.0.1
Taggen eines Releases:
echo "0.0.1" > "$HOME/.devon/VERSION"
git tag v0.0.1 && git push --tagsMIT — siehe LICENSE.