cloud sync backend for the arcanegram
Find a file
devilreef be230d1f59
Some checks failed
docker / build (push) Failing after 2m1s
ci: drop runner container override, use runner default image
2026-04-29 12:16:29 +06:00
.forgejo/workflows ci: drop runner container override, use runner default image 2026-04-29 12:16:29 +06:00
.vscode init: typescript esm boilerplate 2026-04-29 12:14:17 +06:00
src feat: wire hono app and start server 2026-04-29 12:14:18 +06:00
.dockerignore init: typescript esm boilerplate 2026-04-29 12:14:17 +06:00
.editorconfig init: typescript esm boilerplate 2026-04-29 12:14:17 +06:00
.env.example chore: scaffold arcanesync deps and config 2026-04-29 12:14:17 +06:00
.gitignore init: typescript esm boilerplate 2026-04-29 12:14:17 +06:00
.tokeignore init: typescript esm boilerplate 2026-04-29 12:14:17 +06:00
AGENTS.md chore: rename to arcanesync-backend; update agents.md; disable vitest in eslint 2026-04-29 12:14:18 +06:00
CLAUDE.md init: typescript esm boilerplate 2026-04-29 12:14:17 +06:00
docker-compose.yml chore: add docker-compose, migrations on start, readme 2026-04-29 12:14:18 +06:00
Dockerfile chore: add docker-compose, migrations on start, readme 2026-04-29 12:14:18 +06:00
drizzle.config.ts feat: add drizzle schema for user_settings 2026-04-29 12:14:17 +06:00
eslint.config.mjs chore: rename to arcanesync-backend; update agents.md; disable vitest in eslint 2026-04-29 12:14:18 +06:00
package.json chore: rename to arcanesync-backend; update agents.md; disable vitest in eslint 2026-04-29 12:14:18 +06:00
pnpm-lock.yaml chore: scaffold arcanesync deps and config 2026-04-29 12:14:17 +06:00
pnpm-workspace.yaml init: typescript esm boilerplate 2026-04-29 12:14:17 +06:00
README.md chore: add docker-compose, migrations on start, readme 2026-04-29 12:14:18 +06:00
tsconfig.json init: typescript esm boilerplate 2026-04-29 12:14:17 +06:00

arcanesync

cloud sync backend for the arcanegram telegram client fork. node 24 + hono + drizzle + postgres. validates telegram mini app initData per request.

quick start

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