# KeepOrg A synchronization adapter for KeePass. Your databases stay ordinary `.kdbx` files that KeePassXC, KeePass2 or KeePassDX opens directly; a server keeps them in step between everyone who has access. The server never opens a database and cannot read one. Master passwords stay on the clients. - **Server** (`keeporgd`, Linux): hosts many KDBX databases, controls access with a tree of user groups, accepts registrations by invite link or OIDC, and pushes updates to connected clients. - **Desktop client** (`keeporg`, Linux, macOS, Windows, BSD): mirrors every assigned database into one directory as a real file, pushes each save and applies what others push. - **Android client**: the same, published to every file picker as a storage provider. No third-party dependencies, no cgo, no FUSE. ## Quick start ```sh make check # gofmt, vet, tests make all # keeporgd and keeporg for this host # a server for trying it out, on 127.0.0.1:8765 KEEPORG_ADMIN_PASSWORD=dev-password-1 make run-server # in another shell build/linux-arm64/keeporg login -server http://127.0.0.1:8765 -user admin build/linux-arm64/keeporg groups build/linux-arm64/keeporg db -create "Team Vault" -group build/linux-arm64/keeporg run ``` Then save a new KDBX database as `Team Vault.kdbx` in `~/KeepOrg` from your KeePass application. It becomes version 1 on the server, and every later save is pushed automatically. ## Packaging ```sh make deb # Debian packages for the client and the server make dmg # macOS disk image with an /Applications symlink (on macOS) make windows # Windows zip with a Task Scheduler job make android # unsigned release APK (needs the Android SDK) make help # every target ``` ## Documentation - [docs/HANDOVER.md](docs/HANDOVER.md) — architecture, the decisions behind it, operations, and what is left to do. - [docs/PROTOCOL.md](docs/PROTOCOL.md) — the HTTP API. - [android/README.md](android/README.md) — the Android module.