Docker
The official Docker image runs the same self-contained build used in the quick install. Multi-architecture images are published โ Docker pulls the right one for your host automatically.
System requirementsโ
- Docker installed on the host.
- Docker Compose if you want to use the bundled compose example.
Quick startโ
docker run -d -p 8765:8765 -v solidinvoice_data:/etc/solidinvoice solidinvoice/solidinvoice
The application starts on http://127.0.0.1:8765. Continue with the first-run wizard.
Change 8765 on the left side of the -p flag to expose SolidInvoice on a different host port (e.g. -p 80:8765).
Docker Composeโ
For a complete stack (app + database), use a docker-compose.yml like the one shipped with the repository:
services:
db:
image: "mysql:8.0"
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_DATABASE: solidinvoice
MYSQL_ALLOW_EMPTY_PASSWORD: 1
app:
image: "solidinvoice/solidinvoice:latest"
depends_on:
- db
ports:
- "8765:8765"
restart: always
volumes:
- app_data:/etc/solidinvoice
volumes:
db_data: {}
app_data: {}
Bring it up:
docker compose up -d
The example above uses an empty MySQL root password for simplicity. Set MYSQL_ROOT_PASSWORD and MYSQL_PASSWORD (and use MYSQL_USER) before running this in production.
Persisting dataโ
Mount a volume (or bind mount) at /etc/solidinvoice so application data survives container restarts and image upgrades:
docker run -d -p 8765:8765 -v solidinvoice_data:/etc/solidinvoice solidinvoice/solidinvoice
Image sourceโ
Pull from Docker Hub.
Recurring tasks and async work (email sending) run automatically inside the container โ no separate cron job or messenger consumer to set up.
Updateโ
docker pull solidinvoice/solidinvoice:latest
docker compose up -d # or `docker stop` + `docker run` again