43 lines
1.8 KiB
Markdown
43 lines
1.8 KiB
Markdown
<!-- retoor <retoor@molodetz.nl> -->
|
|
# Molodetz
|
|
|
|
Blog roll of the Molodetz community. Quiet, serif, slightly provocative. Posts are markdown in SQLite, written by retoor through an admin area. Flyers and memes are galleries. Join is a real sign-up form ("I'm in"). The whole site is in English; the old Dutch paths (`/rol`, `/standaard`, `/mensen`, `/binnen`, `/voorwaarden`) redirect with 301.
|
|
|
|
Built to the frozen DPP template (`/workspace/dpp/dptemplate.md`). See `SELECTION.md` for the module choice and `COMPLIANCE.md` for the review.
|
|
|
|
## Running
|
|
|
|
```
|
|
make install # venv in .venv, pip install -e ".[dev]", Chromium, git hooks
|
|
cp .env.example .env # only when there is no .env yet; chmod 600 .env
|
|
make dev # http://127.0.0.1:8088, reload
|
|
make prod # workers, pinned static version
|
|
```
|
|
|
|
Without make:
|
|
|
|
```
|
|
.venv/bin/python -m uvicorn molodetz.main:app --host 127.0.0.1 --port 8088
|
|
```
|
|
|
|
The first start creates the administrator from `MOLODETZ_ADMIN_USERNAME` / `MOLODETZ_ADMIN_EMAIL` / `MOLODETZ_ADMIN_PASSWORD` in `.env`, seeds the placeholder posts once and syncs the gallery. A one-time migration (`system.migrate.english`) translates content seeded by older Dutch versions. Log in at `/auth/login`, admin at `/admin`.
|
|
|
|
## Testing
|
|
|
|
```
|
|
make test # unit + api + e2e (Playwright, headless)
|
|
make test-headed # visible with slow motion
|
|
make check-ui # six static gates + em-dash + json_error order
|
|
make preflight # import, pyflakes, JS syntax, sqlglot lint, check-ui
|
|
make coverage
|
|
make locust-headless
|
|
```
|
|
|
|
## CLI
|
|
|
|
`molodetz --help`: roles, API keys, posts list/import (.md and .pdf via pypdf), join requests, backups, prunes, sql-lint, emoji regenerate.
|
|
|
|
## Data
|
|
|
|
Everything lives under `data/` (database `molodetz.db`, uploads, backups, keys, locks). `.env` and `data/` are in `.gitignore`.
|