From source
Galene is a SvelteKit app that runs on bun (1.1+; the app uses bun:sqlite). If you would rather run it without a container, this is the path.
Development
Section titled “Development”git clone https://github.com/galene-finance/galene.gitcd galenebun installbun run devOpen http://localhost:5173. On first run you are prompted to create an account (name, email, password); the first account on a server is always the admin, and you can optionally tick “Load demo data” to seed sample accounts, ~3 months of transactions, budgets, and rules.
Production
Section titled “Production”bun installbun run buildbun run build/index.jsThe server listens on port 3000 by default. Run it under your service manager of choice (systemd, …) so it starts on boot and restarts on failure.
Environment variables
Section titled “Environment variables”| Variable | Default | Notes |
|---|---|---|
GALENE_DATA_DIR |
./data |
Where the database file lives. On Linux this must sit on its own mount — see below. |
PORT |
3000 |
HTTP port. |
GALENE_COOKIE_SECURE |
follows NODE_ENV |
0 for plain HTTP, 1 behind a TLS-terminating proxy (Reverse proxy). |
The full table is in Environment variables.
The data directory on Linux
Section titled “The data directory on Linux”The app refuses to start if its data directory sits on the root filesystem instead of a separate mount (the same check that container deployments rely on; on Linux it reads /proc/mounts). A bind mount satisfies it:
sudo mkdir -p /srv/galene-data /var/lib/galenesudo chown <user>:<group> /var/lib/galene/srv/galene-data /var/lib/galene none bind 0 0sudo mount -aGALENE_DATA_DIR=/var/lib/galene bun run build/index.jsOn macOS and Windows there is no /proc/mounts, so the check is skipped and ./data works as-is — which is why development is unaffected.
First account
Section titled “First account”The first account created on a fresh database is always the admin — create it deliberately. Additional accounts (and more admins) are created by an admin under Settings → Users.
- The database is a single SQLite file (
galene.db, WAL mode) in the data directory. Back it up the way the container deployments do — see Backups. - The production build bakes in
NODE_ENV=production, so the session cookie isSecureby default; setGALENE_COOKIE_SECURE=0if you serve plain HTTP.