docker + datenhaltung refreshed
This commit is contained in:
1 parent
dffc360790
commit
6eec88d8f5
10 files changed
+108
-25
No files matched your search
+7
-1
@@ -4,4 +4,10 @@ SECRET_KEY=replace-with-a-secure-random-key-in-prod
|
||||
ZITADEL_CLIENT_ID=your-zitadel-client-id
|
||||
ZITADEL_CLIENT_SECRET=your-zitadel-client-secret
|
||||
ZITADEL_DISCOVERY_URL=https://id.vmlx.de/.well-known/openid-configuration
|
||||
DATABASE_URL=sqlite:///app.db
|
||||
|
||||
# Verzeichnis für die SQLite-Datei (app.db wird darin angelegt).
|
||||
# Gilt für flask run UND Docker gleichermassen.
|
||||
# Docker-Compose mountet diesen Pfad als Bind Mount in den Container.
|
||||
# Lokal: DB_DATA_PATH=./data → Projektordner/data/app.db
|
||||
# Prod: DB_DATA_PATH=/dbdata → /dbdata/app.db auf dem Host
|
||||
DB_DATA_PATH=./data
|
||||
@@ -1,3 +1,4 @@
|
||||
data/
|
||||
venv/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
+8
-1
@@ -11,14 +11,21 @@ OIDC Discovery URL.
|
||||
"""
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
|
||||
def _db_uri() -> str:
|
||||
data_path = Path(os.environ.get("DB_DATA_PATH", "./data")).resolve()
|
||||
data_path.mkdir(parents=True, exist_ok=True)
|
||||
return f"sqlite:///{data_path}/app.db"
|
||||
|
||||
|
||||
class Config:
|
||||
SECRET_KEY = os.environ.get("SECRET_KEY", "dev-secret-change-me")
|
||||
SQLALCHEMY_DATABASE_URI = os.environ.get("DATABASE_URL", "sqlite:///app.db")
|
||||
SQLALCHEMY_DATABASE_URI = _db_uri()
|
||||
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
||||
|
||||
ZITADEL_CLIENT_ID = os.environ.get("ZITADEL_CLIENT_ID")
|
||||
|
||||
+4
-6
@@ -2,15 +2,13 @@ services:
|
||||
web:
|
||||
build:
|
||||
context: .
|
||||
# pull: true sorgt dafür, dass ein aktualisiertes Basis-Image einen Rebuild auslöst
|
||||
pull_policy: always
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- "8000:8000"
|
||||
volumes:
|
||||
- db_data:/app/instance
|
||||
# Bind Mount auf Host-Pfad – kein Named Volume.
|
||||
# DB liegt als echte Datei auf dem Host, überlebt jeden Rebuild und docker down.
|
||||
# Pfad wird über DB_DATA_PATH in der .env gesetzt.
|
||||
- ${DB_DATA_PATH:-./data}:/app/instance
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
@@ -0,0 +1,14 @@
|
||||
SPHINXBUILD ?= sphinx-build
|
||||
SOURCEDIR = .
|
||||
BUILDDIR = _build
|
||||
|
||||
.PHONY: help html clean
|
||||
|
||||
help:
|
||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)"
|
||||
|
||||
html:
|
||||
@$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)
|
||||
+12
-2
@@ -1,5 +1,8 @@
|
||||
# Sphinx-Konfiguration – wird nach jedem Meilenstein mit flask seed-db und
|
||||
# sphinx-apidoc -o docs/source/ app/ aktualisiert.
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Projektroot ins sys.path, damit 'import app' funktioniert
|
||||
sys.path.insert(0, os.path.abspath(".."))
|
||||
|
||||
project = "OIDC Flask Showcase"
|
||||
author = "Bjoern Runden"
|
||||
@@ -12,3 +15,10 @@ extensions = [
|
||||
|
||||
exclude_patterns = ["_build"]
|
||||
html_theme = "alabaster"
|
||||
|
||||
# Autodoc-Optionen: Docstrings auch aus __init__ holen
|
||||
autodoc_default_options = {
|
||||
"members": True,
|
||||
"undoc-members": True,
|
||||
"show-inheritance": True,
|
||||
}
|
||||
+1
-14
@@ -5,17 +5,4 @@ OIDC Flask Showcase – Dokumentation
|
||||
:maxdepth: 2
|
||||
:caption: Module:
|
||||
|
||||
.. automodule:: app
|
||||
:members:
|
||||
|
||||
.. automodule:: app.config
|
||||
:members:
|
||||
|
||||
.. automodule:: app.models
|
||||
:members:
|
||||
|
||||
.. automodule:: app.auth
|
||||
:members:
|
||||
|
||||
.. automodule:: app.routes
|
||||
:members:
|
||||
source/modules
|
||||
@@ -0,0 +1,53 @@
|
||||
app package
|
||||
===========
|
||||
|
||||
Submodules
|
||||
----------
|
||||
|
||||
app.auth module
|
||||
---------------
|
||||
|
||||
.. automodule:: app.auth
|
||||
:members:
|
||||
:show-inheritance:
|
||||
:undoc-members:
|
||||
|
||||
app.config module
|
||||
-----------------
|
||||
|
||||
.. automodule:: app.config
|
||||
:members:
|
||||
:show-inheritance:
|
||||
:undoc-members:
|
||||
|
||||
app.database module
|
||||
-------------------
|
||||
|
||||
.. automodule:: app.database
|
||||
:members:
|
||||
:show-inheritance:
|
||||
:undoc-members:
|
||||
|
||||
app.models module
|
||||
-----------------
|
||||
|
||||
.. automodule:: app.models
|
||||
:members:
|
||||
:show-inheritance:
|
||||
:undoc-members:
|
||||
|
||||
app.routes module
|
||||
-----------------
|
||||
|
||||
.. automodule:: app.routes
|
||||
:members:
|
||||
:show-inheritance:
|
||||
:undoc-members:
|
||||
|
||||
Module contents
|
||||
---------------
|
||||
|
||||
.. automodule:: app
|
||||
:members:
|
||||
:show-inheritance:
|
||||
:undoc-members:
|
||||
@@ -0,0 +1,7 @@
|
||||
app
|
||||
===
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 4
|
||||
|
||||
app
|
||||
Reference in new issue
Block a user