Container images for running Bareos components with Docker and Docker Compose.
Weekly image builds run from GitHub Actions. Ubuntu images are built for
linux/amd64 only. Alpine architecture coverage varies by Bareos version —
linux/amd64 is always available, linux/arm64/v8 is available for every
Alpine version, and linux/arm/v7 is available for Bareos 23 only:
| Bareos version | Alpine base | amd64 | arm64/v8 | arm/v7 |
|---|---|---|---|---|
| 25 | Alpine 3.24 | ✅ | ✅ | ❌ |
| 24 | Alpine 3.23 | ✅ | ✅ | ❌ |
| 23 | Alpine 3.21 | ✅ | ✅ | ✅ |
| 22 and older | — | ✅ | — | — |
amd64 and, for Bareos 23, arm/v7 install Bareos straight from Alpine's
official community repository. arm64/v8 for Bareos 23/24/25 (and arm/v7 for
Bareos 24/25, which Alpine's own repository does not publish at all) install a
package built by this repo's bareos-alpine-packages/ pipeline — Bareos 24
and 25 hit a real upstream bug on 32-bit ARM that rules out arm/v7 for those
two versions regardless of who builds the package; see
bareos-alpine-packages/README.md for details.
bareos-director:
| backend | tags |
|---|---|
| PostgreSQL | 25-ubuntu-pgsql, 25-ubuntu, 25, ubuntu |
| PostgreSQL | 24-ubuntu-pgsql, 24-ubuntu, 24 |
| PostgreSQL | 23-ubuntu-pgsql, 23-ubuntu, 23 |
| PostgreSQL | 25-alpine-pgsql, 25-alpine, alpine, latest |
| PostgreSQL | 24-alpine-pgsql, 24-alpine |
| PostgreSQL | 23-alpine-pgsql, 23-alpine |
| PostgreSQL | 21-ubuntu-pgsql, 21-ubuntu, 21 |
| PostgreSQL | 21-alpine-pgsql, 21-alpine |
| PostgreSQL | 20-ubuntu-pgsql, 20-ubuntu, 20 |
| PostgreSQL | 20-alpine-pgsql, 20-alpine |
| MySQL | 20-ubuntu-mysql, 20-alpine-mysql |
bareos-client, bareos-storage, and bareos-webui:
| base | tags |
|---|---|
| Ubuntu 24.04 | 25-ubuntu, 25, ubuntu |
| Ubuntu 24.04 | 24-ubuntu, 24 |
| Ubuntu 22.04 | 23-ubuntu, 23 |
| Alpine 3.24 | 25-alpine, alpine, latest |
| Alpine 3.23 | 24-alpine |
| Alpine 3.21 | 23-alpine |
| Ubuntu 20.04 | 21-ubuntu, 21, 20-ubuntu, 20 |
| Alpine | 21-alpine, 20-alpine |
bareos-api:
| tags |
|---|
25-alpine |
24-alpine, 24, alpine, latest |
23-alpine |
All api/N-alpine images are built from python:3.14-alpine and install the
bareos-restapi PyPI package pinned to that Bareos version; only the latest
version (currently 24) also gets the bare 24, alpine, and latest tags.
The api/21-alpine and api/22-alpine directories are present in the source
tree but not built or published: those bareos-restapi releases pull in a
pydantic version their model code can't parse (fails on import with
PydanticSchemaGenerationError), while 23+ import cleanly.
Bareos 22 has been dropped from active maintenance. The tags below remain published and pullable exactly as they are today, but will not be rebuilt, re-tagged, or patched for new CVEs. Use Bareos 23, 24, or 25 for actively maintained images.
| image | tags |
|---|---|
bareos-director | 22-ubuntu-pgsql, 22-ubuntu, 22, 22-alpine-pgsql, 22-alpine |
bareos-client | 22-ubuntu, 22, 22-alpine |
bareos-storage | 22-ubuntu, 22, 22-alpine |
bareos-webui | 22-ubuntu, 22, 22-alpine |
bareos-api | none — Bareos 22 was never built or published for bareos-api |
| Bareos version | Ubuntu image | Alpine image | API image | Notes |
|---|---|---|---|---|
| 25 | 25-ubuntu on Ubuntu 24.04 | 25-alpine on Alpine 3.24 | 25-alpine | Ubuntu from download.bareos.org/current/; Alpine amd64+arm64/v8 |
| 24 | 24-ubuntu on Ubuntu 24.04 | 24-alpine on Alpine 3.23 | 24-alpine (latest) | Ubuntu from GitHub package release; Alpine amd64+arm64/v8 |
| 23 | 23-ubuntu on Ubuntu 22.04 | 23-alpine on Alpine 3.21 | 23-alpine | Ubuntu from GitHub package release; Alpine amd64+arm64/v8+arm/v7 |
| 22 | 22-ubuntu on Ubuntu 22.04 | 22-alpine on Alpine 3.18 | — | Deprecated: existing tags remain published but frozen, no further rebuilds or CVE patches (see Deprecated Tags above); bareos-restapi 22.x fails to import (see bareos-api tags above) |
| 21 | 21-ubuntu | 21-alpine | — | Upstream versioned repo / Alpine package; bareos-restapi 21.x fails to import (see bareos-api tags above) |
| 20 | 20-ubuntu | 20-alpine | — | Last version with MySQL backend; bareos-restapi was never published for 20 |
Bareos removed the MySQL catalog backend in version 21. Use director-mysql/*
only for Bareos 20 or older and migrate existing MySQL catalogs to PostgreSQL
before upgrading past Bareos 20.
Bareos 23 removed the dbdriver directive from the catalog resource. If you
are upgrading from Bareos 22 or older, remove any dbdriver = "postgresql"
line from /etc/bareos/bareos-dir.d/catalog/MyCatalog.conf before starting
the Director. Leaving it in place causes a fatal config error:
bareos-dir: CONFIG ERROR at lib/parse_conf_state_machine.cc:161
Config error: Keyword "dbdriver" not permitted in this resource.
Existing deployments: docker-compose-alpine-pgsql.yml (the default docker-compose.yml
target) now pins Bareos 25 rather than 21. If you have an existing, volume-backed deployment
from that file still running Bareos 21, pulling the new images and restarting will not
auto-migrate your catalog config — the entrypoint's first-run sentinel file
(/etc/bareos/bareos-config.control) only unpacks the bundled default config on a genuinely
first run, so an existing /data/bareos/config/director volume keeps its Bareos 21 config as-is.
You must manually apply any config changes required for the Bareos 21 → 25 jump yourself
(including the dbdriver removal above, if not already done) before restarting the Director
against the new image.
download.bareos.org/current/ tracks the latest Bareos release and does not
provide pinned 23 or 24 Ubuntu repositories. This repo builds pinned .deb
packages from upstream Bareos release tags and publishes them as GitHub Release
assets.
The Ubuntu 23/24 Dockerfiles consume the package release
pkg/bareos-packages-v1:
| asset | used by |
|---|---|
bareos-23-jammy.tar.gz | 23-ubuntu component images |
bareos-24-noble.tar.gz | 24-ubuntu component images |
See bareos-packages/README.md for local package builds and release publishing details.
Bareos Director requires:
Bareos Web UI requires either its Ubuntu Apache image or, for Alpine stacks, the paired PHP-FPM service used by the compose file.
Bareos Client/File Daemon and Storage Daemon have no external service dependency beyond the Director connection.
Copy .env.dist to .env and change the passwords before production use:
cp .env.dist .env
Start the default stack:
docker compose up -d
Or choose a compose file explicitly:
docker compose -f docker-compose-alpine-pgsql.yml up -d
docker compose -f docker-compose-ubuntu-pgsql.yml up -d
Available compose files:
| file | backend | status |
|---|---|---|
| docker-compose-alpine-pgsql.yml | PostgreSQL | Alpine example stack |
| docker-compose-ubuntu-pgsql.yml | PostgreSQL | Ubuntu example stack |
| docker-compose-alpine-mysql.yml | MySQL | legacy, Bareos 20 or older, unsupported |
| docker-compose-alpine-mysql-v2.yml | MySQL | legacy, Bareos 20 or older, unsupported |
| docker-compose-ubuntu-mysql.yml | MySQL | legacy, Bareos 20 or older, unsupported |
The compose examples store data under /data/(bareos|mysql|pgsql).
The three Alpine compose files also run a php-fpm sidecar for the WebUI,
pinned to barcus/php-fpm-alpine. This repo doesn't build or publish that
image itself; darkvex/php-fpm-alpine (the name a prior repo rename briefly
pointed at) does not exist on Docker Hub, so barcus/php-fpm-alpine is the
last known-working upstream. It's an unpinned floating tag from a
third-party namespace this repo doesn't control — pin it to a digest if you
need a reproducible build.
Web UI:
http://your-docker-host:8080
Default user is admin; the password is BAREOS_WEBUI_PASSWORD.
Bareos console:
docker exec -it bareos-dir bconsole
On Bareos 24+ images, BAREOS_WEBUI_PASSWORD is also reused as the
Director's own local console password (what bconsole above authenticates
with) and its tray-monitor console — those bundled resources ship with an
empty password that Bareos now rejects at startup, and there's no separate
.env variable for them. Unlike the WebUI's console, which is
ACL-restricted (denies .sql, configure, create, delete, purge,
etc.), the Director's local console has no ACL — treat this password as a
full-privilege credential, not just a WebUI login.
REST API docs:
http://your-docker-host:8000/docs
Prometheus metrics:
http://your-docker-host:9625/metrics
Metrics are provided by bareos_exporter and should be scraped by Prometheus.
Bareos 21 and newer do not ship the MySQL catalog backend. To migrate an existing MySQL catalog, upgrade to Bareos 20 first, then use the database migration compose file to copy the catalog into PostgreSQL.
If the target PostgreSQL database is empty or does not exist, the migration
tool creates it. Keep .env available with the required database passwords.
Build a specific component/version:
docker build -t bareos-director:24-ubuntu director-pgsql/24-ubuntu
docker build -t bareos-storage:24-ubuntu storage/24-ubuntu
docker build -t bareos-client:24-ubuntu client/24-ubuntu
docker build -t bareos-webui:24-ubuntu webui/24-ubuntu
docker build -t bareos-api:24-alpine api/24-alpine
For Ubuntu 23/24 images, the package release assets must exist before the build can download them.
Content type
Image
Digest
sha256:068039a12…
Size
24.2 MB
Last updated
3 days ago
docker pull darkvex/bareos-storage