https://github.com/adferrand/docker-backuppc
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.
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“.
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.
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.
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" ) )