f205c4271472f2f50db1a9eb368e1bb6d4013d7e
- Add PYTHONPATH/DJANGO_SETTINGS_MODULE for Docker environment - Fix gunicorn bind port (8000 instead of 8765) - Add whitenoise for static file serving - Fix JSONL parser: read role/content from event.message.* (nested structure) - Fix session counts (message_count/tool_call_count/error_count were all 0) - Increase DATA_UPLOAD_MAX_MEMORY_SIZE to 50MB for large batch syncs - Add STATIC_ROOT and WhiteNoise middleware for admin CSS - Fix index name length (>30 chars issue) - Replace unique_together with indexes (Django 5.x compatible) - Add graceful degradation for TimescaleDB hypertable creation - Add static_volume/ to .gitignore
agent-base
OpenClaw Session Archive - 多 Agent 会话解析与归档系统。
Architecture
Three nodes (Mac Mini, Ubuntu1, Ubuntu2) run a sync script that parses local JSONL session files and pushes structured data to a central Django API. The Django service runs in Docker Compose and stores data in a remote PostgreSQL + TimescaleDB instance on NAS.
Quick Start
# 1. Configure environment
cp .env.example .env
# Edit .env with your database credentials and Django settings
# 2. Build and start
docker compose build
docker compose run --rm web python manage.py migrate
docker compose run --rm web python manage.py createsuperuser
docker compose up -d
# 3. Access
# Django Admin: http://<host>:8000/admin/
# API: http://<host>:8000/api/sessions/bulk_upsert/
Running Tests
pip install -r requirements-dev.txt
pytest -v
Client Sync Script
Deploy scripts/sync_sessions.py on each node:
python sync_sessions.py --remote-url http://<django-host>:8000/api/sessions/bulk_upsert/
Set SOURCE_NODE environment variable on each node (macmini, ubuntu1, ubuntu2).
Daily Export
In Django Admin, select sessions and choose "Export selected sessions to Markdown" action.
Description
Languages
Python
93.9%
HTML
5.8%
Dockerfile
0.3%