Kestral Budget

Self-host Kestral Budget

Run Kestral Budget on your own computer or server with Docker, Portainer, or Podman.

Self-hosting runs the same Kestral Budget app on your own computer or server. All options keep your data in a persistent volume you control. Prefer a desktop app? Download it for Windows or macOS instead.

The desktop and self-hosted editions use separate databases. Use Export backup and Import backup to move data between them. Do not expose a self-hosted instance to an untrusted network, because the app has no login.

Docker

Install Docker Desktop or Docker Engine with the Compose plugin, and make sure Git is available. From a terminal:

git clone https://github.com/btmcbride/kestralbudget.git
cd kestralbudget
docker compose up --build -d

Open http://localhost:8080. Data is stored in the persistent kestralbudget-data volume. Stop the app with docker compose down, which keeps your data. Avoid docker compose down -v unless you intend to delete it.

Portainer

Portainer’s Git-based stack deployment does not build this repository’s Docker image automatically. Build the image on the same Docker host that Portainer manages:

git clone https://github.com/btmcbride/kestralbudget.git
cd kestralbudget
docker build -f DockerFile -t kestralbudget:local .

In Portainer, select that Docker environment, open Stacks → Add stack → Web editor, and use this Compose definition:

services:
  kestralbudget:
    image: kestralbudget:local
    ports:
      - "8080:8080"
    environment:
      HOST: "0.0.0.0"
      PORT: "8080"
      DATABASE_PATH: /data/kestralbudget.sqlite
    volumes:
      - kestralbudget-data:/data
    restart: unless-stopped

volumes:
  kestralbudget-data:

Deploy the stack and open http://localhost:8080. The database is kept in the named volume.

Podman Desktop

Install Podman Desktop and start its Podman machine. Go to Settings → Resources → Compose → Setup to install the Compose provider (Podman Compose setup). Then clone the repository and start the app:

git clone https://github.com/btmcbride/kestralbudget.git
cd kestralbudget
podman compose up --build -d

Open http://localhost:8080. Stop it with podman compose down. The named volume preserves your data.

Questions or problems? Open an issue on GitHub. See also the FAQ and the privacy details.