playground:backuppc

https://github.com/adferrand/docker-backuppc

  1. Vytvořte nový adresář pro vaši konfiguraci BackupPC a přejděte do tohoto adresáře.
  2. Vytvořte soubor s názvem docker-compose.yml a otevřete ho v textovém editoru.
  3. Do souboru docker-compose.yml vložte následující obsah:
version: '3'
services:
  backuppc4:
    build: .
    image: adferrand/backuppc:latest
    ports:
      - 85:8080
    hostname: subdomain.example.org
    volumes:
      - /backups/$subdomain/etc/backuppc:/etc/backuppc
      - /backups/$subdomain/etc/lighttpd:/etc/lighttpd
      - /backups/$subdomain/home:/home/backuppc
      - /backups/$subdomain/var/www/html/BackupPC:/var/www/html/BackupPC
      - /backups/$subdomain/data:/data/backuppc
      - /etc/localtime:/etc/localtime:ro
    environment:
      BACKUPPC_UUID: 65000
      BACKUPPC_GUID: 65000

Uložte a zavřete soubor docker-compose.yml.

Vytvořte dvě prázdné složky v adresáři konfigurace BackupPC s názvy data a config. Tyto složky budou použity jako svazky (volumes) pro ukládání dat a konfigurací BackupPC.

Přejděte do adresáře souboru docker-compose.yml v příkazovém řádku.

Spusťte následující příkaz pro spuštění kontejneru BackupPC:

docker-compose up -d

Po spuštění můžete přistoupit k rozhraní BackupPC pomocí webového prohlížeče na adrese http://localhost. Přihlašte se pomocí výchozích přihlašovacích údajů (uživatel: backuppc, heslo: backuppc). Tímto jste úspěšně nasadili BackupPC pomocí Docker Compose. Můžete upravit konfiguraci a provádět další nastavení dle vašich potřeb.


Nastaveni data retention

Pokud chcete protahnout data retention a drzet zalohy az rok zpet, upravte nasledujici hodnoty.

Vice adminu

Pokud chcete vice adminu, lze to udelat upravou hlavniho konfiguracniho soubor config.pl, kde je nasledujici volba.

$Conf{CgiAdminUsers} = 'backuppc pepicek';

V nasem pripade jsme k vychozimu admin uctu „backuppc“ pridali jeste dalsi admin ucet „pepicek“.

Nastaveni emailu v kontejneru

Nize je ukazka konfigurace emailu v kontejnerech pres msmtp. Nastaveni by melo byt ulozeni v ceste „/home/.msmtprc“ v danem kontejneru. Za promenou $HOST je treba zadat privatni adresu co pouziva vas podman nebo docker.

account default
logfile /var/log/msmtp.log
host $HOST

Na otestovani mailu muzete pouzit „BackupPC_sendEmail“

/usr/share/BackupPC/bin/BackupPC_sendEmail -u makac1@cesnet.cz

Pozor, ze na nekterych systemech muze byt „BackupPC_sendEmail“ na jine ceste, treba /usr/local/BackupPC/bin/BackupPC_sendEmail.

Exclude seznamy

Pokud chceme neco z nastavene Share nezalohovat, treba cache nebo snapshoty, musime v „Include/Exclude“ sekci zadat nazev Share, ktereho se to tyka a pak v nem zvolit co chceme v ramci neco nezalohovat. Nize je ukazka pro share „/home“, kde bereme vse krome uzivatelskeho domovskeho adresare „/home/testovaci_ucet“. Dale je zde ukazano pravidlo zakazujici zalohu adresare .snapshots vyskystujici se v libovolnem share.

Ukazkove nastaveni lighhttp vyuzivajici LDAP
server.port             = 8080
server.username         = env.BACKUPPC_USERNAME
server.groupname        = env.BACKUPPC_GROUPNAME
server.document-root    = "/srv/http"
server.errorlog         = "/var/log/lighttpd/error.log"
dir-listing.activate    = "enable"
index-file.names        = ( "index.html", "index.php", "index.cgi" )
mimetype.assign         = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png", ".gif" => "image/gif", ".css" => "text/css", ".js" => "text/javascript", "" => "application/octet-stream" )

server.modules = ( "mod_alias", "mod_cgi", "mod_auth", "mod_access", "mod_rewrite", "mod_redirect" )

alias.url               = ( "/BackupPC_Admin" => "/var/www/cgi-bin/BackupPC/BackupPC_Admin" )
alias.url               += ( "/BackupPC" => "/var/www/html/BackupPC" )

cgi.assign              += ( ".cgi" => "/usr/bin/perl" )
cgi.assign              += ( "BackupPC_Admin" => "/usr/bin/perl" )

server.modules += ( "mod_authn_ldap" )
auth.backend = "ldap"
auth.backend.ldap.hostname = "$HOSTNAME"
auth.backend.ldap.starttls  = "enable"
auth.backend.ldap.base-dn = "ou=$OU,dc=$DC,dc=$DC"
#auth.backend.ldap.filter = "(uid=$)" 
auth.backend.ldap.filter = "(&(objectClass=posixAccount)(uid=$))" 
auth.backend.ldap.bind-dn = "cn=$CN,dc=$DN,dc=$ORG"
auth.backend.ldap.bind-pw = "$PASSWORD"

auth.require = ( "/" =>
   (
      "method" => "basic",
      "realm" => "You are currently not logged in! Enter your XYZ authentication credentials below to log in.",
      "require" => "valid-user"
   )
)
Poslední úprava:: 24.10.2023 18:51