Files
keeporg/packaging/windows
ReactorcoremeltdownandClaude Opus 5.5 ead82dc777 Turn the desktop client into a system tray application
Started without a command, keeporg now shows a padlock in the system tray
with a menu like midi-webhook's: a status line, the mirror folder, each
database with its state, Sync Now, browser sign-in and sign-out, the web
interface, the configuration, the log, Start at Login, About and Quit. The
commands are unchanged.

config.json now carries every client setting (device_label,
request_timeout_seconds, ca_file, log_file, notifications), is written in
full on first start and is reloaded by the tray when saved.

A lock in the mirror directory admits one agent at a time, since the tray,
`keeporg run` and a service unit could otherwise race each other.

The tray uses fyne.io/systray: pure Go on Linux, BSD and Windows, cgo on
macOS only. The server keeps no third-party dependencies.

Desktop versions go to 0.5.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:30:28 +01:00
..

KeepOrg for Windows
===================

keeporg-tray.exe is the tray application. keeporg.exe is the same program for a
command prompt: administration commands, and the agent without a tray.

First run
---------
1. Copy both files to %LOCALAPPDATA%\Programs\KeepOrg and start keeporg-tray.exe.
   A padlock appears in the notification area.
2. Choose Open Config from its menu, set "server_url" to your server, for
   example "https://keeporg.example.com", and save.
3. Choose Sign In... and approve the code in the browser that opens, with
   your password or single sign-on.

Your databases appear in %UserProfile%\KeepOrg. Open them with KeePass,
KeePassXC or any compatible application: every save is pushed to the
server, and changes made by other people are applied to the files. The
Databases submenu shows each one's state and opens it.

Tick Start at Login to start KeepOrg when you sign in to Windows.

Settings
--------
%AppData%\keeporg\config.json holds every setting, and the tray applies an
edit as soon as it is saved:

  server_url               the server, as a browser sees it
  device_label             this computer's name in the server's session list
  mirror_dir               where the .kdbx files are kept
  poll_seconds             how often local saves are looked for
  request_timeout_seconds  the limit on one request to the server
  ca_file                  a PEM bundle, for a server behind a private CA
  log_file                 the log; empty means keeporg.log beside config.json
  notifications            desktop notifications (not shown on Windows yet)
  username, token          written by signing in

Without the tray
----------------
  keeporg.exe login -server https://keeporg.example.com -user you
  keeporg.exe run

keeporg-task.xml starts `keeporg.exe run` at logon through Task Scheduler,
for a machine where nobody uses the tray:

  schtasks /create /tn KeepOrg /xml keeporg-task.xml

Only one agent synchronizes a directory at a time; a second one reports
that the first is running and stops.

Conflicts
---------
If someone else saved first, your save is kept beside the file as
<name>.conflict-<timestamp>.kdbx and the server copy is restored. Open both
in KeePass and merge them, or ask a group administrator to switch the
database to another merge strategy.