正在加载完整 README。 以下为已保存的摘录。
Privacy-first correlation analysis for your wellbeing
Understand why some days are good and others aren't — from a 60-second daily check-in. Self-hosted, offline-capable.
CorrelCore is not a medical device. All correlations are for personal reflection only and do not replace medical or therapeutic advice. The project is under active development on the self-host v1.x line — see SECURITY.md and CHANGELOG.md.查看完整 README ↗[!IMPORTANT] CorrelCore is not a medical device. All correlations are for personal reflection only and do not replace medical or therapeutic advice. The project is under active development on the self-host
v1.xline — seeSECURITY.mdandCHANGELOG.md.
People sense that sleep, exercise, remote-work days, or social contacts influence their wellbeing — but rarely know which factors actually matter, how strongly, and with what time delay. Existing apps are either too simple (just mood emojis), too cloud-dependent (a privacy problem for health data), or too complex (built for quantified-self enthusiasts).
CorrelCore fills the gap: log ~60 seconds a day, and it surfaces the associations that explain your good and bad days — on infrastructure you own.
CorrelCore is one codebase that runs in two modes — the same web bundle, distinguished at runtime by the backend (GET /api/v1/instance), so there is no separate build.
| Mode | What it is | Who runs it | Status |
|---|---|---|---|
| Self-hosted | You run the full stack (Docker) on your own server; your data never leaves your instance. | You | Available now — Quickstart · docs/selfhost/INSTALL.md |
| Hosted (SaaS) | Managed instance at correlcore.com — sign up, no ops. | Us | Live (beta) — public cutover done; general-availability closeout in progress |
Two backend env vars control the mode; defaults give a working self-host with open registration:
| Env variable | Default | Effect |
|---|---|---|
DEPLOYMENT_MODE | selfhost | selfhost | hosted — badge wording and default landing CTA framing. |
REGISTRATION_ENABLED | true | true opens self-registration (landing shows Create account); false closes it (server-enforced) and the landing points to Self-host. |
Log in is always available and logged-in users never see the marketing landing. Full behavior table and per-role walkthrough: docs/selfhost/INSTANCE_MODE.md.
Full install guide (Traefik, DNS, backup, homelab variant): docs/selfhost/INSTALL.md.
Prerequisites: Docker ≥ 24 + Compose v2, and a domain with DNS pointing at your server (public VPS path).
git clone https://github.com/Sturmi77/correlcore.git
cd correlcore/infra/docker
cp .env.example .env
# Edit .env: DOMAIN, LETSENCRYPT_EMAIL, SECRET_KEY, ENCRYPTION_KEY, passwords — see INSTALL.md
# Pin IMAGE_TAG=v1.9.2 (or the latest v1.x) for published GHCR images
# Set acme.email in infra/docker/traefik/traefik.yml to match LETSENCRYPT_EMAIL
docker compose up -d
After startup, CorrelCore is available at https://your-domain.tld.
infra/dockhand/README.mddocs/selfhost/COMPOSE_STACKS.mddocs/selfhost/ANDROID_SIDELOAD.mdcorrelcore.com): public cutover live (topology H; register/verify E2E green); launch closeout (#621) remaining.Full roadmap lives in docs/DESIGN_DOCUMENT.md; shipped milestones are archived in docs/releases/COMPLETED_MILESTONES.md.
FastAPI (Python 3.12) · SvelteKit · PostgreSQL 16 + pgvector · Redis 7 · Traefik · Docker-native, offline-first.
| Layer | Technology | Rationale |
|---|---|---|
| Backend API | FastAPI (Python 3.12) | Async, OpenAPI-native, fast iteration |
| Web Frontend | SvelteKit + Skeleton UI | Performance, small bundle |
| Mobile | Responsive web + PWA; Capacitor Android (sideload via Releases; Play = M11) | Maximum code sharing (ADR-0002) |
| Charts | Custom SVG components | No external framework, token-compliant |
| Database | PostgreSQL 16 + pgvector | Row-level security, vectors for insights |
| Cache / Queue | Redis 7 | Sessions, rate limiting, sync queue |
| Analytics | pandas + scikit-learn | Lasso, lag, symptom analytics; correlation engine |
| Migrations | Alembic | Schema versioning |
| Auth | Native JWT (Authentik planned) | Self-hostable (ADR-0004) |
| Offline Sync | Dexie.js (IndexedDB), feature-flagged | Push/pull LWW merge, local-first entry path |
| Monitoring | GlitchTip + Uptime Kuma | Self-hosted error tracking |
correlcore/
├── apps/
│ ├── web/ # SvelteKit web app + PWA
│ └── android/ # Capacitor Android app (sideload; Play = M11)
├── backend/ # FastAPI app, Alembic migrations, analytics worker
├── infra/ # docker-compose, Traefik, .env.example
├── docs/ # design doc, ADRs, self-host guides, release archive
└── docs-site/ # MkDocs Material → GitHub Pages
The full docs live on the public site — sturmi77.github.io/correlcore (install guide, user guide, API overview, privacy).
Key references in-repo: DESIGN_DOCUMENT.md (single source of truth) · ARCHITECTURE.md · Self-host install · Instance mode · ADR index.
CorrelCore is currently a solo project. See CONTRIBUTING.md for the language policy, PR rules, and Definition of Done — issues and discussions are welcome. Interested in beta / sideload testing? Open a beta-tester issue.
Released under the GNU Affero General Public License v3.0. For commercial self-host licenses without AGPL copyleft, reach out via an issue.