Konrad du Plessis a8ef7bb341 Update CLAUDE.md with cache-busting, email fallback, and deploy context
Documents three things that came out of today's Phase 2 deploy session
and weren't previously written down:

1. Static Assets & Cache-Busting (new section): explains that production
   traffic goes through Cloudflare with 4h edge cache; the
   `deployment_timestamp` template variable is what breaks stale caches;
   and why `request.timestamp` must never be used (the silent-default-to-1.0
   bug that ate a couple of hours).

2. Environment Variables: inline notes for each var. Most important new
   fact is that DEFAULT_FROM_EMAIL is now optional — falls back to
   EMAIL_HOST_USER if unset (prevents the "Invalid address ''" failure
   mode on outbound mail). Also documents that .env lives at BASE_DIR.parent
   on Flatlogic and can only be edited via Gemini/shell.

3. Flatlogic Deployment: collectstatic isn't auto-run, django-dev.service
   runs manage.py runserver (dev server in prod — known but works at this
   scale), Cloudflare sits in front, VM has two git remotes (github +
   gitea) that must stay in sync, VM-local safety branches for rollback,
   and the "pick one write path" workflow rule to avoid divergence.

No code changes — documentation only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 04:42:32 +02:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-04-22 00:19:15 +02:00
2026-04-22 01:50:25 +00:00
2026-04-22 00:19:15 +02:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-04-22 00:19:15 +02:00

Flatlogic Python Template Workspace

This workspace houses the Django application scaffold used for Python-based templates.

Requirements

  • Python 3.11+
  • MariaDB (or MySQL-compatible server) with the credentials prepared by setup_mariadb_project.sh
  • System packages: pkg-config, libmariadb-dev (already installed on golden images)

Getting Started

python3 -m pip install --break-system-packages -r requirements.txt
python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000

Environment variables are loaded from ../.env (the executor root). See .env.example if you need to populate values manually.

Project Structure

  • config/ Django project settings, URLs, WSGI entrypoint.
  • core/ Default app with a basic health-check route.
  • manage.py Django management entrypoint.

Next Steps

  • Create additional apps and views according to the generated project requirements.
  • Configure serving via Apache + mod_wsgi or gunicorn (instructions to be added).
  • Run python3 manage.py collectstatic before serving through Apache.
Description
No description provided
Readme 7.6 MiB
Languages
JavaScript 42.5%
SCSS 41.7%
CSS 11.9%
Python 3.2%
HTML 0.6%