Install Spine
Spine runs on any Linux or macOS machine, or Windows with WSL2, that has Docker 24 or newer with Compose 2.20 or newer. Everything else — the database, the web app, the API and HTTPS — runs in containers. You don’t need Node or a database installed.
1. Download the release
Section titled “1. Download the release”Download the latest release’s files into a folder, for example /opt/spine:
mkdir -p /opt/spine && cd /opt/spinegh release download --repo haribrothers/spine # or download them from the releases pagechmod +x *.shThe release has install.sh, backup.sh, restore.sh, upgrade.sh, docker-compose.yml, Caddyfile, env.example and SHA256SUMS.
2. Run the installer
Section titled “2. Run the installer”./install.sh --app-url https://spine.example.comUse the address people will open Spine at. Without --app-url it asks for it; --non-interactive uses APP_URL from the environment, or http://localhost.
The installer:
- checks Docker and Compose;
- writes
.envwith a randomAUTH_SECRETand database password (an existing.envis never changed); - downloads Spine’s images and starts it, waiting until it’s healthy;
- prints the address and the commands for logs, backups, upgrades and stopping.
The first start takes a minute or two while the images download and the database is set up.
3. Create the first account
Section titled “3. Create the first account”Open the address. With no accounts yet, Spine shows a welcome page: create your account. The first person to sign up owns the business (the Primary Owner). After that, sign-up closes: everyone else joins by an invitation from an Owner.
Onboarding then asks for your business details, country and tax, currency, financial year and document numbering. You can skip any step and come back to it in Settings.
4. Issue your first invoice
Section titled “4. Issue your first invoice”- Contacts › Add contact: add a customer.
- Invoices › New invoice: pick the customer, add a line, and Save draft.
- Issue invoice: it gets its permanent number and posts to your books.
What’s running
Section titled “What’s running”| Service | What it does |
|---|---|
db |
PostgreSQL 16, on the spine_db volume |
api |
The API, with your files on the spine_files volume |
web |
The web app |
caddy |
Serves both on your address and gets the HTTPS certificate |
Stop Spine with docker compose --profile minimal down and start it again with ./install.sh (it keeps your .env).
- Configuration: every setting in
.env. - Email: send quotes, invoices and invitations.
- Backups and restore: set this up before you rely on Spine.
- HTTPS and domains.