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>
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 collectstaticbefore serving through Apache.
Description
Languages
JavaScript
42.5%
SCSS
41.7%
CSS
11.9%
Python
3.2%
HTML
0.6%