Skip to content

Quick start

You’ll build the Homestead image from the source code, start one container, run the web app next to it and finish setup in your browser. It takes a few minutes, most of it the first build.

  • A computer that can run Docker: a Linux server, a NAS, a Raspberry Pi (arm64), or your own Mac or PC. The image builds for amd64 and arm64.
  • Docker, with Docker Compose if you want the Compose tab below.
  • Git.
  • Node 22 and pnpm 9, for the web app (the versions pinned in mise.toml).
  • Ports 8080 and 5173 free on that machine.
  1. Get the source code.

    Terminal window
    git clone https://github.com/aprajnaparamita/homestead.git
  2. Go into the folder.

    Terminal window
    cd homestead
  3. Build the image from the repository root. The first build downloads Node and Go build images and can take several minutes.

    Terminal window
    docker build -f deploy/Dockerfile -t homestead .
  4. Start the container. Everything your household owns goes into the homestead-data volume.

    Terminal window
    docker run -d --name homestead -p 8080:8080 -v homestead-data:/data homestead

Ask the health endpoint. It needs no login.

Terminal window
curl http://localhost:8080/api/v1/health

You should see "status":"ok". A local build reports "version":"dev". If the database can’t be reached, the status is degraded and dbOk is false.

Docker also runs this check itself every 30 seconds. docker ps shows the container as healthy once it passes.

Run these from the homestead folder you cloned. They install the JavaScript workspace and start the web app’s development server.

  1. Install the workspace dependencies.

    Terminal window
    pnpm install --frozen-lockfile
  2. Start the web app. Leave it running.

    Terminal window
    pnpm --dir web dev
  3. Open http://localhost:5173/setup. If setup is already done, the page sends you to the login screen.

The development server only listens on this machine. To reach it from a phone or another computer on your network, start it with pnpm --dir web dev --host and use the machine’s address, such as http://192.168.1.20:5173. If you have Go installed too, make dev starts the server and the web app together.

Continue with First run.

Your data stays in the volume when the container stops or is removed.

Terminal window
docker stop homestead
Terminal window
docker start homestead