Run a server without Docker

The server is a Python package (Python 3.11 or later). Install it with uv or pip:

uv tool install mindin        # or: pip install mindin

Add the semantic extra (mindin[semantic]) for search by meaning.

  1. Set the settings in the environment. These are the ones it needs; Configuration lists the rest.

    export VAULT_PUBLIC_URL=https://vault.example.com
    export VAULT_HOSTED_MASTER_KEY=$(mindin master-key generate)
    export VAULT_PATH=/srv/notes-vault/vaults
    export VAULT_SMTP_HOST=smtp.example.com VAULT_SMTP_FROM="Vault <vault@example.com>" \
      VAULT_SMTP_USERNAME=... VAULT_SMTP_PASSWORD=...

    Keep the master key: once it has sealed a vault, the server refuses to start with any other. For a bucket in place of VAULT_PATH, see Storage.

  2. Start it and invite yourself:

    mindin serve --transport http --host 127.0.0.1 --port 8765
    mindin accounts invite you@example.com

    --host defaults to 127.0.0.1 and --port to 8765. Run accounts with the same environment as the server, so it opens the same hosted.sqlite under VAULT_AUTH_DIR (default ~/.cache/mindin/auth).

  3. Put TLS in front of it. VAULT_PUBLIC_URL must be https://, or http://localhost for a trial on your own machine. Any reverse proxy works; see Behind a reverse proxy.

  4. Open VAULT_PUBLIC_URL/account and sign in.

The server loads the extensions installed beside it, from the Python entry point group mindin.extensions.