## Summary
- Root cause: `docker-compose.yml` used `${DATABASE_URL:-…}`, so the Act runner’s host/`prod` `DATABASE_URL` was interpolated into the web service. Containerized deploy tests then ran against shared Postgres instead of the bundled compose `db`.
- Stop reading host `DATABASE_URL` in compose (use `COMPOSE_DATABASE_URL` override only).
- Deploy docker step: unset DB secrets, dedicated compose project name, `up --wait db`, force test `DATABASE_URL` to `postgres://scha:scha@db:5432/scha`, `down -v` on exit (ephemeral DB).
- Clear `DATABASE_URL`/`DB_HOST` in `unittests.yml` / `ci.yml` so host sqlite-fallback tests cannot hit prod either.
## Test plan
- [ ] Merge to `master` and watch Unit Tests + Deploy docker job.
- [ ] Confirm docker step connects only to compose `db` (no traffic/errors against `10.0.0.230`).
- [ ] Confirm `docker compose -p scha-ci-<sha> …` volumes cleaned after job (`down -v`).
- [ ] Local: `docker compose up --build` still works with bundled Postgres.
Reviewed-on: #24
## Summary
Closes#1.
- Adds real Django unit tests in `schasite/tests.py` (public pages, membership form + form validation, model helpers, calendar helpers, Stripe endpoints with mocks, auth/login_required behavior).
- Includes the dockerize + Gitea Actions CI/CD base so PRs run tests and deploy only after Unit Tests succeed on a `master` push (company_site pattern).
## Test plan
- [x] `DJANGO_ENV=dev DJANGO_SECRET_KEY=test-secret-key uv run python manage.py test schasite` — 30 tests OK
- [ ] Open this PR and confirm Unit Tests / CI workflows run on the self-hosted runner
- [ ] After merge to `master`, confirm Unit Tests run on push and deploy only proceeds when they pass
Reviewed-on: #22
## Summary
- Remove unused `.top-head` / `.top-body` CSS rules that referenced missing GIF files (`top-head.gif`, `top-body.gif`), which caused `whitenoise.storage.MissingFileError` and crashed the prod container at collectstatic/startup.
- Drop a stray `{% load static %}` tag from `style.css` (not a Django template).
- Branch rebased onto current `master` (dockerize already merged via #21); this PR is the CSS-only fix.
## Test plan
- [ ] Merge and let deploy run (or redeploy scha prod).
- [ ] Confirm web container stays up (no WhiteNoise `MissingFileError`).
- [ ] Spot-check site CSS still looks fine on public pages.
- [ ] Separately: if Compose still warns about unset `$…` vars, escape `$` as `$$` in `~/Documents/secrets/scha/scha_prod.env` password/`DATABASE_URL`.
Reviewed-on: #23