Agree on the partnership before you commit to it
Find out what you and your business partner are actually agreeing to. Each of you answers on your own, you see where your expectations differ, and you build a shared brief to take to your lawyer.
Privacy-focused people management and search — a self-hosted personal CRM to import, dedupe, enrich, and stay in touch with your network.
BusinessTypeScript · CSSGitHub @arvarikOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Self-hosted contact management + tracking + online enrichment for your personal and professional needs 🐦⬛
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Contacts are scattered all over your apps, often have a large overlap, and aren't necessarily filled in with the most amount of information you'd like. When every app requests access to your contacts, it doesn't really feel like you own your network.
And even when you meticulously update your private Apple contacts, there's no good way to keep building the relationship or continuously updating their important details.
Contrack solves all of these by being an all-in-one, self-hosted contact management app that a follows a simple 4 step process:
And everything else you expect: rich notes with file & image attachments, @mentions that link people together, custom dates and anniversaries, lists and tags, passkey sign-in, a 90-day trash with undo, open exports anytime, and warm light and dark themes.
Privacy isn't a setting. It's the foundation. Contrack lives on your own computer or home server. Your relationships aren't training anyone's model, sitting on a rented cloud, or locked behind a monthly subscription. Search happens right on your device.
Share one home server with your family or team while keeping everyone's address book completely private to them. And when you want AI to research a contact or turn a quick note into a rich profile, you bring the model you trust, or use none at all.
Run Contrack on your machine with Docker:
docker run -d --name contrack -p 127.0.0.1:3210:3210 \
-v contrack-data:/app/data ghcr.io/arvarik/contrack:latest
Then open http://localhost:3210. There is no cloud account to sign up for and no API key required. Everything stays in your contrack-data folder. Whenever you want AI features, open Settings → Administration → AI.
Docker Compose with the published image:
services:
contrack:
image: ghcr.io/arvarik/contrack:latest
container_name: contrack
restart: unless-stopped
ports:
- "127.0.0.1:3210:3210"
volumes:
- contrack-data:/app/data
environment:
- AUTH_REQUIRED=false # Set to true before exposing beyond localhost
volumes:
contrack-data:
Or build the image from this repository:
git clone https://github.com/arvarik/contrack.git && cd contrack
docker compose up -d
From source, with Node.js 26.10 or later:
git clone https://github.com/arvarik/contrack.git && cd contrack
npm install
npm run dev
For your household or team: turn on sign-in with -e AUTH_REQUIRED=true. Your first visit creates the admin profile, and you can invite family or teammates from Settings → Administration → Accounts. See the Self-hosting guide for remote access, backups, and upgrades.
Open a live demo in your browser preloaded with 400 fictional people, with no installation and no API key needed.