Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

luci-app-acme: improve UI for inexperienced users #7147

Draft
wants to merge 25 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
4007313
luci-app-acme: dns_wait option
stokito Jun 1, 2024
28ec2b4
luci-app-acme: Move link out of translations
stokito Jun 1, 2024
96495b6
luci-app-acme: introduction: remove LetsEncrypt mention
stokito Jun 1, 2024
b0d2426
luci-app-acme: introduction: clarify that ZeroSSL is by default
stokito Jun 1, 2024
abc07d5
luci-app-acme: acme_server: remove Let's Encrypt from title
stokito Jun 1, 2024
6249c07
luci-app-acme: acme_server: add "See more" link
stokito Jun 1, 2024
7706c6d
luci-app-acme: introduction: add link to OpenWrt Wiki
stokito Jun 1, 2024
76ca13f
luci-app-acme: put validation_method above domains
stokito Jun 1, 2024
99aea87
luci-app-acme: Validate domains
stokito Jun 1, 2024
30f8b1b
luci-app-acme: show button "Install package acme-acmesh-dnsapi" if DN…
stokito Jun 1, 2024
1e8a228
luci-app-acme: Guess the system domain and pre-fill it to domains.
stokito Jun 1, 2024
8e86389
luci-app-acme: Import domains from DDNS
stokito Jun 1, 2024
8ed4768
luci-app-acme: Add Log reader
stokito Jun 1, 2024
30e8b84
luci-app-acme: Set default validation_method to standalone
stokito Jun 2, 2024
86458bb
luci-app-acme: LetsEncrypt is default
stokito Jun 3, 2024
94f551e
luci-app-acme: code style: Use <br />
stokito Jun 3, 2024
dc3c47d
luci-app-acme: ACL for /proc/sys/kernel/hostname
stokito Jun 3, 2024
ef59e3c
luci-app-acme: domains validate
stokito Jun 3, 2024
35f4d1e
luci-app-acme: staging: show the flag only for letsencrypt
stokito Jun 3, 2024
c11d803
luci-app-acme: fix typo
stokito Jun 4, 2024
3ff1564
luci-app-acme: fix _isFqdn() to not allow raw IPv4
stokito Jun 4, 2024
6b4530d
luci-app-acme: remove the ZeroSSL mention
stokito Jun 4, 2024
c5a7289
luci-app-acme: DDNS import: check for duplicates
stokito Jun 4, 2024
faefaf1
luci-app-acme: DDNS import: also create a wildcard domain
stokito Jun 4, 2024
7b3206d
luci-app-acme: wildcards * require Validation method: DNS
stokito Jun 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,18 @@ return view.extend({
"The first name will be the subject name, subsequent names will be alt names. " +
"Note that all domain names must point at the router in the global DNS."));
o.datatype = "list(string)";
o.validate = function (section_id, value) {
if (!/^[*a-z0-9.-]*$/.test(value)) {
stokito marked this conversation as resolved.
Show resolved Hide resolved
return _('Invalid domain');
}
if (value.includes('*')) {
let method = this.section.children.filter(function (o) { return o.option == 'validation_method'; })[0].formvalue(section_id);
if (method && method !== 'dns') {
return _('A domain name with wildcard * available only when the Validation Method: DNS');
}
}
return true;
};

