Fix: separate vault cache volume from read-only API dir

This commit is contained in:
sascha 2026-04-18 10:25:59 +02:00
parent 09bbc47d6c
commit e3ad63b01f
2 changed files with 7 additions and 5 deletions

9
app.py
View file

@ -8,11 +8,12 @@ from fastapi.responses import JSONResponse
from contextlib import asynccontextmanager
log = logging.getLogger("butler")
VAULT_REFRESH_MINUTES = int(os.environ.get("VAULT_REFRESH_MINUTES", "30"))
API_DIR = os.environ.get("API_KEY_DIR", "/data/api")
BUTLER_TOKEN = os.environ.get("BUTLER_TOKEN", "")
BW_PASSWORD = os.environ.get("BW_PASSWORD", "")
VAULT_REFRESH_MINUTES = int(os.environ.get("VAULT_REFRESH_MINUTES", "30"))
VAULT_CACHE_DIR = os.environ.get("VAULT_CACHE_DIR", "/data/vault-cache")
# --- Vault sync ---
@ -59,10 +60,10 @@ def _sync_vault():
new_cache[name] = notes.strip()
_vault_cache = new_cache
# Write to disk as cache (fallback if vault unreachable later)
os.makedirs(f"{API_DIR}/.vault-cache", exist_ok=True)
os.makedirs(VAULT_CACHE_DIR, exist_ok=True)
for name, value in new_cache.items():
safe = name.lower().replace(" ", "-")
with open(f"{API_DIR}/.vault-cache/{safe}", "w") as f:
with open(f"{VAULT_CACHE_DIR}/{safe}", "w") as f:
f.write(value)
log.info(f"Vault sync: {len(new_cache)} items cached")
return True
@ -73,7 +74,7 @@ def _sync_vault():
def _load_disk_cache():
"""Load cached vault items from disk (fallback)."""
global _vault_cache
cache_dir = f"{API_DIR}/.vault-cache"
cache_dir = VAULT_CACHE_DIR
if not os.path.isdir(cache_dir):
return
for f in os.listdir(cache_dir):