andryyy 2020-12-07 07:38:11 +01:00
commit 3234550a5b
3 changed files with 99 additions and 29 deletions

View File

@ -9,12 +9,15 @@
"filters": "Filtre",
"login_as": "Conectează-te ca utilizator al cutiei poștale",
"prohibited": "Interzis de ACL",
"protocol_access": "Schimbați protocolul de acces",
"pushover": "Pushover",
"quarantine": "Acțiuni de carantină",
"quarantine_attachments": "Atașamente de carantină",
"quarantine_notification": "Notificări de carantină",
"quarantine_category": "Schimbați categoria notificărilor despre carantină",
"ratelimit": "Rata limită",
"recipient_maps": "Hărți recipient",
"smtp_ip_access": "Schimbați gazdele permise pentru SMTP",
"sogo_access": "Permiteți gestionarea accesului SOGo",
"sogo_profile_reset": "Resetează profilul SOGo",
"spam_alias": "Aliasuri temporare",
@ -22,7 +25,8 @@
"spam_score": "Scor spam",
"syncjobs": "Lucrări de sincronizare",
"tls_policy": "Politică TLS",
"unlimited_quota": "Cota nelimitată pentru cutiile poștale"
"unlimited_quota": "Cota nelimitată pentru cutiile poștale",
"domain_desc": "Schimbați descrierea domeniului"
},
"add": {
"activate_filter_warn": "Toate celelalte filtre vor fi dezactivate, când este bifată opțiunea activă.",
@ -135,6 +139,7 @@
"ban_list_info": "Vezi mai jos o listă de adrese IP interzise: <b>rețea (timp de interdicție rămas) - [acțiuni]</b>.<br />IP-urile în așteptare pentru a fi scoase din interdicție vor fi eliminate din lista de interdicții active în câteva secunde.<br />Etichetele roșii indică interzicerea activă permanentă prin punerea pe lista neagră.",
"change_logo": "Schimbă logo",
"configuration": "Configurație",
"convert_html_to_text": "Convertiți HTML în text simplu",
"credentials_transport_warning": "<b>Avertisment</b>: Adăugarea unei noi intrări hartă de transport va actualiza datele de acreditare pentru toate intrările cu o coloană nexthop corespunzătoare.",
"customer_id": "ID client",
"customize": "Personalizează",
@ -150,10 +155,12 @@
"dkim_key_unused": "Cheie neutilizată",
"dkim_key_valid": "Cheie validă",
"dkim_keys": "Chei ARC/DKIM",
"dkim_overwrite_key": "Suprascrieți cheia DKIM existentă",
"dkim_private_key": "Cheie privată",
"dkim_to": "Către",
"dkim_to_title": "Domeniul/ile țintă - va/vor fi suprascris/e",
"domain": "Domeniu",
"domain_admin": "Administrator de domeniu",
"domain_admins": "Administratori de domenii",
"domain_s": "Domeniu/i",
"duplicate": "Duplică",
@ -163,11 +170,13 @@
"excludes": "Exclude acești destinatari",
"f2b_ban_time": "Timp interdicție (s)",
"f2b_blacklist": "Rețele/gazde pe lista neagră",
"f2b_filter": "Filtre regex",
"f2b_list_info": "O gazdă sau o rețea pe lista neagră va depăși întotdeauna o entitate pe lista albă. Înregistrările din lista neagră sunt create la data încărcării containerului. Înregistrările din lista albă sunt citite de fiecare dată când se va aplica o interdicție.",
"f2b_max_attempts": "Număr maxim încercări",
"f2b_netban_ipv4": "Dimensiunea subrețelei IPv4 pentru a aplica interdicția (8-32)",
"f2b_netban_ipv6": "Dimensiunea subrețelei IPv6 pentru a aplica interdicția (8-128)",
"f2b_parameters": "Parametrii fail2ban",
"f2b_regex_info": "Jurnalele luate în considerare: SOGo, Postfix, Dovecot, PHP-FPM.",
"f2b_retry_window": "Reîncercați fereastra (ele) pentru max. încercări",
"f2b_whitelist": "Rețele/gazde pe lista albă",
"filter_table": "Tabel filtre",
@ -182,6 +191,7 @@
"hash_remove_info": "Eliminarea unui hash de limită a ratei (dacă există încă) îi va reseta complet contorul.<br>\n Fiecare hash este indicat de o culoare individuală.",
"help_text": "Suprascrie textul de ajutor de sub masca de conectare (HTML permis)",
"host": "Gazdă",
"html": "HTML",
"import": "Importă",
"import_private_key": "Importă cheia privată",
"in_use_by": "În utilizare de către",
@ -210,6 +220,7 @@
"oauth2_redirect_uri": "URI redirect",
"oauth2_renew_secret": "Generează nou secret client",
"oauth2_revoke_tokens": "Revocă toate jetoanele clientului",
"optional": "optional",
"password": "Parolă",
"password_repeat": "Parola de confirmare (repetă)",
"priority": "Prioritate",
@ -219,9 +230,11 @@
"quarantine_exclude_domains": "Exclude domeniile și domeniile-alias",
"quarantine_max_age": "Vechimea maximă în zile<br><small>Valoarea trebuie să fie egală sau mai mare de o zi.</small>",
"quarantine_max_size": "Dimensiunea maximă în MiB (elementele mai mari sunt eliminate):<br><small>0 <b>nu</b> indică nelimitat.</small>",
"quarantine_max_score": "Renunțați la notificare dacă scorul de spam al unui e-mail este mai mare decât această valoare: <br><small>Valori implicite la 9999.0</small>",
"quarantine_notification_html": "Șablon email de notificare:<br><small>Se lasă gol pentru a restabili șablonul implicit.</small>",
"quarantine_notification_sender": "Expeditor email de notificare",
"quarantine_notification_subject": "Subiect email de notificare",
"quarantine_redirect": "<b>Redirecționați toate notificările</b> către acest destinatar:<br><small>Lăsați gol pentru a dezactiva. <b>E-mail nesemnat, nebifat. Trebuie livrat numai intern.</b></small>",
"quarantine_release_format": "Formatul articolelor eliberate",
"quarantine_release_format_att": "Ca atașament",
"quarantine_release_format_raw": "Original nemodificat",
@ -324,6 +337,7 @@
"comment_too_long": "Comentariu prea lung, sunt permise maximum 160 de caractere",
"defquota_empty": "Cota implicită per cutie poștală nu trebuie să fie 0.",
"description_invalid": "Descrierea resursei pentru %s este invalidă",
"dkim_domain_or_sel_exists": "O cheie DKIM pentru \"%s\" există și nu va fi suprascrisă",
"dkim_domain_or_sel_invalid": "Domeniul sau selectorul DKIM invalid: %s",
"domain_cannot_match_hostname": "Domeniul nu se poate potrivi cu numele de gazdă",
"domain_exists": "Domeniul %s există deja",
@ -393,6 +407,7 @@
"redis_error": "Eroare Redis: %s",
"relayhost_invalid": "Intrarea hărții %s este invalidă",
"release_send_failed": "Mesajul nu a putut fi eliberat: %s",
"reset_f2b_regex": "Filtrul regex nu a putut fi resetat la timp, încercați din nou sau așteptați câteva secunde și reîncărcați pagina.",
"resource_invalid": "Numele de resurse %s este invalid",
"rl_timeframe": "Rata limită pentru intervalul de timp este incorectă",
"rspamd_ui_pw_length": "Parola Rspamd UI ar trebui să aibă cel puțin 6 caractere",
@ -408,12 +423,14 @@
"targetd_relay_domain": "Domeniul țintă %s este un domeniu releu",
"temp_error": "Eroare temporară",
"text_empty": "Textul nu trebuie să fie gol",
"tfa_token_invalid": "Jeton TFA invalid",
"tls_policy_map_dest_invalid": "Destinația politicii este invalidă",
"tls_policy_map_entry_exists": "O intrare a hărții politicii TLS \"%s\" există",
"tls_policy_map_parameter_invalid": "Parametrul politicii este invalid",
"totp_verification_failed": "Verificarea TOTP a eșuat",
"transport_dest_exists": "Destinația transportului \"%s\" există",
"u2f_verification_failed": "Verificarea U2F a eșuat: %s",
"fido2_verification_failed": "Verificarea FIDO2 a eșuat: %s",
"unknown": "A apărut o eroare necunoscută",
"unknown_tfa_method": "Metodă TFA necunoscută",
"unlimited_quota_acl": "Cota nelimitată interzisă de ACL",
@ -423,9 +440,11 @@
"yotp_verification_failed": "Verificarea Yubico OTP a eșuat: %s"
},
"debug": {
"chart_this_server": "Grafic (acest server)",
"containers_info": "Informaţii container",
"disk_usage": "Utilizare disc",
"external_logs": "Jurnale externe",
"history_all_servers": "Istoric (toate serverele)",
"in_memory_logs": "Jurnale din memorie",
"jvm_memory_solr": "Memorie utilizată de JVM",
"log_info": "<p><b>jurnalele din memorie</b> pentru mailcow sunt colectate în listele Redis și trimise la LOG_LINES (%d) în fiecare minut pentru a reduce ciocnirea.\n <br>Jurnalele din memorie nu sunt menite a fi persistente. Toate aplicațiile care înregistrează jurnale în memorie, înregistrează de asemenea jurnale în daemonul Docker și, prin urmare, în driverul de jurnale implicit.\n <br>Tipul de jurnal din memorie trebuie utilizat pentru depanarea problemelor minore cu containerele.</p>\n <p><b>Jurnalele externe</b> sunt colectate prin API-ul aplicației respective.</p>\n <p><b>Jurnalele statice</b> sunt, în majoritate, jurnale de activitate care nu sunt înregistrate în Docker, dar trebuie să fie persistente (cu excepția jurnalelor API).</p>",
@ -456,6 +475,9 @@
"active": "Activ",
"advanced_settings": "Setări avansate",
"alias": "Editează alias",
"allow_from_smtp": "Permiteți acestor adrese IP să utilizeze numai <b>SMTP</b>",
"allow_from_smtp_info": "Lăsați gol pentru a permite tuturor expeditorilor.<br>Adrese și rețele IPv4/IPv6.",
"allowed_protocols": "Protocoale permise",
"app_name": "Nume aplicație",
"app_passwd": "Parolă apicație",
"automap": "Încearcă maparea automată a folderelor (\"Obiecte trimise\", \"Trimise\" => \"Trimise\" etc.)",
@ -582,8 +604,10 @@
},
"login": {
"delayed": "Conectarea a fost întârziată cu %s secunde.",
"fido2_webauthn": "FIDO2/WebAuthn",
"login": "Autentificare",
"mobileconfig_info": "Autentificați-vă cu adresa de email pentru a descărca profilul de conexiune Apple.",
"other_logins": "Autentificare cu cheie",
"password": "Parolă",
"username": "Nume de utilizator"
},
@ -607,6 +631,9 @@
"alias_domain_alias_hint": "Aliasurile <b>nu</b> sunt aplicate automat pe domeniile alias. O adresă alias <code>aliasul-meu@domeniu</code> <b>nu</b> acoperă adresa <code>aliasul-meu@domeniu-alias</code> (unde \"domeniu-alias\" este un domeniu alias imaginar pentru \"domeniu\").<br>Vă rugăm să utilizați un filtru sită pentru a redirecționa poșta către o căsuță poștală externă (consultați zona \"Filtre\" sau utilizați SOGo -> Redirecționare).",
"alias_domain_backupmx": "Alias domeniu inactiv pentru domeniu releu",
"aliases": "Aliasuri",
"allow_from_smtp": "Permiteți acestor adrese IP să utilizeze numai <b>SMTP</b>",
"allow_from_smtp_info": "Lăsați gol pentru a permite tuturor expeditorilor.<br>Adrese și rețele IPv4/IPv6.",
"allowed_protocols": "Protocoale permise",
"backup_mx": "Backup MX",
"bcc": "BCC",
"bcc_destination": "Destinație BCC",
@ -656,6 +683,8 @@
"mailbox_defquota": "Cota implicită a căsuței poștale",
"mailbox_quota": "Dimensiunea maximă a unei cutii poștale",
"mailboxes": "Cutii poștale",
"mailbox_defaults": "Setări implicite",
"mailbox_defaults_info": "Definiți setările implicite pentru cutiile poștale noi.",
"mins_interval": "Interval (min)",
"msg_num": "Mesaj #",
"multiple_bookings": "Rezervări multiple",
@ -666,7 +695,11 @@
"owner": "Proprietar",
"private_comment": "Comentariu privat",
"public_comment": "Comentariu public",
"q_add_header": "Dosarul nedorit",
"q_all": "Toate categoriile",
"q_reject": "Respins",
"quarantine_notification": "Notificări de carantină",
"quarantine_category": "Categoria notificărilor despre carantină",
"quick_actions": "Acţiuni",
"recipient_map": "Hartă destinatar",
"recipient_map_info": "Hărțile destinatarilor sunt folosite pentru a înlocui adresa de destinație a unui mesaj înainte de a fi livrat.",
@ -688,6 +721,7 @@
"sieve_preset_5": "Răspuns automat (vacanță)",
"sieve_preset_6": "Respinge mail cu răspuns",
"sieve_preset_7": "Redirecționează și păstrează/aruncă",
"sieve_preset_8": "Renunțați la mesajul trimis la o adresă alias din care face parte expeditorul",
"sieve_preset_header": "Vedeți exemplul de presetări de mai jos. Pentru mai multe detalii accesați <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
"sogo_allow_admin_hint": "Conectările SOGo administrative sunt disponibile numai pentru căsuțele poștale cu un profil SOGo existent. Un utilizator trebuie să se fi fost conectat la SOGo cel puțin o dată.",
"sogo_visible": "Aliasul este vizibil în SOGo",
@ -731,12 +765,16 @@
"action": "Acţiune",
"atts": "Atașamente",
"check_hash": "Caută hash-ul fișierului @ VT",
"confirm": "Confirmați",
"confirm_delete": "Confirmă ștergerea acestui element.",
"danger": "Pericol",
"deliver_inbox": "Livrați în căsuța de e-mail",
"disabled_by_config": "Configurația actuală a sistemului dezactivează funcția de carantină.",
"download_eml": "Descarcă (.eml)",
"empty": "Nici un rezultat",
"high_danger": "Ridicat",
"info": "Informații",
"junk_folder": "Dosar nedorit",
"learn_spam_delete": "Învață ca spam și șterge",
"low_danger": "Pericol scăzut",
"medium_danger": "Pericol mediu",
@ -744,6 +782,7 @@
"notified": "Notificat",
"qhandler_success": "Solicitare trimisă cu succes la sistem. Acum poți închide fereastra.",
"qid": "Rspamd QID",
"qinfo": "Sistemul de carantină va salva e-mailurile respinse în baza de date (expeditorului <em>nu</em> i se va da impresia unui e-mail livrat), precum și e-mailul, care este livrat ca copie în dosarul Junk al unei cutii poștale.\r\n <br>\"Învățați ca spam și ștergeți\" va învăța un mesaj ca spam prin intermediul teoremei Bayesiene și, de asemenea, va calcula hash-uri fuzzy pentru a refuza mesajele similare în viitor.\r\n <br>Vă rugăm să rețineți că învățarea multiplă mesajele pot fi - în funcție de sistemul dvs. - consumatoare de timp. <br> Elementele din lista neagră sunt excluse din carantină.",
"qitem": "Pune în carantină elementul",
"quarantine": "Carantină",
"quick_actions": "Acţiuni",
@ -751,13 +790,21 @@
"received": "Primit",
"recipients": "Destinatari",
"refresh": "Reînnoiește",
"rejected": "Respins",
"release": "Eliberează",
"release_body": "Am atașat mesajul tău ca fișier eml la acest mesaj.",
"release_subject": "Element în carantină potențial dăunător %s",
"remove": "Elimină",
"rewrite_subject": "Rescrie subiectul",
"rspamd_result": "Rezultat Rspamd",
"sender": "Expeditor (SMTP)",
"sender_header": "Expeditor (antetul \"De la\")",
"type": "Tip",
"quick_release_link": "Deschide linkul de lansare rapidă",
"quick_delete_link": "Deschide linkul de ștergere rapidă",
"quick_info_link": "Deschide linkul de informații",
"show_item": "Afișează elementul",
"spam": "Spam",
"spam_score": "Scor",
"subj": "Subiect",
"table_size": "Mărime tabel",
@ -845,6 +892,7 @@
"upload_success": "Fișier încărcat cu succes",
"verified_totp_login": "Autentificarea TOTP verificată",
"verified_u2f_login": "Autentificarea U2F verificată",
"verified_fido2_login": "Conectare FIDO2 verificată",
"verified_yotp_login": "Autentificarea Yubico OTP verificată"
},
"tfa": {
@ -865,12 +913,27 @@
"set_tfa": "Setează metoda de autentificare cu doi factori",
"start_u2f_validation": "Începi validarea",
"tfa": "Autentificare cu doi factori",
"tfa_token_invalid": "Jeton TFA invalid",
"totp": "OTP pe bază de timp (Google Authenticator etc.)",
"u2f": "Autentificare U2F",
"waiting_usb_auth": "<i>În așteptarea dispozitivului USB...</i><br><br>Apasă acum butonul de pe dispozitivul tău USB U2F.",
"waiting_usb_register": "<i>În așteptarea dispozitivului USB...</i><br><br>Introdu parola ta mai sus și confirmă înregistrarea ta U2F atingând butonul de pe dispozitivul tău USB U2F.",
"yubi_otp": "Autentificare Yubico OTP"
},
"fido2": {
"set_fn": "Setați un nume prietenos",
"fn": "Nume prietenos",
"rename": "redenumiți",
"confirm": "Confirmați",
"register_status": "Starea înregistrării",
"known_ids": "ID-uri cunoscute",
"none": "Dezactivat",
"set_fido2": "Înregistrați dispozitivul FIDO2",
"start_fido2_validation": "Începeți validarea FIDO2",
"fido2_auth": "Conectați-vă cu FIDO2",
"fido2_success": "Dispozitivul a fost înregistrat cu succes",
"fido2_validation_failed": "Validarea a esuat"
},
"user": {
"action": "Acțiune",
"active": "Activ",
@ -942,8 +1005,13 @@
"pushover_title": "Titlu notificare",
"pushover_vars": "Când nu este definit niciun filtru pentru expeditor, toate mailurile vor fi luate în considerare. <br> Filtrele regex, precum și verificările exacte ale expeditorului pot fi definite individual și vor fi luate în considerare secvențial. Ele nu depind unul de celălalt. <br> Variabile utilizabile pentru text și titlu (vă rugăm să luați nota de politicile de protecție a datelor)",
"pushover_verify": "Verifică credențialele",
"q_add_header": "Dosarul nedorit",
"q_all": "Toate categoriile",
"q_reject": "Respins",
"quarantine_notification": "Notificări de carantină",
"quarantine_category": "Schimbați categoria notificărilor despre carantină",
"quarantine_notification_info": "Odată ce o notificare a fost trimisă, elementele vor fi marcate ca fiind \"notificate\" și nu vor fi trimise alte notificări pentru acest articol.",
"quarantine_category_info": "Categoria de notificări \"Respins\" include e-mailurile care au fost respinse, în timp ce \"Dosarul nedorit\" va notifica un utilizator despre mesajele care au fost introduse în dosarul nedorit.",
"remove": "Șterge",
"running": "Funcţionare",
"save": "Salvează modificările",

View File

@ -170,6 +170,8 @@ SOLR_PORT=127.0.0.1:18983
REDIS_PORT=127.0.0.1:7654
# Your timezone
# See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for a list of timezones
# Use the row named 'TZ database name' + pay attention for 'Notes' row
TZ=${MAILCOW_TZ}

View File

@ -85,33 +85,33 @@ function backup() {
case "$1" in
vmail|all)
docker run --name mailcow-backup --rm \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_vmail-vol-1):/vmail:ro \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_vmail-vol-1):/vmail:ro,z \
${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_vmail.tar.gz /vmail
;;&
crypt|all)
docker run --name mailcow-backup --rm \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_crypt-vol-1):/crypt:ro \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_crypt-vol-1):/crypt:ro,z \
${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_crypt.tar.gz /crypt
;;&
redis|all)
docker exec $(docker ps -qf name=redis-mailcow) redis-cli save
docker run --name mailcow-backup --rm \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_redis-vol-1):/redis:ro \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_redis-vol-1):/redis:ro,z \
${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_redis.tar.gz /redis
;;&
rspamd|all)
docker run --name mailcow-backup --rm \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_rspamd-vol-1):/rspamd:ro \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_rspamd-vol-1):/rspamd:ro,z \
${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_rspamd.tar.gz /rspamd
;;&
postfix|all)
docker run --name mailcow-backup --rm \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_postfix-vol-1):/postfix:ro \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_postfix-vol-1):/postfix:ro,z \
${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_postfix.tar.gz /postfix
;;&
mysql|all)
@ -124,9 +124,9 @@ function backup() {
echo "Using SQL image ${SQLIMAGE}, starting..."
docker run --name mailcow-backup --rm \
--network $(docker network ls -qf name=${CMPS_PRJ}_mailcow-network) \
-v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/:ro \
-v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/:ro,z \
--entrypoint= \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup \
-v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
${SQLIMAGE} /bin/sh -c "mariabackup --host mysql --user root --password ${DBROOT} --backup --rsync --target-dir=/backup_mariadb ; \
mariabackup --prepare --target-dir=/backup_mariadb ; \
chown -R 999:999 /backup_mariadb ; \
@ -158,8 +158,8 @@ function restore() {
vmail)
docker stop $(docker ps -qf name=dovecot-mailcow)
docker run -it --name mailcow-backup --rm \
-v ${RESTORE_LOCATION}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_vmail-vol-1):/vmail \
-v ${RESTORE_LOCATION}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_vmail-vol-1):/vmail:z \
${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_vmail.tar.gz
docker start $(docker ps -aqf name=dovecot-mailcow)
echo
@ -177,32 +177,32 @@ function restore() {
redis)
docker stop $(docker ps -qf name=redis-mailcow)
docker run -it --name mailcow-backup --rm \
-v ${RESTORE_LOCATION}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_redis-vol-1):/redis \
-v ${RESTORE_LOCATION}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_redis-vol-1):/redis:z \
${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_redis.tar.gz
docker start $(docker ps -aqf name=redis-mailcow)
;;
crypt)
docker stop $(docker ps -qf name=dovecot-mailcow)
docker run -it --name mailcow-backup --rm \
-v ${RESTORE_LOCATION}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_crypt-vol-1):/crypt \
-v ${RESTORE_LOCATION}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_crypt-vol-1):/crypt:z \
${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_crypt.tar.gz
docker start $(docker ps -aqf name=dovecot-mailcow)
;;
rspamd)
docker stop $(docker ps -qf name=rspamd-mailcow)
docker run -it --name mailcow-backup --rm \
-v ${RESTORE_LOCATION}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_rspamd-vol-1):/rspamd \
-v ${RESTORE_LOCATION}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_rspamd-vol-1):/rspamd:z \
${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_rspamd.tar.gz
docker start $(docker ps -aqf name=rspamd-mailcow)
;;
postfix)
docker stop $(docker ps -qf name=postfix-mailcow)
docker run -it --name mailcow-backup --rm \
-v ${RESTORE_LOCATION}:/backup \
-v $(docker volume ls -qf name=${CMPS_PRJ}_postfix-vol-1):/postfix \
-v ${RESTORE_LOCATION}:/backup:z \
-v $(docker volume ls -qf name=${CMPS_PRJ}_postfix-vol-1):/postfix:z \
${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_postfix.tar.gz
docker start $(docker ps -aqf name=postfix-mailcow)
;;
@ -230,17 +230,17 @@ function restore() {
#docker stop $(docker ps -qf name=mysql-mailcow)
if [[ -d "${RESTORE_LOCATION}/mysql" ]]; then
docker run --name mailcow-backup --rm \
-v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/:rw \
-v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/:rw,z \
--entrypoint= \
-v ${RESTORE_LOCATION}/mysql:/backup \
-v ${RESTORE_LOCATION}/mysql:/backup:z \
${SQLIMAGE} /bin/bash -c "shopt -s dotglob ; /bin/rm -rf /var/lib/mysql/* ; rsync -avh --usermap=root:mysql --groupmap=root:mysql /backup/ /var/lib/mysql/"
elif [[ -f "${RESTORE_LOCATION}/backup_mysql.gz" ]]; then
docker run \
-it --name mailcow-backup --rm \
-v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/ \
-v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/:z \
--entrypoint= \
-u mysql \
-v ${RESTORE_LOCATION}:/backup \
-v ${RESTORE_LOCATION}:/backup:z \
${SQLIMAGE} /bin/sh -c "mysqld --skip-grant-tables & \
until mysqladmin ping; do sleep 3; done && \
echo Restoring... && \
@ -248,9 +248,9 @@ function restore() {
mysql -uroot -e SHUTDOWN;"
elif [[ -f "${RESTORE_LOCATION}/backup_mariadb.tar.gz" ]]; then
docker run --name mailcow-backup --rm \
-v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/backup_mariadb/:rw \
-v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/backup_mariadb/:rw,z \
--entrypoint= \
-v ${RESTORE_LOCATION}:/backup \
-v ${RESTORE_LOCATION}:/backup:z \
${SQLIMAGE} /bin/bash -c "shopt -s dotglob ; \
/bin/rm -rf /backup_mariadb/* ; \
/bin/tar -Pxvzf /backup/backup_mariadb.tar.gz"