barcus / Bareos
Programming Languages
Projects that are alternatives of or similar to Bareos
bareos
About
This package provides images for Bareos :
module | build | size ubuntu | size alpine | pull |
---|---|---|---|---|
Director | ||||
Storage Daemon | ||||
Client/File Daemon | ||||
webUI |
Images are based on Ubuntu or Alpine, check tags below
👍 Tested with Bareos 16.x.x to 20.0.0
⚠️ MySQL/MariaDB backends deprecated since Bareos 19.0.0
⚠️ SQLite backend deprecated since Bareos 20.0.0
- Ubuntu images for Bareos 16 and 17 are based on Xenial
- Ubuntu images for Bareos 18 and 19 are based on Bionic
- Ubuntu images for Bareos 20 are based on Focal
- Alpine images are available for linux/amd64 and linux/arm64/v8 platform
Tags
bareos-director (dir)
20-ubuntu-mysql
-
20-ubuntu-pqsql
,20-ubuntu
,20
,ubuntu
,latest
-
19-ubuntu-mysql
,19-ubuntu
,19
19-ubuntu-pqsql
-
19-alpine-mysql
,19-alpine
,alpine
19-alpine-pgsql
-
18-ubuntu-mysql
,18-ubuntu
,18
18-ubuntu-pgsql
-
18-alpine-mysql
,18-alpine
-
17-ubuntu-mysql
,17-ubuntu
,17
17-ubuntu-pgsql
17-alpine
-
16-ubuntu-mysql
,16-ubuntu
,16
16-ubuntu-pgsql
bareos-client (fd) - bareos-storage (sd) - bareos-webui
-
20-ubuntu
,20
,ubuntu
,latest
-
19-ubuntu
,19
-
19-alpine
,alpine
-
18-ubuntu
,18
18-alpine
-
17-ubuntu
,17
17-alpine
-
16-ubuntu
,16
Security advice
The default passwords inside the configuration files are created when building the docker image. Hence for production either build the image yourself using the sources from Github.
⭕️ Do not use this container for anything else, as passwords get expose to the Bareos containers.
Setup
Bareos Director requires :
- PostgreSQL or MySQL as a catalog backend (MySQL deprecated since Bareos 19.0.0)
- SMTP Daemon as mail router (for reporting)
Bareos Webui requires (Alpine images only) :
- PHP-FPM
Bareos Client (fd) and Storage (sd) have no depencies.
Each component have to run in an single container and must linked together through docker-compose, see exemple below
Requirements
Usage
docker-compose -f /path/to/your/docker-compose.yml up -d
docker-compose files are available for Alpine and Ubuntu based stack:
file | compose | docker | latest build |
---|---|---|---|
alpine-v1/mysql | v3+ | v1.13.0+ | |
alpine-v2/mysql | v3.7+ | v18.06.0+ | |
ubuntu/mysql | v3+ | v1.13.0+ | |
ubuntu/pgsql | v3+ | v1.13.0+ |
Remember to change your mail address in ADMIN_MAIL
and maybe some passwords 😁
📁 Those docker-compose file are configured to store data inside
/data/(bareos|mysql|pgsql)
Finaly, when your containers are up and runing access Bareos through
- WebUI :
Open http://your-docker-host:8080
(user: admin / pass: <BAREOS_WEBUI_PASSWORD>
)
- bconsole :
Run docker exec -it bareos-dir bconsole
Build
Docker-compose file
Build your own docker-compose file with this template :
version: '3'
services:
bareos-dir:
image: barcus/bareos-director:latest #latest dicector+mysql based on ubuntu
volumes:
- <BAREOS_CONF_PATH>:/etc/bareos
- <BAREOS_DATA_PATH>:/var/lib/bareos #required for MyCatalog backup
environment:
- DB_PASSWORD=ThisIsMySecretDBp4ssw0rd
- DB_HOST=bareos-db
- DB_PORT=3306
- BAREOS_FD_HOST=bareos-fd
- BAREOS_SD_HOST=bareos-sd
- BAREOS_FD_PASSWORD=ThisIsMySecretFDp4ssw0rd
- BAREOS_SD_PASSWORD=ThisIsMySecretSDp4ssw0rd
- BAREOS_WEBUI_PASSWORD=ThisIsMySecretUIp4ssw0rd
- SMTP_HOST=smtpd
- [email protected] #optional
- [email protected] # Change me!
# Optional you can get backup notification via Slack or Telegram
- WEBHOOK_NOTIFICATION=true # true or false if set to true email notification gets disabled
- WEBHOOK_TYPE=slack # choose slack or telegram
- WEBHOOK_URL= # set the slack or telegram URL
- WEBHOOK_CHAT_ID= # for telegram only set the <chat_id>
depends_on:
- bareos-db
bareos-sd:
image: barcus/bareos-storage:latest
ports:
- 9103:9103
volumes:
- <BAREOS_CONF_PATH>:/etc/bareos
- <BAREOS_BKP_VOLUME_PATH>:/var/lib/bareos/storage
environment:
- BAREOS_SD_PASSWORD=ThisIsMySecretSDp4ssw0rd
bareos-fd:
image: barcus/bareos-client:latest
volumes:
- <BAREOS_CONF_PATH>:/etc/bareos
- <BAREOS_DATA_PATH>:/var/lib/bareos-director #required for MyCatalog backup
environment:
- BAREOS_FD_PASSWORD=ThisIsMySecretFDp4ssw0rd
- FORCE_ROOT=false
bareos-webui:
image: barcus/bareos-webui:latest
ports:
- 8080:80
environment:
- BAREOS_DIR_HOST=bareos-dir
- SERVER_STATS=yes #optional enable apache server statistics
volumes:
- <BAREOS_CONF_PATH>:/etc/bareos-webui
bareos-db:
image: mysql:5.6
volumes:
- <DB_DATA_PATH>:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=ThisIsMySecretDBp4ssw0rd
#bareos-db:
# image: postgres:9.3
# volumes:
# - <DB_DATA_PATH>:/var/lib/postgresql/data
# environment:
# - POSTGRES_PASSWORD=ThisIsMySecretDBp4ssw0rd
smtpd:
image: namshi/smtp
Bareos Director (bareos-dir)
-
<BAREOS_CONF_PATH>
is the path to share your Director config folder from the host side (optional/recommended) -
<BAREOS_DATA_PATH>
is the path to share your Director data folder from the host side (recommended) - DB_PASSWORD must be same as Bareos Database section
- SMTP_HOST is the name of smtp container
- ADMIN_MAIL is your email address
- SENDER_MAIL is the email address you want to use for send the email (optional, default ADMIN_MAIL value)
- WEBHOOK_NOTIFICATION=true # true or false if set to true email notification gets disabled
- WEBHOOK_TYPE=slack # choose slack or telegram
- WEBHOOK_URL= # set the slack or telegram URL (ex slack: https://hooks.slack.com/services/TXXXXXXXXXX/XXXXXXXXXXX/Cbzi0lUVjKsjiM6kjZL2eQAW)
- WEBHOOK_CHAT_ID= # for telegram only set the 'chat_id'
Bareos Storage Daemon (bareos-sd)
-
<BAREOS_CONF_PATH>
is the path to share your Storage config folder from the host side (optional/recommended) -
<BAREOS_BKP_VOLUME_PATH>
is the path to share your data folder from the host side. (optional) - BAREOS_SD_PASSWORD must be same as Bareos Director section
Bareos Client/File Daemon (bareos-fd)
-
<BAREOS_CONF_PATH>
is the path to share your Client config folder from the host side (optional/recommended) -
<BAREOS_DATA_PATH>
is the path to access Director data folder (recommended) - BAREOS_FD_PASSWORD must be same as Bareos Director section
- FORCE_ROOT must be true to run Bareos with root permissions
Database MySQL or PostgreSQL (bareos-db)
Required as catalog backend, simply use the official MySQL/PostgreSQL image
-
<DB_DATA_PATH>
is the path to share your MySQL/PostgreSQL data from the host side
Bareos webUI (bareos-webui)
-
<BAREOS_CONF_PATH>
is the path to share your WebUI config folder from the host side. (optional) - default user is
admin
⚠️ Remember variables *_HOST
must be set with container name
Your own Docker images
Build your own Bareos images :
git clone https://github.com/barcus/bareos
cd bareos
docker build -t director-mysql:18-alpine director-mysql/18-alpine
docker build -t storage:18-alpine storage/18-alpine
docker build -t client:18-alpine client/18-alpine
docker build -t webui:18-alpine webui/18-alpine
Build your own Xenial base system image :
git clone https://github.com/rockyluke/docker-ubuntu
cd docker-ubuntu
./build.sh -d xenial
Thanks to @rockyluke :)
Links
For more information visit the Github repositories :
My Docker hub :
Enjoy !