個人 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).