diff options
Diffstat (limited to 'template')
-rw-r--r-- | template/nginx/redirect.conf.template | 20 | ||||
-rw-r--r-- | template/nginx/server.json | 5 | ||||
-rw-r--r-- | template/nginx/server.schema.json | 47 | ||||
-rw-r--r-- | template/nginx/server.ts | 12 |
4 files changed, 71 insertions, 13 deletions
diff --git a/template/nginx/redirect.conf.template b/template/nginx/redirect.conf.template new file mode 100644 index 0000000..e0323ea --- /dev/null +++ b/template/nginx/redirect.conf.template @@ -0,0 +1,20 @@ +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name ${CRUPEST_NGINX_SUBDOMAIN}.${CRUPEST_DOMAIN}; + + return 301 ${CRUPEST_NGINX_URL}$request_uri; + +} + +server { + listen 80; + listen [::]:80; + server_name ${CRUPEST_NGINX_SUBDOMAIN}.${CRUPEST_DOMAIN}; + + return 301 ${CRUPEST_NGINX_URL}$request_uri; + + location /.well-known/acme-challenge { + root /srv/acme; + } +} diff --git a/template/nginx/server.json b/template/nginx/server.json index 56f3845..dc3904d 100644 --- a/template/nginx/server.json +++ b/template/nginx/server.json @@ -26,6 +26,11 @@ } }, { + "type": "redirect", + "subdomain": "github", + "url": "https://github.com/crupest" + }, + { "type": "cert-only", "subdomain": "mail" } diff --git a/template/nginx/server.schema.json b/template/nginx/server.schema.json index 536fead..5923b0a 100644 --- a/template/nginx/server.schema.json +++ b/template/nginx/server.schema.json @@ -15,6 +15,23 @@ }, "type": "object" }, + "RedirectSite": { + "properties": { + "subdomain": { + "type": "string" + }, + "type": { + "enum": [ + "redirect" + ], + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, "ReverseProxySite": { "properties": { "subdomain": { @@ -40,6 +57,22 @@ }, "type": "object" }, + "Site": { + "anyOf": [ + { + "$ref": "#/definitions/ReverseProxySite" + }, + { + "$ref": "#/definitions/StaticFileSite" + }, + { + "$ref": "#/definitions/RedirectSite" + }, + { + "$ref": "#/definitions/CertOnlySite" + } + ] + }, "StaticFileSite": { "properties": { "root": { @@ -61,20 +94,10 @@ "properties": { "sites": { "items": { - "anyOf": [ - { - "$ref": "#/definitions/ReverseProxySite" - }, - { - "$ref": "#/definitions/StaticFileSite" - }, - { - "$ref": "#/definitions/CertOnlySite" - } - ] + "$ref": "#/definitions/Site" }, "type": "array" } }, "type": "object" -}
\ No newline at end of file +} diff --git a/template/nginx/server.ts b/template/nginx/server.ts index 6a5d24d..0fad6f5 100644 --- a/template/nginx/server.ts +++ b/template/nginx/server.ts @@ -15,12 +15,22 @@ export interface StaticFileSite { root: string; } +export interface RedirectSite { + type: "redirect"; + subdomain: string; + url: string; +} + export interface CertOnlySite { type: "cert-only"; subdomain: string; } -export type Site = ReverseProxySite | StaticFileSite | CertOnlySite; +export type Site = + | ReverseProxySite + | StaticFileSite + | RedirectSite + | CertOnlySite; export type Sites = Site[]; |