mirror of
https://github.com/digitalocean/nginxconfig.io.git
synced 2025-09-23 20:54:31 +08:00
Dependency updates + full ESM (#327)
* Dependency updates * Fix eslint issues * Switch to esm fully * Fix Jest tests * Update to node 16, force mini-css-extract-plugin to 1.x * More dep updates * Use correct NPM version in Actions * Fix mini-css-extract-plugin version overrides * Don't rely on Webpack for available languages
This commit is contained in:
committed by
GitHub
parent
26e907bd81
commit
387a47b014
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -33,11 +33,12 @@ THE SOFTWARE.
|
||||
<template #header>
|
||||
</template>
|
||||
<template #buttons>
|
||||
<VueSelect v-model="lang"
|
||||
:options="i18nPacks"
|
||||
:clearable="false"
|
||||
:reduce="s => s.value"
|
||||
:disabled="languageLoading"
|
||||
<VueSelect
|
||||
v-model="lang"
|
||||
:options="i18nPacks"
|
||||
:clearable="false"
|
||||
:reduce="s => s.value"
|
||||
:disabled="languageLoading"
|
||||
>
|
||||
<template #selected-option="{ label }">
|
||||
<span class="has-icon">
|
||||
@@ -79,10 +80,11 @@ THE SOFTWARE.
|
||||
</div>
|
||||
|
||||
<template v-for="data in activeDomains">
|
||||
<Domain :key="data[1]"
|
||||
:ref="`domain-${data[1]}`"
|
||||
:data="data[0]"
|
||||
:style="{ display: data[1] === active ? undefined : 'none' }"
|
||||
<Domain
|
||||
:key="data[1]"
|
||||
:ref="`domain-${data[1]}`"
|
||||
:data="data[0]"
|
||||
:style="{ display: data[1] === active ? undefined : 'none' }"
|
||||
></Domain>
|
||||
</template>
|
||||
|
||||
@@ -131,8 +133,7 @@ THE SOFTWARE.
|
||||
import isObject from '../util/is_object';
|
||||
import analytics from '../util/analytics';
|
||||
import browserLanguage from '../util/browser_language';
|
||||
import { defaultPack } from '../util/language_pack_default';
|
||||
import { availablePacks } from '../util/language_pack_context';
|
||||
import { defaultPack, availablePacks } from '../util/language_packs';
|
||||
|
||||
import { setLanguagePack } from '../i18n/setup';
|
||||
import generators from '../generators';
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -34,10 +34,11 @@ THE SOFTWARE.
|
||||
<i class="fas fa-times"></i>
|
||||
</a>
|
||||
</div>
|
||||
<a href="https://github.com/digitalocean/nginxconfig.io"
|
||||
class="button is-primary"
|
||||
target="_blank"
|
||||
@click="linkClickEvent"
|
||||
<a
|
||||
href="https://github.com/digitalocean/nginxconfig.io"
|
||||
class="button is-primary"
|
||||
target="_blank"
|
||||
@click="linkClickEvent"
|
||||
>
|
||||
{{ $t('templates.callouts.contribute.getInvolvedOnGitHub') }}
|
||||
</a>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -28,9 +28,10 @@ THE SOFTWARE.
|
||||
<div class="callout">
|
||||
<p>
|
||||
{{ $t('templates.callouts.droplet.lookingForAPlaceToDeploy') }}
|
||||
<ExternalLink :text="$t('templates.callouts.droplet.tryOutDigitalOceansDroplet')"
|
||||
link="https://marketplace.digitalocean.com/apps/lemp"
|
||||
@click.native="linkClickEvent"
|
||||
<ExternalLink
|
||||
:text="$t('templates.callouts.droplet.tryOutDigitalOceansDroplet')"
|
||||
link="https://marketplace.digitalocean.com/apps/lemp"
|
||||
@click.native="linkClickEvent"
|
||||
></ExternalLink>
|
||||
</p>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -42,13 +42,14 @@ THE SOFTWARE.
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<component :is="tab"
|
||||
v-for="tab in tabs"
|
||||
:key="tab.key"
|
||||
:ref="tab.key"
|
||||
:data="$props.data[tab.key]"
|
||||
:style="{ display: active === tab.key ? undefined : 'none' }"
|
||||
class="container"
|
||||
<component
|
||||
:is="tab"
|
||||
v-for="tab in tabs"
|
||||
:key="tab.key"
|
||||
:ref="tab.key"
|
||||
:data="$props.data[tab.key]"
|
||||
:style="{ display: active === tab.key ? undefined : 'none' }"
|
||||
class="container"
|
||||
></component>
|
||||
|
||||
<div class="navigation-buttons">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -81,12 +81,14 @@ THE SOFTWARE.
|
||||
<label class="text message is-warning">
|
||||
<span class="message-body">
|
||||
{{ $t('templates.domainSections.https.http3IsANonStandardModule') }}
|
||||
<ExternalLink :text="$t('templates.domainSections.https.http3NginxQuicReadme')"
|
||||
link="https://quic.nginx.org/README"
|
||||
<ExternalLink
|
||||
:text="$t('templates.domainSections.https.http3NginxQuicReadme')"
|
||||
link="https://quic.nginx.org/README"
|
||||
></ExternalLink>
|
||||
{{ $t('templates.domainSections.https.http3OrThe') }}
|
||||
<ExternalLink :text="$t('templates.domainSections.https.http3CloudflareQuicheProject')"
|
||||
link="https://github.com/cloudflare/quiche/tree/master/extras/nginx"
|
||||
<ExternalLink
|
||||
:text="$t('templates.domainSections.https.http3CloudflareQuicheProject')"
|
||||
link="https://github.com/cloudflare/quiche/tree/master/extras/nginx"
|
||||
></ExternalLink>
|
||||
{{ $t('templates.domainSections.https.http3ForBuildingNginxWithHttp3') }}
|
||||
</span>
|
||||
@@ -158,8 +160,9 @@ THE SOFTWARE.
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div v-for="(name, value) in $props.data.certType.options"
|
||||
:class="`control${certTypeChanged && value === certType ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="(name, value) in $props.data.certType.options"
|
||||
:class="`control${certTypeChanged && value === certType ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="certType" :value="value" class="p-default p-round p-fill p-icon">
|
||||
@@ -179,10 +182,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${letsEncryptEmailChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="letsEncryptEmail"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.letsEncryptEmail.computed"
|
||||
<input
|
||||
v-model="letsEncryptEmail"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.letsEncryptEmail.computed"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -196,10 +200,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${sslCertificateChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="sslCertificate"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="`${$parent.$parent.$data.global.nginx.nginxConfigDirectory.computed}/ssl/${$parent.$props.data.server.domain.computed}.crt`"
|
||||
<input
|
||||
v-model="sslCertificate"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="`${$parent.$parent.$data.global.nginx.nginxConfigDirectory.computed}/ssl/${$parent.$props.data.server.domain.computed}.crt`"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -213,10 +218,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${sslCertificateKeyChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="sslCertificateKey"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="`${$parent.$parent.$data.global.nginx.nginxConfigDirectory.computed}/ssl/${$parent.$props.data.server.domain.computed}.key`"
|
||||
<input
|
||||
v-model="sslCertificateKey"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="`${$parent.$parent.$data.global.nginx.nginxConfigDirectory.computed}/ssl/${$parent.$props.data.server.domain.computed}.key`"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -49,8 +49,9 @@ THE SOFTWARE.
|
||||
</div>
|
||||
<div class="control">
|
||||
<label class="text">
|
||||
<ExternalLink :text="$t('templates.domainSections.onion.learnMoreAboutOnionServices')"
|
||||
link="https://community.torproject.org/onion-services/"
|
||||
<ExternalLink
|
||||
:text="$t('templates.domainSections.onion.learnMoreAboutOnionServices')"
|
||||
link="https://community.torproject.org/onion-services/"
|
||||
></ExternalLink>
|
||||
</label>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -72,16 +72,18 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${phpServerChanged ? ' is-changed' : ''}`">
|
||||
<VueSelect ref="phpServerSelect"
|
||||
v-model="phpServer"
|
||||
:options="phpServerOptions"
|
||||
:clearable="false"
|
||||
:reduce="s => s.value"
|
||||
<VueSelect
|
||||
ref="phpServerSelect"
|
||||
v-model="phpServer"
|
||||
:options="phpServerOptions"
|
||||
:clearable="false"
|
||||
:reduce="s => s.value"
|
||||
></VueSelect>
|
||||
</div>
|
||||
|
||||
<div v-if="phpServerCustomEnabled"
|
||||
:class="`control${phpServerCustomChanged ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-if="phpServerCustomEnabled"
|
||||
:class="`control${phpServerCustomChanged ? ' is-changed' : ''}`"
|
||||
>
|
||||
<input v-model="phpServerCustom" class="input" type="text" :placeholder="$props.data.phpServerCustom.default" />
|
||||
</div>
|
||||
@@ -96,16 +98,18 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${phpBackupServerChanged ? ' is-changed' : ''}`">
|
||||
<VueSelect ref="phpBackupServerSelect"
|
||||
v-model="phpBackupServer"
|
||||
:options="phpBackupServerOptions"
|
||||
:clearable="false"
|
||||
:reduce="s => s.value"
|
||||
<VueSelect
|
||||
ref="phpBackupServerSelect"
|
||||
v-model="phpBackupServer"
|
||||
:options="phpBackupServerOptions"
|
||||
:clearable="false"
|
||||
:reduce="s => s.value"
|
||||
></VueSelect>
|
||||
</div>
|
||||
|
||||
<div v-if="phpBackupServerCustomEnabled"
|
||||
:class="`control${phpBackupServerCustomChanged ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-if="phpBackupServerCustomEnabled"
|
||||
:class="`control${phpBackupServerCustomChanged ? ' is-changed' : ''}`"
|
||||
>
|
||||
<input v-model="phpBackupServerCustom" class="input" type="text" :placeholder="$props.data.phpBackupServerCustom.default" />
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -41,9 +41,10 @@ THE SOFTWARE.
|
||||
</div>
|
||||
|
||||
<div class="buttons-group">
|
||||
<a v-for="(preset, key) in $props.data"
|
||||
:class="`button${preset.computed ? ' is-primary' : ''}`"
|
||||
@click="setPreset(key)"
|
||||
<a
|
||||
v-for="(preset, key) in $props.data"
|
||||
:class="`button${preset.computed ? ' is-primary' : ''}`"
|
||||
@click="setPreset(key)"
|
||||
>
|
||||
{{ $t(preset.display) }}
|
||||
</a>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2020 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -192,12 +192,13 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${responseCodeChanged ? ' is-changed' : ''}`">
|
||||
<input v-model.number="responseCode"
|
||||
:class="['input', validResponseCode ? '' : 'is-danger']"
|
||||
type="number"
|
||||
min="100"
|
||||
step="1"
|
||||
:placeholder="$props.data.responseCode.default"
|
||||
<input
|
||||
v-model.number="responseCode"
|
||||
:class="['input', validResponseCode ? '' : 'is-danger']"
|
||||
type="number"
|
||||
min="100"
|
||||
step="1"
|
||||
:placeholder="$props.data.responseCode.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2020 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -72,10 +72,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div :class="`field${pathChanged ? ' is-changed' : ''}`">
|
||||
<div class="control">
|
||||
<input v-model="path"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.path.default"
|
||||
<input
|
||||
v-model="path"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.path.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -89,10 +90,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div :class="`field${proxyPassChanged ? ' is-changed' : ''}`">
|
||||
<div class="control">
|
||||
<input v-model="proxyPass"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.proxyPass.default"
|
||||
<input
|
||||
v-model="proxyPass"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.proxyPass.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2020 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -50,8 +50,9 @@ THE SOFTWARE.
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div v-for="value in $props.data.index.options"
|
||||
:class="`control${indexChanged && value === index ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="value in $props.data.index.options"
|
||||
:class="`control${indexChanged && value === index ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="index" :value="value" class="p-default p-round p-fill p-icon">
|
||||
@@ -97,10 +98,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div :class="`field${fallbackPhpPathChanged ? ' is-changed' : ''}`">
|
||||
<div class="control">
|
||||
<input v-model="fallbackPhpPath"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.fallbackPhpPath.default"
|
||||
<input
|
||||
v-model="fallbackPhpPath"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.fallbackPhpPath.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2020 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -32,24 +32,28 @@ THE SOFTWARE.
|
||||
</p>
|
||||
<p>
|
||||
{{ $t('templates.footer.thisToolIs') }}
|
||||
<ExternalLink :text="$t('templates.footer.openSourceOnGitHub')"
|
||||
link="https://github.com/digitalocean/nginxconfig.io"
|
||||
<ExternalLink
|
||||
:text="$t('templates.footer.openSourceOnGitHub')"
|
||||
link="https://github.com/digitalocean/nginxconfig.io"
|
||||
></ExternalLink>
|
||||
{{ $t('templates.footer.underThe') }}
|
||||
<ExternalLink :text="$t('templates.footer.mit')"
|
||||
link="https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE"
|
||||
<ExternalLink
|
||||
:text="$t('templates.footer.mit')"
|
||||
link="https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE"
|
||||
></ExternalLink>
|
||||
{{ $t('templates.footer.license') }}
|
||||
{{ $t('templates.footer.weWelcomeFeedbackAndContributions') }}
|
||||
</p>
|
||||
<p>
|
||||
{{ $t('templates.footer.originallyCreatedBy') }}
|
||||
<ExternalLink :text="$t('templates.footer.balintSzekeres')"
|
||||
link="https://b4lint.hu/"
|
||||
<ExternalLink
|
||||
:text="$t('templates.footer.balintSzekeres')"
|
||||
link="https://b4lint.hu/"
|
||||
></ExternalLink>,
|
||||
{{ $t('templates.footer.maintainedBy') }}
|
||||
<ExternalLink :text="$t('templates.footer.digitalOcean')"
|
||||
link="https://github.com/digitalocean/nginxconfig.io"
|
||||
<ExternalLink
|
||||
:text="$t('templates.footer.digitalOcean')"
|
||||
link="https://github.com/digitalocean/nginxconfig.io"
|
||||
></ExternalLink>.
|
||||
</p>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -37,13 +37,14 @@ THE SOFTWARE.
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<component :is="tab"
|
||||
v-for="tab in tabs"
|
||||
:key="tab.key"
|
||||
:ref="tab.key"
|
||||
:data="$props.data[tab.key]"
|
||||
:style="{ display: active === tab.key ? undefined : 'none' }"
|
||||
class="container"
|
||||
<component
|
||||
:is="tab"
|
||||
v-for="tab in tabs"
|
||||
:key="tab.key"
|
||||
:ref="tab.key"
|
||||
:data="$props.data[tab.key]"
|
||||
:style="{ display: active === tab.key ? undefined : 'none' }"
|
||||
class="container"
|
||||
></component>
|
||||
|
||||
<div class="navigation-buttons">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -67,8 +67,9 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div class="field">
|
||||
<div v-for="(name, value) in $props.data.sslProfile.options"
|
||||
:class="`control${sslProfileChanged && value === sslProfile ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="(name, value) in $props.data.sslProfile.options"
|
||||
:class="`control${sslProfileChanged && value === sslProfile ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="sslProfile" :value="value" class="p-default p-round p-fill p-icon">
|
||||
@@ -97,8 +98,9 @@ THE SOFTWARE.
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="$props.data.ocspCloudflare.computed" class="control field is-horizontal is-expanded">
|
||||
<div v-for="(name, value) in $props.data.ocspCloudflareType.options"
|
||||
:class="`control${ocspCloudflareTypeChanged && value === ocspCloudflareType ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="(name, value) in $props.data.ocspCloudflareType.options"
|
||||
:class="`control${ocspCloudflareTypeChanged && value === ocspCloudflareType ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="ocspCloudflareType" :value="value" class="p-default p-round p-fill p-icon">
|
||||
@@ -118,8 +120,9 @@ THE SOFTWARE.
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="$props.data.ocspGoogle.computed" class="control field is-horizontal is-expanded">
|
||||
<div v-for="(name, value) in $props.data.ocspGoogleType.options"
|
||||
:class="`control${ocspGoogleTypeChanged && value === ocspGoogleType ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="(name, value) in $props.data.ocspGoogleType.options"
|
||||
:class="`control${ocspGoogleTypeChanged && value === ocspGoogleType ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="ocspGoogleType" :value="value" class="p-default p-round p-fill p-icon">
|
||||
@@ -139,8 +142,9 @@ THE SOFTWARE.
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="$props.data.ocspOpenDns.computed" class="control field is-horizontal is-expanded">
|
||||
<div v-for="(name, value) in $props.data.ocspOpenDnsType.options"
|
||||
:class="`control${ocspOpenDnsTypeChanged && value === ocspOpenDnsType ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="(name, value) in $props.data.ocspOpenDnsType.options"
|
||||
:class="`control${ocspOpenDnsTypeChanged && value === ocspOpenDnsType ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="ocspOpenDnsType" :value="value" class="p-default p-round p-fill p-icon">
|
||||
@@ -160,8 +164,9 @@ THE SOFTWARE.
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="$props.data.ocspQuad9.computed" class="control field is-horizontal is-expanded">
|
||||
<div v-for="(name, value) in $props.data.ocspQuad9Type.options"
|
||||
:class="`control${ocspQuad9TypeChanged && value === ocspQuad9Type ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="(name, value) in $props.data.ocspQuad9Type.options"
|
||||
:class="`control${ocspQuad9TypeChanged && value === ocspQuad9Type ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="ocspQuad9Type" :value="value" class="p-default p-round p-fill p-icon">
|
||||
@@ -181,8 +186,9 @@ THE SOFTWARE.
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="$props.data.ocspVerisign.computed" class="control field is-horizontal is-expanded">
|
||||
<div v-for="(name, value) in $props.data.ocspVerisignType.options"
|
||||
:class="`control${ocspVerisignTypeChanged && value === ocspVerisignType ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="(name, value) in $props.data.ocspVerisignType.options"
|
||||
:class="`control${ocspVerisignTypeChanged && value === ocspVerisignType ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="ocspVerisignType" :value="value" class="p-default p-round p-fill p-icon">
|
||||
@@ -203,10 +209,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${letsEncryptRootChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="letsEncryptRoot"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.letsEncryptRoot.default"
|
||||
<input
|
||||
v-model="letsEncryptRoot"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.letsEncryptRoot.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -220,10 +227,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${letsEncryptCertRootChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="letsEncryptCertRoot"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.letsEncryptCertRoot.default"
|
||||
<input
|
||||
v-model="letsEncryptCertRoot"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.letsEncryptCertRoot.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2020 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -33,10 +33,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${accessLogChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="accessLog"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.accessLog.default"
|
||||
<input
|
||||
v-model="accessLog"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.accessLog.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -50,10 +51,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${errorLogChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="errorLog"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.errorLog.default"
|
||||
<input
|
||||
v-model="errorLog"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.errorLog.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2020 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -33,10 +33,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${nginxConfigDirectoryChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="nginxConfigDirectory"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.nginxConfigDirectory.default"
|
||||
<input
|
||||
v-model="nginxConfigDirectory"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.nginxConfigDirectory.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -50,9 +51,10 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${workerProcessesChanged ? ' is-changed' : ''}`">
|
||||
<VueSelect v-model="workerProcesses"
|
||||
:options="$props.data.workerProcesses.options"
|
||||
:clearable="false"
|
||||
<VueSelect
|
||||
v-model="workerProcesses"
|
||||
:options="$props.data.workerProcesses.options"
|
||||
:clearable="false"
|
||||
></VueSelect>
|
||||
</div>
|
||||
</div>
|
||||
@@ -66,10 +68,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${userChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="user"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.user.default"
|
||||
<input
|
||||
v-model="user"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.user.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -83,10 +86,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${pidChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="pid"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.pid.default"
|
||||
<input
|
||||
v-model="pid"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.pid.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -100,12 +104,13 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field has-addons">
|
||||
<div :class="`control is-expanded${clientMaxBodySizeChanged ? ' is-changed' : ''}`">
|
||||
<input v-model.number="clientMaxBodySize"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
:placeholder="$props.data.clientMaxBodySize.default"
|
||||
<input
|
||||
v-model.number="clientMaxBodySize"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
:placeholder="$props.data.clientMaxBodySize.default"
|
||||
/>
|
||||
</div>
|
||||
<div class="control">
|
||||
@@ -124,9 +129,10 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${typesHashMaxSizeChanged ? ' is-changed' : ''}`">
|
||||
<VueSelect v-model="typesHashMaxSize"
|
||||
:options="$props.data.typesHashMaxSize.options"
|
||||
:clearable="false"
|
||||
<VueSelect
|
||||
v-model="typesHashMaxSize"
|
||||
:options="$props.data.typesHashMaxSize.options"
|
||||
:clearable="false"
|
||||
></VueSelect>
|
||||
</div>
|
||||
</div>
|
||||
@@ -140,9 +146,10 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${typesHashBucketSizeChanged ? ' is-changed' : ''}`">
|
||||
<VueSelect v-model="typesHashBucketSize"
|
||||
:options="$props.data.typesHashBucketSize.options"
|
||||
:clearable="false"
|
||||
<VueSelect
|
||||
v-model="typesHashBucketSize"
|
||||
:options="$props.data.typesHashBucketSize.options"
|
||||
:clearable="false"
|
||||
></VueSelect>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2020 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -82,10 +82,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${assetsExpirationChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="assetsExpiration"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.assetsExpiration.default"
|
||||
<input
|
||||
v-model="assetsExpiration"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.assetsExpiration.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -99,10 +100,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${mediaExpirationChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="mediaExpiration"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.mediaExpiration.default"
|
||||
<input
|
||||
v-model="mediaExpiration"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.mediaExpiration.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -116,10 +118,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${svgExpirationChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="svgExpiration"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.svgExpiration.default"
|
||||
<input
|
||||
v-model="svgExpiration"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.svgExpiration.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -133,10 +136,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${fontsExpirationChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="fontsExpiration"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.fontsExpiration.default"
|
||||
<input
|
||||
v-model="fontsExpiration"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.fontsExpiration.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2020 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -48,10 +48,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${pythonServerChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="pythonServer"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.pythonServer.default"
|
||||
<input
|
||||
v-model="pythonServer"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.pythonServer.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -49,12 +49,13 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field has-addons">
|
||||
<div :class="`control is-expanded${proxyConnectTimeoutChanged ? ' is-changed' : ''}`">
|
||||
<input v-model.number="proxyConnectTimeout"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
:placeholder="$props.data.proxyConnectTimeout.default"
|
||||
<input
|
||||
v-model.number="proxyConnectTimeout"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
:placeholder="$props.data.proxyConnectTimeout.default"
|
||||
/>
|
||||
</div>
|
||||
<div class="control">
|
||||
@@ -73,12 +74,13 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field has-addons">
|
||||
<div :class="`control is-expanded${proxySendTimeoutChanged ? ' is-changed' : ''}`">
|
||||
<input v-model.number="proxySendTimeout"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
:placeholder="$props.data.proxySendTimeout.default"
|
||||
<input
|
||||
v-model.number="proxySendTimeout"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
:placeholder="$props.data.proxySendTimeout.default"
|
||||
/>
|
||||
</div>
|
||||
<div class="control">
|
||||
@@ -97,12 +99,13 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field has-addons">
|
||||
<div :class="`control is-expanded${proxyReadTimeoutChanged ? ' is-changed' : ''}`">
|
||||
<input v-model.number="proxyReadTimeout"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
:placeholder="$props.data.proxyReadTimeout.default"
|
||||
<input
|
||||
v-model.number="proxyReadTimeout"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
step="1"
|
||||
:placeholder="$props.data.proxyReadTimeout.default"
|
||||
/>
|
||||
</div>
|
||||
<div class="control">
|
||||
@@ -121,8 +124,9 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div class="field">
|
||||
<div v-for="(name, value) in $props.data.proxyCoexistenceXForwarded.options"
|
||||
:class="`control${proxyCoexistenceXForwardedChanged && value === proxyCoexistenceXForwarded ? ' is-changed' : ''}`"
|
||||
<div
|
||||
v-for="(name, value) in $props.data.proxyCoexistenceXForwarded.options"
|
||||
:class="`control${proxyCoexistenceXForwardedChanged && value === proxyCoexistenceXForwarded ? ' is-changed' : ''}`"
|
||||
>
|
||||
<div class="radio">
|
||||
<PrettyRadio v-model="proxyCoexistenceXForwarded" :value="value" class="p-default p-round p-fill p-icon">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -33,9 +33,10 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${referrerPolicyChanged ? ' is-changed' : ''}`">
|
||||
<VueSelect v-model="referrerPolicy"
|
||||
:options="$props.data.referrerPolicy.options"
|
||||
:clearable="false"
|
||||
<VueSelect
|
||||
v-model="referrerPolicy"
|
||||
:options="$props.data.referrerPolicy.options"
|
||||
:clearable="false"
|
||||
></VueSelect>
|
||||
</div>
|
||||
</div>
|
||||
@@ -49,16 +50,18 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${contentSecurityPolicyChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="contentSecurityPolicy"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.contentSecurityPolicy.default"
|
||||
<input
|
||||
v-model="contentSecurityPolicy"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.contentSecurityPolicy.default"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="hasWordPress && !hasWordPressUnsafeEval" class="control">
|
||||
<label class="text message is-warning">
|
||||
<span class="message-body"
|
||||
v-html="$t('templates.globalSections.security.whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality')"
|
||||
<span
|
||||
class="message-body"
|
||||
v-html="$t('templates.globalSections.security.whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality')"
|
||||
></span>
|
||||
</label>
|
||||
</div>
|
||||
@@ -73,10 +76,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${permissionsPolicyChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="permissionsPolicy"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.permissionsPolicy.default"
|
||||
<input
|
||||
v-model="permissionsPolicy"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.permissionsPolicy.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -144,10 +148,11 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div :class="`control${securityTxtChanged ? ' is-changed' : ''}`">
|
||||
<input v-model="securityTxtPath"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.securityTxtPath.default"
|
||||
<input
|
||||
v-model="securityTxtPath"
|
||||
class="input"
|
||||
type="text"
|
||||
:placeholder="$props.data.securityTxtPath.default"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -70,11 +70,12 @@ THE SOFTWARE.
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
<input v-model="shareLink"
|
||||
class="input"
|
||||
type="text"
|
||||
readonly="readonly"
|
||||
@click="select"
|
||||
<input
|
||||
v-model="shareLink"
|
||||
class="input"
|
||||
type="text"
|
||||
readonly="readonly"
|
||||
@click="select"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -35,12 +35,13 @@ THE SOFTWARE.
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<component :is="tab"
|
||||
v-for="tab in tabs"
|
||||
:key="tab.key"
|
||||
:data="$props.data"
|
||||
:style="{ display: active === tab.key ? undefined : 'none' }"
|
||||
class="container"
|
||||
<component
|
||||
:is="tab"
|
||||
v-for="tab in tabs"
|
||||
:key="tab.key"
|
||||
:data="$props.data"
|
||||
:style="{ display: active === tab.key ? undefined : 'none' }"
|
||||
class="container"
|
||||
></component>
|
||||
|
||||
<div class="navigation-buttons">
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -32,9 +32,10 @@ THE SOFTWARE.
|
||||
{{ $t('templates.setupSections.certbot.commentOutSslDirectivesInConfiguration') }}
|
||||
<br />
|
||||
</p>
|
||||
<BashPrism :key="sitesAvailable"
|
||||
:cmd="`sed -i -r 's/(listen .*443)/\\1; #/g; s/(ssl_(certificate|certificate_key|trusted_certificate) )/#;#\\1/g; s/(server \\{)/\\1\\n ssl off;/g' ${sitesAvailable}`"
|
||||
@copied="codeCopiedEvent('Disable ssl directives')"
|
||||
<BashPrism
|
||||
:key="sitesAvailable"
|
||||
:cmd="`sed -i -r 's/(listen .*443)/\\1; #/g; s/(ssl_(certificate|certificate_key|trusted_certificate) )/#;#\\1/g; s/(server \\{)/\\1\\n ssl off;/g' ${sitesAvailable}`"
|
||||
@copied="codeCopiedEvent('Disable ssl directives')"
|
||||
></BashPrism>
|
||||
</li>
|
||||
|
||||
@@ -43,8 +44,9 @@ THE SOFTWARE.
|
||||
{{ $t('templates.setupSections.certbot.reloadYourNginxServer') }}
|
||||
<br />
|
||||
</p>
|
||||
<BashPrism cmd="sudo nginx -t && sudo systemctl reload nginx"
|
||||
@copied="codeCopiedEvent('Reload nginx')"
|
||||
<BashPrism
|
||||
cmd="sudo nginx -t && sudo systemctl reload nginx"
|
||||
@copied="codeCopiedEvent('Reload nginx')"
|
||||
></BashPrism>
|
||||
</li>
|
||||
|
||||
@@ -53,9 +55,10 @@ THE SOFTWARE.
|
||||
{{ $t('templates.setupSections.certbot.obtainSslCertificatesFromLetsEncrypt') }}
|
||||
<br />
|
||||
</p>
|
||||
<BashPrism :key="certbotCmds"
|
||||
:cmd="certbotCmds"
|
||||
@copied="codeCopiedEvent('Obtain certificates using certbot')"
|
||||
<BashPrism
|
||||
:key="certbotCmds"
|
||||
:cmd="certbotCmds"
|
||||
@copied="codeCopiedEvent('Obtain certificates using certbot')"
|
||||
></BashPrism>
|
||||
</li>
|
||||
|
||||
@@ -64,9 +67,10 @@ THE SOFTWARE.
|
||||
{{ $t('templates.setupSections.certbot.uncommentSslDirectivesInConfiguration') }}
|
||||
<br />
|
||||
</p>
|
||||
<BashPrism :key="sitesAvailable"
|
||||
:cmd="`sed -i -r -z 's/#?; ?#//g; s/(server \\{)\\n ssl off;/\\1/g' ${sitesAvailable}`"
|
||||
@copied="codeCopiedEvent('Enable ssl directives')"
|
||||
<BashPrism
|
||||
:key="sitesAvailable"
|
||||
:cmd="`sed -i -r -z 's/#?; ?#//g; s/(server \\{)\\n ssl off;/\\1/g' ${sitesAvailable}`"
|
||||
@copied="codeCopiedEvent('Enable ssl directives')"
|
||||
></BashPrism>
|
||||
</li>
|
||||
|
||||
@@ -75,8 +79,9 @@ THE SOFTWARE.
|
||||
{{ $t('templates.setupSections.certbot.reloadYourNginxServer') }}
|
||||
<br />
|
||||
</p>
|
||||
<BashPrism cmd="sudo nginx -t && sudo systemctl reload nginx"
|
||||
@copied="codeCopiedEvent('Reload nginx (2)')"
|
||||
<BashPrism
|
||||
cmd="sudo nginx -t && sudo systemctl reload nginx"
|
||||
@copied="codeCopiedEvent('Reload nginx (2)')"
|
||||
></BashPrism>
|
||||
</li>
|
||||
|
||||
@@ -85,11 +90,13 @@ THE SOFTWARE.
|
||||
{{ $t('templates.setupSections.certbot.configureCertbotToReloadNginxOnCertificateRenewal') }}
|
||||
<br />
|
||||
</p>
|
||||
<BashPrism cmd="echo -e '#!/bin/bash\nnginx -t && systemctl reload nginx' | sudo tee /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh"
|
||||
@copied="codeCopiedEvent('Create nginx auto-restart on renewal')"
|
||||
<BashPrism
|
||||
cmd="echo -e '#!/bin/bash\nnginx -t && systemctl reload nginx' | sudo tee /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh"
|
||||
@copied="codeCopiedEvent('Create nginx auto-restart on renewal')"
|
||||
></BashPrism>
|
||||
<BashPrism cmd="sudo chmod a+x /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh"
|
||||
@copied="codeCopiedEvent('Enable execution of auto-restart')"
|
||||
<BashPrism
|
||||
cmd="sudo chmod a+x /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh"
|
||||
@copied="codeCopiedEvent('Enable execution of auto-restart')"
|
||||
></BashPrism>
|
||||
</li>
|
||||
</ol>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -50,9 +50,10 @@ THE SOFTWARE.
|
||||
<p>
|
||||
<span v-html="$t('templates.setupSections.download.navigateToYourNginxConfigurationDirectoryOnYourServer')"></span>
|
||||
<br />
|
||||
<BashPrism :key="$props.data.global.nginx.nginxConfigDirectory.computed"
|
||||
:cmd="`cd ${$props.data.global.nginx.nginxConfigDirectory.computed}`"
|
||||
@copied="codeCopiedEvent('Navigate to nginx config directory')"
|
||||
<BashPrism
|
||||
:key="$props.data.global.nginx.nginxConfigDirectory.computed"
|
||||
:cmd="`cd ${$props.data.global.nginx.nginxConfigDirectory.computed}`"
|
||||
@copied="codeCopiedEvent('Navigate to nginx config directory')"
|
||||
></BashPrism>
|
||||
</p>
|
||||
</li>
|
||||
@@ -61,8 +62,9 @@ THE SOFTWARE.
|
||||
<p>
|
||||
<span v-html="$t('templates.setupSections.download.createABackupOfYourCurrentNginxConfiguration')"></span>
|
||||
<br />
|
||||
<BashPrism cmd="tar -czvf nginx_$(date +'%F_%H-%M-%S').tar.gz nginx.conf sites-available/ sites-enabled/ nginxconfig.io/"
|
||||
@copied="codeCopiedEvent('Create nginx config backup tar')"
|
||||
<BashPrism
|
||||
cmd="tar -czvf nginx_$(date +'%F_%H-%M-%S').tar.gz nginx.conf sites-available/ sites-enabled/ nginxconfig.io/"
|
||||
@copied="codeCopiedEvent('Create nginx config backup tar')"
|
||||
></BashPrism>
|
||||
</p>
|
||||
</li>
|
||||
@@ -71,9 +73,10 @@ THE SOFTWARE.
|
||||
<p>
|
||||
<span v-html="$t('templates.setupSections.download.extractTheNewCompressedConfigurationArchiveUsingTar')"></span>
|
||||
<br />
|
||||
<BashPrism :key="$parent.tarName"
|
||||
:cmd="`tar -xzvf ${$parent.tarName} | xargs chmod 0644`"
|
||||
@copied="codeCopiedEvent('Extract new nginx config tar')"
|
||||
<BashPrism
|
||||
:key="$parent.tarName"
|
||||
:cmd="`tar -xzvf ${$parent.tarName} | xargs chmod 0644`"
|
||||
@copied="codeCopiedEvent('Extract new nginx config tar')"
|
||||
></BashPrism>
|
||||
</p>
|
||||
</li>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -32,8 +32,9 @@ THE SOFTWARE.
|
||||
<p>
|
||||
{{ $t('templates.setupSections.goLive.reloadNginxToLoadInYourNewConfiguration') }}
|
||||
<br />
|
||||
<BashPrism cmd="sudo nginx -t && sudo systemctl reload nginx"
|
||||
@copied="codeCopiedEvent('Reload nginx')"
|
||||
<BashPrism
|
||||
cmd="sudo nginx -t && sudo systemctl reload nginx"
|
||||
@copied="codeCopiedEvent('Reload nginx')"
|
||||
></BashPrism>
|
||||
</p>
|
||||
</div>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Copyright 2021 DigitalOcean
|
||||
Copyright 2022 DigitalOcean
|
||||
|
||||
This code is licensed under the MIT License.
|
||||
You may obtain a copy of the License at
|
||||
@@ -31,9 +31,10 @@ THE SOFTWARE.
|
||||
<p>
|
||||
<span v-html="$t('templates.setupSections.ssl.generateDiffieHellmanKeysByRunningThisCommandOnYourServer')"></span>
|
||||
<br />
|
||||
<BashPrism :key="`${$props.data.global.nginx.nginxConfigDirectory.computed}-${diffieHellmanValue}`"
|
||||
:cmd="`openssl dhparam -out ${$props.data.global.nginx.nginxConfigDirectory.computed}/dhparam.pem ${diffieHellmanValue}`"
|
||||
@copied="codeCopiedEvent('Generate diffie-hellman keys')"
|
||||
<BashPrism
|
||||
:key="`${$props.data.global.nginx.nginxConfigDirectory.computed}-${diffieHellmanValue}`"
|
||||
:cmd="`openssl dhparam -out ${$props.data.global.nginx.nginxConfigDirectory.computed}/dhparam.pem ${diffieHellmanValue}`"
|
||||
@copied="codeCopiedEvent('Generate diffie-hellman keys')"
|
||||
></BashPrism>
|
||||
</p>
|
||||
</li>
|
||||
@@ -42,13 +43,15 @@ THE SOFTWARE.
|
||||
<p>
|
||||
<span v-html="$t('templates.setupSections.ssl.createACommonAcmeChallengeDirectoryForLetsEncrypt')"></span>
|
||||
<br />
|
||||
<BashPrism :key="letsEncryptDir"
|
||||
:cmd="`mkdir -p ${letsEncryptDir}`"
|
||||
@copied="codeCopiedEvent('Create let\'s encrypt directory')"
|
||||
<BashPrism
|
||||
:key="letsEncryptDir"
|
||||
:cmd="`mkdir -p ${letsEncryptDir}`"
|
||||
@copied="codeCopiedEvent('Create let\'s encrypt directory')"
|
||||
></BashPrism>
|
||||
<BashPrism :key="`${nginxUser}-${letsEncryptDir}`"
|
||||
:cmd="`chown ${nginxUser} ${letsEncryptDir}`"
|
||||
@copied="codeCopiedEvent('Set let\'s encrypt directory ownership')"
|
||||
<BashPrism
|
||||
:key="`${nginxUser}-${letsEncryptDir}`"
|
||||
:cmd="`chown ${nginxUser} ${letsEncryptDir}`"
|
||||
@copied="codeCopiedEvent('Set let\'s encrypt directory ownership')"
|
||||
></BashPrism>
|
||||
</p>
|
||||
</li>
|
||||
|
Reference in New Issue
Block a user