Problem: every time collectstatic ran on the VM, Flatlogic's web UI detected the modified files in staticfiles/ and auto-committed them with a generic "Ver XX.YY" message (e.g. "Ver 30.04 Fix reports and add Supervisor"), pushing the result to gitea but not GitHub. Every push of CSS/JS changes triggered a reconciliation dance. See the "Ver 30.04" divergence resolved by commit e0d2c74 for the most recent example — that was the 3rd or 4th recurrence of this exact pattern. Fix: 1. Add staticfiles/ to .gitignore 2. Untrack all 627 currently-tracked files via `git rm -r --cached` 3. Document the change in CLAUDE.md (Project Structure, Static Assets, and a new "NOT tracked in git" subsection) Deploy consequence: the NEXT pull on the VM will delete staticfiles/ from the working tree (because git sees those files removed from the tree). Gemini MUST run `collectstatic --noinput` IMMEDIATELY after `git pull` to repopulate from source, then restart the service. Brief window of 404s on static assets is acceptable at this scale (seconds). After this change: collectstatic output lives on the VM's filesystem but outside git's view, so Flatlogic's UI has nothing to auto-commit. The recurring divergence pattern is permanently eliminated. No runtime code changes — all 28 tests still pass. 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%