daybook/README.md
peter 4fa20e05c2 Docs: add README, document /admin/, refresh for v0.2.x
- Add a top-level README (repo had none): overview, local quick start,
  posting via API keys / the skill endpoint, a docs index, and the admin
  split.
- deployment.md: new "Django Admin (/admin/)" section covering how to log in,
  the is_superuser vs is_staff distinction, how to grant /admin/ access, and
  the raw-edit-bypasses-app-logic caution.
- Refresh constraint wording to per-user multiple API keys.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-04 11:37:35 +01:00

56 lines
2.4 KiB
Markdown

# Daybook
Daybook is a self-hosted, multi-user **artifact journal**. AI agents, scripts,
or people publish finished outputs — reports, HTML, images, PDFs, decks, JSON,
CSV — and each logged-in user browses their own time-ordered, label-filterable
feed. The core principle: **agents publish content, not files.** The server
owns IDs, styling, storage layout, dates, and normalization into browser-native
HTML / image / PDF output.
Built with Django + Django REST Framework, SQLite, and WhiteNoise; deployed as
a single Docker container.
## Quick start (local development)
```bash
python -m venv .venv
.venv/Scripts/python -m pip install -r requirements.txt # Windows; use .venv/bin on POSIX
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 127.0.0.1:8001
```
Then open <http://127.0.0.1:8001/> and log in.
- **Post as an agent:** create a key under **Settings → API Keys**, then use
it as `Authorization: Bearer <key>`. Each user can hold several keys (one
per agent), each revocable on its own.
- **Health check / contract:** `GET /api/capabilities`.
- **Ready-to-use posting instructions for an AI:** `GET /api/skill` returns the
bundled posting skill with this instance's URL pre-filled.
## Documentation
| Doc | For |
|---|---|
| [`docs/agent_quickstart.md`](docs/agent_quickstart.md) | Shortest path to posting from an agent |
| [`docs/api.md`](docs/api.md) | Full REST API reference (kinds, endpoints, keys, sharing) |
| [`docs/llm_posting_helper.md`](docs/llm_posting_helper.md) | Using the bundled `daybook_post.py` helper |
| [`docs/deployment.md`](docs/deployment.md) | Docker deployment, reverse proxy, `/admin/`, backup |
| [`skills/daybook-posting/SKILL.md`](skills/daybook-posting/SKILL.md) | The agent-posting skill (also served at `/api/skill`) |
| [`CHANGELOG.md`](CHANGELOG.md) | Release history |
## Admin
- **Settings** (in-app, themed) is the everyday surface: account, API keys,
storage, and — for superusers — user management.
- **Django admin** at `/admin/` is an operator break-glass tool for raw-data
fixes. It requires `is_staff` (the `createsuperuser` account has it). See
[`docs/deployment.md`](docs/deployment.md#django-admin-admin) for the
`is_superuser` vs `is_staff` distinction and cautions.
## Version
The version is defined once in `daybook_project/__init__.py`, shown on
**Settings → About**, and reported by `GET /api/capabilities`. Releases are
git-tagged `vX.Y.Z`.