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"
)
)