arcanesync-server/README.md

32 lines
961 B
Markdown

# arcanesync
cloud sync backend for the arcanegram telegram client fork.
node 24 + hono + drizzle + postgres. validates telegram mini app `initData` per request.
## quick start
```bash
cp .env.example .env
# fill BOT_TOKEN with your bot's token
docker compose up -d postgres
pnpm install
pnpm db:migrate
pnpm dev
```
## endpoints
- `GET /health` — liveness
- `GET /miniapp` — telegram mini app stub (registered with botfather)
- `GET /sync` — auth: `Authorization: tma <initData>`. returns `{version, data}`.
- `PUT /sync` — auth as above. body `{baseVersion, patch}`. returns 200 `{version,data}` or 409 `{version,data}`.
## env
| var | default | meaning |
|---|---|---|
| `PORT` | `3000` | http port |
| `DATABASE_URL` | required | postgres dsn |
| `BOT_TOKEN` | required | telegram bot token (mini-app-enabled) |
| `AUTH_DATE_MAX_AGE_SECONDS` | `86400` | initData freshness window |
| `MAX_PAYLOAD_BYTES` | `65536` | per-PUT payload cap |