Coder Social home page Coder Social logo

bareos's Introduction

bareos

License badge Based OS Based OS Badge amd64 Badge arm64

About

This package provides images for Bareos :

module build size ubuntu size alpine pull
Director Actions Status Size badge Size badge Docker badge
Storage Daemon Actions Status Size badge Size badge Docker badge
Client/File Daemon Actions Status Size badge Size badge Docker badge
webUI Actions Status Size badge Size badge Docker badge

Images are based on Ubuntu or Alpine, check tags below

๐Ÿ‘ Tested with Bareos 16.x.x to 21.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 (deprecated)
  • Ubuntu images for Bareos 18 and 19 are based on Bionic
  • Ubuntu images for Bareos 20 and 21 are based on Focal
  • Alpine images are available for linux/amd64 and linux/arm64/v8 platform
  • Images are built and deployed to [Docker hub][docker-hub] on Sunday at 4am

Tags

bareos-director (dir)

  • 21-ubuntu-pgsql, 21-ubuntu, 21, ubuntu, latest
  • 20-ubuntu-pgsql, 20-ubuntu, 20
  • 20-ubuntu-mysql
  • 20-alpine-pgsql, 20-alpine, alpine
  • 19-ubuntu-mysql, 19-ubuntu, 19
  • 19-ubuntu-pgsql
  • 19-alpine-mysql, 19-alpine
  • 19-alpine-pgsql
  • 18-ubuntu-mysql, 18-ubuntu, 18
  • 18-ubuntu-pgsql
  • 18-alpine-mysql, 18-alpine

โš ๏ธ Deprecated images

  • 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

  • 21-ubuntu, 21, ubuntu, latest
  • 20-ubuntu, 20
  • 20-alpine, alpine
  • 19-ubuntu, 19
  • 19-alpine
  • 18-ubuntu, 18
  • 18-alpine

โš ๏ธ Deprecated images

  • 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 dependencies.

Each component have to run in an single container and must linked together through docker-compose, see example below

Requirements

Usage

Declare environment variables or copy the .env.dist to .env and adjust its values.

Remember that all passwords should be defined inside this .env file.

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+ run-compose
alpine-v2/mysql v3.7+ v18.06.0+ run-compose
ubuntu/mysql v3+ v1.13.0+ run-compose
ubuntu/pgsql v3+ v1.13.0+ run-compose

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)

Finally, when your containers are up and running 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 director-pgsql based on ubuntu
    volumes:
      - <BAREOS_CONF_PATH>:/etc/bareos
      - <BAREOS_DATA_PATH>:/var/lib/bareos #required for MyCatalog backup
    environment:
      - DB_INIT=true
      - DB_UPDATE=true
      - DB_HOST=bareos-db
      - DB_PORT=3306
      - DB_NAME=bareos
      - DB_USER=bareos
      - DB_PASSWORD=${DB_PASSWORD} # defined in .env file
      - DB_ADMIN_USER=${DB_ADMIN_USER} # defined in .env file
      - DB_ADMIN_PASSWORD=${DB_ADMIN_PASSWORD} # defined in .env file
      - BAREOS_FD_HOST=bareos-fd
      - BAREOS_FD_PASSWORD=${BAREOS_FD_PASSWORD} # defined in .env file
      - BAREOS_SD_HOST=bareos-sd
      - BAREOS_SD_PASSWORD=${BAREOS_SD_PASSWORD} # defined in .env file
      - BAREOS_WEBUI_PASSWORD=${BAREOS_WEBUI_PASSWORD} # defined in .env file
      - 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=${BAREOS_SD_PASSWORD} # defined in .env file

  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=${BAREOS_FD_PASSWORD} # defined in .env file
      - 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=${DB_ADMIN_PASSWORD} # defined in .env file

  bareos-db:
    image: postgres:9.3
    volumes:
      - <DB_DATA_PATH>:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=${DB_ADMIN_USER} # defined in .env file
      - POSTGRES_PASSWORD=${DB_ADMIN_PASSWORD} # defined in .env file
      - POSTGRES_INITDB_ARGS=--encoding=SQL_ASCII

  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_NAME is the bareos database name
  • DB_USER is the bareos database user
  • DB_PASSWORD is the password use to access to the bareos database
  • DB_ADMIN_USER is the password use to initialize bareos user and database
  • DB_ADMIN_PASSWORD is the password use to access to database system
  • 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
  • MYSQL_ROOT_PASSWORD is the password for MySQL root user (required for DB init only)
  • POSTGRES_PASSWORD is the password for PostgreSQL root user (required for DB init only)

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-pqsl:20-alpine director-pgsql/20-alpine
docker build -t storage:20-alpine storage/20-alpine
docker build -t client:20-alpine client/20-alpine
docker build -t webui:20-alpine webui/20-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 !

bareos's People

Contributors

barcus avatar dark-vex avatar florentpoinsaut avatar ammarlakis avatar arogge avatar mcsim85 avatar piwi3910 avatar andrewmiskell avatar setiseta avatar rockyluke avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.