个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Syllogic is an open-source personal finance app for self-hosters who want control over their data without giving up a polished product. Track balances, spending, recurring charges, and trends, import and export CSVs, and optionally enable AI categorization.
One-liner (requires root, Docker, and Docker Compose):
curl -fsSL https://github.com/syllogic-ai/syllogic/releases/latest/download/install.sh | sudo bash
Or manually:
Clone and configure:
Linux/macOS:
git clone https://github.com/syllogic-ai/syllogic.git
cd syllogic
cp deploy/compose/.env.example deploy/compose/.env
# Edit deploy/compose/.env — set POSTGRES_PASSWORD, BETTER_AUTH_SECRET, INTERNAL_AUTH_SECRET
Windows (PowerShell):
git clone https://github.com/syllogic-ai/syllogic.git
cd syllogic
copy deploy\compose\.env.example deploy\compose\.env
# Edit deploy\compose\.env — set POSTGRES_PASSWORD, BETTER_AUTH_SECRET, INTERNAL_AUTH_SECRET
Start:
Linux/macOS:
./scripts/prod-up.sh
Windows (PowerShell or CMD):
.\scripts\prod-up.bat
Open http://localhost:8080 and create your account.
For advanced configuration (TLS, custom domains, MCP server), see deploy/compose/README.md.
The template configures everything through Railway Shared Variables — one place
that every service reads from. The required secrets (POSTGRES_PASSWORD,
BETTER_AUTH_SECRET, INTERNAL_AUTH_SECRET, DATA_ENCRYPTION_KEY_CURRENT) are
auto-generated at deploy time, so a default deploy needs no manual input.
Optionally set these Shared Variables to enable extra features:
OPENAI_API_KEY (enables AI categorization)LOGO_DEV_API_KEY (enables company logos)For full Railway setup details, see deploy/railway/README.md.
Maintainers publishing the template: see deploy/railway/TEMPLATE.md.
For public demo environments, you can share a login URL that prefills demo credentials:
https://your-app-domain.com/login?demo=1
Syllogic public demo:
https://app.syllogic.ai/login?demo=1
Set these frontend environment variables on that deployment:
NEXT_PUBLIC_DEMO_EMAILNEXT_PUBLIC_DEMO_PASSWORDOptional auth throttling (recommended for public demos):
AUTH_RATE_LIMIT_ENABLED=trueAUTH_RATE_LIMIT_WINDOW_MS=60000AUTH_RATE_LIMIT_MAX_ATTEMPTS_PER_WINDOW=30DEMO_AUTH_RATE_LIMIT_MAX_ATTEMPTS_PER_WINDOW=10DEMO_AUTH_RATE_LIMIT_GLOBAL_MAX_ATTEMPTS_PER_WINDOW=120| Method | Use case | Docs |
|---|---|---|
| CasaOS | Home lab / NAS users | deploy/casaos/ |
The deployment configs in this repo — deploy/railway/, deploy/compose/,
deploy/casaos/ and the railway.*.toml files — describe how you can host
Syllogic. They are the supported, documented paths, and the one-click Railway
template is built from them.
They do not describe how app.syllogic.ai is
wired. That instance runs on Coolify on a single server,
and it is itself a self-hosted deployment of this same code — it just happens to
also serve the public demo login. Coolify is not listed above because it is not
packaged as a template here; if you want it, the deploy/compose/ stack is the
closest starting point.
One difference worth knowing if you are building a client against it: on that instance only the web app and the MCP endpoint are publicly reachable. The FastAPI service is private, and the web app proxies to it — so a mobile or third-party client authenticates against the web origin, not against the API directly. A self-hosted deployment can expose the API however it likes; nothing in the code requires this arrangement.
| Variable | Description | Required |
|---|---|---|
POSTGRES_PASSWORD | PostgreSQL password | Yes |
BETTER_AUTH_SECRET | Auth session signing key | Yes |
INTERNAL_AUTH_SECRET | App-to-backend signed auth | Yes |
DATA_ENCRYPTION_KEY_CURRENT | Field-level encryption key | Recommended |
OPENAI_API_KEY | AI transaction categorization | No |
LOGO_DEV_API_KEY | Company logo lookup | No |
Generate secrets with openssl rand -hex 32. For encryption keys: openssl rand -base64 32.
OPENAI_API_KEY — AI-powered categorization via OpenAI (GPT-4o-mini by default).
LOGO_DEV_API_KEY — Company logo lookup via logo.dev.
Full variable reference is available in deploy/compose/.env.example.
Both services share a single PostgreSQL database. The frontend handles all CRUD via Server Actions; the backend handles data enrichment, bank sync, and background jobs.
Syllogic models a household as a set of people belonging to one user. Accounts, properties, and vehicles can have one or more owners with optional shares (a NULL share means equal split). Holdings inherit ownership from their account. The Syllogic MCP read tools accept person_ids to scope results and attribute share-weighted amounts.
Track brokerage and crypto holdings with portfolio summaries and history. The Syllogic MCP exposes read tools for holdings, portfolio summary/history, and symbol search.
Quick start for contributors:
Everything runs in Docker using prebuilt images. Easiest setup for full-stack testing.
1. Clone and configure:
git clone https://github.com/syllogic-ai/syllogic.git
cd syllogic
cp deploy/compose/.env.example deploy/compose/.env
# Edit deploy/compose/.env — set INTERNAL_AUTH_SECRET, BETTER_AUTH_SECRET
# Keep DATABASE_URL=postgresql://...@postgres:5432/... (Docker internal)
2. Start the stack:
# Linux/macOS
./scripts/dev-up.sh --prebuilt
# Windows
.\scripts\dev-up.bat prebuilt
3. Open http://localhost:8080
Infrastructure runs in Docker, frontend runs on host. Best for frontend development with hot reload.
1. Clone and configure:
git clone https://github.com/syllogic-ai/syllogic.git
cd syllogic
cp deploy/compose/.env.example deploy/compose/.env
# Edit deploy/compose/.env — set INTERNAL_AUTH_SECRET, BETTER_AUTH_SECRET
2. Start infrastructure:
# Linux/macOS
./scripts/dev-up.sh --local
# Windows
.\scripts\dev-up.bat local
This starts PostgreSQL, Redis, and Celery workers, installs dependencies, runs migrations, and creates frontend/.env.local with the required environment variables.
3. Start the Next.js dev server:
cd frontend
pnpm dev
4. (Optional) Start the backend (required for CSV import and other backend features):
cd backend
uvicorn app.main:app --reload
5. Open http://localhost:3000
Note: Local mode runs only infrastructure. CSV import and other backend features require starting the backend (step 4) or using prebuilt mode.
See CONTRIBUTING.md for full setup instructions and code style guidelines.
Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).