diff --git a/data/Dockerfiles/watchdog/watchdog.sh b/data/Dockerfiles/watchdog/watchdog.sh
index d4de6d8db..7f125f76d 100755
--- a/data/Dockerfiles/watchdog/watchdog.sh
+++ b/data/Dockerfiles/watchdog/watchdog.sh
@@ -169,9 +169,13 @@ function notify_error() {
return 1
fi
+ # Escape subject and body (https://stackoverflow.com/a/2705678)
+ ESCAPED_SUBJECT=$(echo ${SUBJECT} | sed -e 's/[\/&]/\\&/g')
+ ESCAPED_BODY=$(echo ${BODY} | sed -e 's/[\/&]/\\&/g')
+
# Replace subject and body placeholders
- WEBHOOK_BODY=$(echo ${WATCHDOG_NOTIFY_WEBHOOK_BODY} | sed "s/\$SUBJECT\|\${SUBJECT}/$SUBJECT/g" | sed "s/\$BODY\|\${BODY}/$BODY/g")
-
+ WEBHOOK_BODY=$(echo ${WATCHDOG_NOTIFY_WEBHOOK_BODY} | sed -e "s/\$SUBJECT\|\${SUBJECT}/$ESCAPED_SUBJECT/g" -e "s/\$BODY\|\${BODY}/$ESCAPED_BODY/g")
+
# POST to webhook
curl -X POST -H "Content-Type: application/json" ${CURL_VERBOSE} -d "${WEBHOOK_BODY}" ${WATCHDOG_NOTIFY_WEBHOOK}
diff --git a/data/web/lang/lang.si-si.json b/data/web/lang/lang.si-si.json
index 3a424631d..e9468e0cb 100644
--- a/data/web/lang/lang.si-si.json
+++ b/data/web/lang/lang.si-si.json
@@ -107,7 +107,8 @@
"post_domain_add": "SOGo container \"sogo-mailcow\" mora biti ponovno zagnan po dodajanju nove domene!
Dodatno se mora preveriti DNS konfiguracija domene. Ko je DNS konfiguracija domene odobrena, ponovno zaženite \"acme-mailcow\" za samodejno generiranje certifikatov za novo domeno (autoconfig.<domain>, autodiscover.<domain>).
Ta korak je opcijski in se ponovno poskuša vsakih 24 ur.",
"relay_transport_info": "
Info
Definirate lahko preslikave transportov za cilj po meri za to domeno. Če ni nastavljena, se ustvari MX poizvedba.",
"syncjob_hint": "Pozor! Gesla se morajo shraniti v plain-text!",
- "timeout2": "Časovna omejitev za povezavo do lokalnega gostitelja"
+ "timeout2": "Časovna omejitev za povezavo do lokalnega gostitelja",
+ "dry": "Simuliraj sinhronizacijo"
},
"admin": {
"access": "Dostop",
@@ -347,7 +348,10 @@
"logo_dark_label": "Za temni način",
"cors_settings": "Nastavitve CORS",
"allowed_methods": "Dovoljene metode za upravljanje dostopa",
- "allowed_origins": "Upravljanje-dostopa-Dovoljeni-Viri"
+ "allowed_origins": "Upravljanje-dostopa-Dovoljeni-Viri",
+ "copy_to_clipboard": "Besedilo kopirano v odložišče!",
+ "f2b_manage_external": "Zunanje upravljanje Fail2Ban",
+ "f2b_manage_external_info": "Fail2ban bo še vedno vzdrževal seznam prepovedi, vendar ne bo aktivno nastavil pravil za blokiranje prometa. Uporabite spodnji ustvarjeni seznam prepovedi za zunanje blokiranje prometa."
},
"danger": {
"alias_goto_identical": "Alias in goto naslov morata biti identična",
@@ -476,7 +480,9 @@
"temp_error": "Začasna napaka",
"cors_invalid_method": "Navedena neveljavna Allow metoda",
"cors_invalid_origin": "Naveden neveljaven Allow-Origin",
- "invalid_recipient_map_new": "Naveden neveljaven nov prejemnik: %s"
+ "invalid_recipient_map_new": "Naveden neveljaven nov prejemnik: %s",
+ "img_dimensions_exceeded": "Slika presega največje dovoljene dimenzije",
+ "img_size_exceeded": "Slika presega največjo dovoljeno velikost datoteke"
},
"debug": {
"containers_info": "Informacije o vsebniku (containerju)",
@@ -511,7 +517,13 @@
"no_update_available": "Sistem je na najnovejši verziji",
"update_failed": "Ni mogoče preveriti za posodobitve",
"username": "Uporabniško ime",
- "wip": "Trenutno v delu"
+ "wip": "Trenutno v delu",
+ "log_info": "mailcow in-memory dnevniki se zbirajo v Redis seznamih in se vsako minuto omejijo na LOG_LINES (%d) da se zmanjša obremenitev.\n
In-memory dnevniki niso namenjeni trajnemu shranjevanju. Vse aplikacije, ki beležijo dnevnike in-memory, tudi beležijo v Docker daemon in posledično v privzeti gonilnik za dnevnik.\n
In-memory dnevniki se naj uporabljajo za odpravljanje manjših napak s containerji.
\n Eksterni dnevniki se zbirajo preko API-ja posamezne aplikacije.
\n Statični dnevniki so večinoma dnevniki aktivnosti, ki se ne beležijo v Dockerd, a jih je vseeno treba hraniti (razen API dnevnikov).
",
+ "login_time": "Čas",
+ "logs": "Dnevniki",
+ "memory": "Spomin",
+ "online_users": "Prijavljeni uporabniki",
+ "restart_container": "Ponovno zaženi"
},
"datatables": {
"infoFiltered": "(filtrirano od _MAX_ skupaj zapisov)",
@@ -551,6 +563,98 @@
},
"edit": {
"acl": "ACL (Dovoljenje)",
- "active": "Aktivno"
+ "active": "Aktivno",
+ "allow_from_smtp": "Dovoli samo tem IP naslovom da uporabijo SMTP",
+ "bcc_dest_format": "Cilj BCC mora biti en veljaven email naslov.
Če morate poslati kopijo na več naslovov, ustvarite alias in ga uporabite tukaj.",
+ "automap": "Poskušaj samodejno preslikati mape (\"Sent items\", \"Sent\" => \"Poslano\" ipd.)",
+ "admin": "Uredi skrbnika",
+ "domain_footer_info_vars": {
+ "custom": "{= foo =} - Če ima poštni predal atribut po meri \"foo\" z vrednostjo \"bar\", spremenljivka vrne \"bar\"",
+ "auth_user": "{= auth_user =} - Prijavljeno uporabniško ime, ki ga določi MTA",
+ "from_user": "{= from_user =} - leva stran email naslova uporabnika, npr. za \"moo@mailcow.tld\" vrne \"moo\"",
+ "from_name": "{= from_name =} - Prikazno ime, npr. za \"Mailcow <moo@mailcow.tld>\" vrne \"Mailcow\"",
+ "from_addr": "{= from_addr =} - e-poštni naslov \"Od\"",
+ "from_domain": "{= from_domain =} - domena e-poštnega naslova \"Od\""
+ },
+ "dont_check_sender_acl": "Onemogoči kontrolo pošiljatelja za domeno %s (+ alias domene)",
+ "pushover_title": "Naslov obvestila",
+ "domains": "Domene",
+ "extended_sender_acl_info": "Če je DKIM domenski ključ na voljo, ga uvozite.
\n Ne pozabite dodati ta strežnik k ustreznemu SPF TXT zapisu.
\n Kadar koli je domena ali alias domena dodana k tem strežniku, ki se prekriva z zunanjim naslovom, je zunanji naslov odstranjen.
\n uporabite @domain.tld da dovolite pošiljanje kot *@domain.tld.",
+ "lookup_mx": "Cilj je regular expression za ujemanje MX zapisov (.*\\.google\\.com za usmeritev vse pošte na MX, ki se konča z google.com, preko tega skoka)",
+ "maxbytespersecond": "Največ bytov na sekundo
(0 = neomejeno)",
+ "pushover_sender_array": "Upoštevaj samo sledeče e-poštne naslove pošiljateljev (ločeni z vejico)",
+ "mbox_rl_info": "Ta omejitev velja za SASL uporabniško ime, preverja se ujemanje s katerim koli \"from\" naslovom, ki ga uporablja prijavljeni uporabnik. Omejitev pošiljanja za poštni predal preglasi pravilo omejitve za domeno.",
+ "kind": "Tip",
+ "client_secret": "Client secret",
+ "comment_info": "Zasebni komentar ni viden uporabniku, javni komentar pa je viden kot tooltip v uporabnikovem pregledu.",
+ "created_on": "Ustvarjeno",
+ "custom_attributes": "Atributi po meri",
+ "delete1": "Izbriši na viru, ko je končano",
+ "delete2": "Izbriši sporočila na cilju, ki ne obstajajo na viru",
+ "delete2duplicates": "Izbriši dvojnike na cilju",
+ "delete_ays": "Prosim potrdite proces izbrisa.",
+ "description": "Opis",
+ "disable_login": "Onemogoči prijavo (dohodna pošta je še vedno sprejeta)",
+ "domain": "Uredi domeno",
+ "domain_admin": "Uredi domenskega skrbnika",
+ "domain_footer": "Noga za celo domeno",
+ "domain_footer_html": "HTML noga",
+ "pushover_vars": "Če ni definiran noben filter pošiljatelja, bodo upoštevana vsa sporočila.
Regex filtre in natančna preverjanja pošiljateljev je mogoče definirati posamezno in bodo obravnavani v nadaljevanju. Niso odvisni drug od drugega.
Uporabne spremenljivke za besedilo in naslov (prosimo, upoštevajte politike varstva podatkov)",
+ "pushover_verify": "Preveri poverilnice",
+ "quota_mb": "Omejitev (MiB)",
+ "quota_warning_bcc": "BCC za sporočilo z opozorilom omejitve",
+ "quota_warning_bcc_info": "Opozorila bodo poslana kot ločene kopije sledečim prejemnikom. K naslovu sporočila bo dodano uporabniško ime v oklepajih, npr. Opozorilo omejitve (user@example.com)",
+ "ratelimit": "Omejitev pošiljanja",
+ "advanced_settings": "Napredne nastavitve",
+ "allow_from_smtp_info": "Pustite prazno da dovolite vse pošiljatelje.
IPv4/IPv6 naslovi in omrežja.",
+ "allowed_protocols": "Dovoljeni protokoli",
+ "app_name": "Ime aplikacije",
+ "app_passwd": "Geslo aplikacije",
+ "app_passwd_protocols": "Dovoljeni protokoli za geslo aplikacije",
+ "backup_mx_options": "Možnosti posredovanja (relay)",
+ "client_id": "Client ID",
+ "domain_footer_info": "Noge za celo domeno so dodane k vsem izhodnim e-poštnim sporočilom v tej domeni.
V nogi se lahko uporabijo sledeče spremenljivke:",
+ "domain_footer_plain": "PLAIN noga",
+ "domain_footer_skip_replies": "Ne dodajaj noge v odgovorih na e-poštna sporočila",
+ "domain_quota": "Omejitev (kvota) domene",
+ "edit_alias_domain": "Uredi alias domeno",
+ "exclude": "Izključi objekte (regex)",
+ "extended_sender_acl": "Naslovi zunanjih pošiljateljev",
+ "force_pw_update": "Obvezna zamenjava gesla ob naslednji prijavi",
+ "force_pw_update_info": "Ta uporabnik se bo lahko prijavil samo v %s. Gesla aplikacij ostajajo v rabi.",
+ "footer_exclude": "Izključi iz noge",
+ "full_name": "Polno ime",
+ "gal": "Globalni seznam naslovov (GAL)",
+ "gal_info": "GAL vsebuje vse objekte v domeni in jih uporabniki ne morejo urejati. Če je onemogočeno, ni podatkov o o zasedenosti objekta! Ponovno zaženite SOGo za uveljavitev sprememb.",
+ "generate": "generiraj",
+ "grant_types": "Vrste dovoljenj",
+ "hostname": "Ime gostitelja",
+ "inactive": "Neaktivno",
+ "last_modified": "Nazadnje spremenjeno",
+ "mailbox": "Uredi poštni predal",
+ "mailbox_quota_def": "Privzeta omejitev/kvota za poštni predal",
+ "mailbox_relayhost_info": "Velja samo za poštni predal in neposredne aliase. Ne prepiše domenskega relay gostitelja.",
+ "max_aliases": "Največ aliasov",
+ "max_mailboxes": "Največ možnih poštnih predalov",
+ "max_quota": "Največja omejitev/kvota na poštni predal (MiB)",
+ "maxage": "Največja starost sporočil (v dnevih), po katerih bo poizvedeno iz oddaljenega vira
(0 = ne omejuj)",
+ "mins_interval": "Interval (min)",
+ "multiple_bookings": "Več rezervacij",
+ "none_inherit": "Brez / podeduj",
+ "nexthop": "Naslednji skok",
+ "password": "Geslo",
+ "password_repeat": "Potrditev gesla (ponovite)",
+ "previous": "Prejšnja stran",
+ "private_comment": "Zasebni komentar",
+ "public_comment": "Javni komentar",
+ "pushover": "Pushover",
+ "pushover_evaluate_x_prio": "Eskaliraj visoko prednostno pošto [X-Priority: 1]",
+ "pushover_info": "Nastavitve potisnih obvestil bodo veljala za vsa čisto (ne spam) elektronsko pošto dostavljeno v %s vključno z aliasi (deljeni, nedeljeni, označeni)",
+ "pushover_only_x_prio": "Upoštevaj samo pošto z visoko prioriteto [X-Priority: 1]",
+ "pushover_sender_regex": "Upoštevaj sledeči regex za pošiljatelja",
+ "pushover_text": "Besedilo obvestila",
+ "pushover_sound": "Zvok",
+ "encryption": "Šifriranje",
+ "alias": "Uredi alias"
}
}
diff --git a/docker-compose.yml b/docker-compose.yml
index 783613c28..a96bdc157 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -481,7 +481,7 @@ services:
- /lib/modules:/lib/modules:ro
watchdog-mailcow:
- image: mailcow/watchdog:2.03
+ image: mailcow/watchdog:2.04
dns:
- ${IPV4_NETWORK:-172.22.1}.254
tmpfs:
@@ -613,9 +613,10 @@ services:
ofelia-mailcow:
image: mcuadros/ofelia:latest
restart: always
- command: daemon --docker
+ command: daemon --docker -f label=com.docker.compose.project=${COMPOSE_PROJECT_NAME}
environment:
- TZ=${TZ}
+ - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}
depends_on:
- sogo-mailcow
- dovecot-mailcow