aboutsummaryrefslogtreecommitdiff
path: root/template
diff options
context:
space:
mode:
Diffstat (limited to 'template')
-rw-r--r--template/nginx/redirect.conf.template20
-rw-r--r--template/nginx/server.json5
-rw-r--r--template/nginx/server.schema.json47
-rw-r--r--template/nginx/server.ts12
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[];