o = s.taboption('challenge_webroot', form.Value, 'webroot', _('Webroot directory'),
_("Webserver root directory. Set this to the webserver " +
Expand Down
131 changes: 71 additions & 60 deletions applications/luci-app-acme/po/ar/acme.po

Large diffs are not rendered by default.

131 changes: 71 additions & 60 deletions applications/luci-app-acme/po/bg/acme.po
Original file line number Diff line number Diff line change
Expand Up @@ -10,122 +10,127 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.5-dev\n"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:88
msgid ""
"A domain name with wildcard * available only when the Validation Method: DNS"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:25
#: applications/luci-app-acme/root/usr/share/luci/menu.d/luci-app-acme.json:3
msgid "ACME certificates"
msgstr "ACME сертификати"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:39
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:40
msgid "ACME global config"
msgstr "ACME глобални настройки"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:526
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:540
msgid "ACME server URL"
msgstr "URL на ACME сървър"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:42
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:43
msgid "Account email"
msgstr "Имейл на акаунта"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:60
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:61
msgid "Advanced Settings"
msgstr "Разширени настройки"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:438
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:452
msgid "Base64 content of private key. Use instead of YC_SA_Key_File_Path"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:36
msgid "Cert files are stored in"
msgstr "Директория със сертификати"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:52
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:53
msgid "Certificate config"
msgstr "Конфигурация на сертификат"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:617
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:633
msgid "Certificates"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:459
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:473
msgid "Challenge Alias"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:527
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:541
msgid "Custom ACME server directory URL."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:77
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:73
msgid "DNS"
msgstr "DNS"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:90
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:104
msgid "DNS API"
msgstr "DNS API"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:449
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:463
msgid "DNS API credentials"
msgstr "DNS API креденшъли"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:59
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:60
msgid "DNS Challenge Validation"
msgstr "DNS Проверка на предизвикателство"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:533
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:549
msgid "Days until renewal"
msgstr "Дни до подновяване"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:34
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:84
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:98
msgid "Default"
msgstr "По подразбиране"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:468
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:482
msgid "Domain Alias"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:65
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:76
msgid "Domain names"
msgstr "Имена на домейни"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:66
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:77
msgid ""
"Domain names to include in the certificate. The first name will be the "
"subject name, subsequent names will be alt names. Note that all domain names "
"must point at the router in the global DNS."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:415
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:429
msgid ""
"E.g. <code>_acme-challenge.example.com:12345:98765 alias.example.com:11111</"
"code>"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:500
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:514
msgid "ECC 256 bits"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:501
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:515
msgid "ECC 384 bits"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:43
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:44
msgid "Email address to associate with account key."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:49
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:50
msgid "Enable debug logging"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:62
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:63
msgid "Enabled"
msgstr "Разрешен"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:57
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:58
msgid "General Settings"
msgstr "Общи настройки"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:487
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:501
msgid ""
"Get certificate from the Letsencrypt staging server (use for testing; the "
"certificate won't be valid)."
Expand All @@ -135,113 +140,119 @@ msgstr ""
msgid "Grant UCI access for luci-app-acme"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:44
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:45
msgid ""
"If a certificate wasn't renewed in time then you'll receive a notice at 20 "
"days before expiry."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:599
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:83
msgid "Invalid domain"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:615
msgid "Issued on"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:495
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:509
msgid "Key size (and type) for the generated certificate."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:494
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:508
msgid "Key type"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:596
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:612
msgid "Main Domain"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:374
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:388
msgid "OCID of tenancy that contains the target DNS zone"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:377
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:391
msgid "OCID of user with permission to add/remove records from zones"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:280
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:294
msgid ""
"Open <a href=\"https://www.duckdns.org/\">DuckDNS</a> and copy a token here"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:383
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:397
msgid "Path to private API signing key file in PEM format"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:597
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:613
msgid "Private Key"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:598
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:614
msgid "Public Certificate"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:497
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:511
msgid "RSA 2048 bits"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:498
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:512
msgid "RSA 3072 bits"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:499
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:513
msgid "RSA 4096 bits"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:478
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:492
msgid "Seconds to wait for a DNS record to be updated before continue."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:241
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:255
msgid "See instructions"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:479
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:37
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:493
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:542
msgid "See more"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:380
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:394
msgid "Should point to the tenancy home region"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:75
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:71
msgid "Standalone"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:72
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:67
msgid ""
"Standalone mode will use the built-in webserver of acme.sh to issue a "
"certificate. Webroot mode will use an existing webserver to issue a "
"certificate. DNS mode will allow you to use the DNS API of your DNS provider "
"to issue a certificate."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:460
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:474
msgid ""
"The challenge alias to use for ALL domains. See %s for the details of this "
"process. LUCI only supports one challenge alias per certificate."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:450
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:464
msgid ""
"The credentials for the DNS API mode selected above. See %s for the format "
"of credentials required by each API. Add multiple entries here in KEY=VAL "
"shell variable format to supply multiple credential variables."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:469
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:483
msgid ""
"The domain alias to use for ALL domains. See %s for the details of this "
"process. LUCI only supports one challenge domain per certificate."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:386
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:400
msgid "The private API signing key in PEM format"
msgstr ""

Expand All @@ -255,11 +266,11 @@ msgid ""
"errors."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:302
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:316
msgid "This is usually NOT an email address"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:91
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:105
msgid ""
"To use DNS mode to issue certificates, set this to the name of a DNS API "
"supported by acme.sh. See %s for the list of available APIs. In DNS mode, "
Expand All @@ -268,35 +279,35 @@ msgid ""
"the acme-dnsapi package to be installed."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:527
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:541
msgid "Use a custom CA."
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:485
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:499
msgid "Use staging server"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:71
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:66
msgid "Validation method"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:477
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:491
msgid "Wait for DNS update"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:76
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:72
msgid "Webroot"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:58
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:59
msgid "Webroot Challenge Validation"
msgstr "Webroot Проверка на предизвикателство"

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:80
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:94
msgid "Webroot directory"
msgstr ""

#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:81
#: applications/luci-app-acme/htdocs/luci-static/resources/view/acme.js:95
msgid ""
"Webserver root directory. Set this to the webserver document root to run "
"Acme in webroot mode. The web server must be accessible from the internet on "
Expand Down
Loading