diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | deno/deno.json | 4 | ||||
-rw-r--r-- | deno/mail/app.ts (renamed from deno/mail-relay/app.ts) | 0 | ||||
-rw-r--r-- | deno/mail/aws/app.ts (renamed from deno/mail-relay/aws/app.ts) | 2 | ||||
-rw-r--r-- | deno/mail/aws/deliver.ts (renamed from deno/mail-relay/aws/deliver.ts) | 0 | ||||
-rw-r--r-- | deno/mail/aws/fetch.ts (renamed from deno/mail-relay/aws/fetch.ts) | 0 | ||||
-rw-r--r-- | deno/mail/aws/mail.ts (renamed from deno/mail-relay/aws/mail.ts) | 0 | ||||
-rw-r--r-- | deno/mail/db.test.ts (renamed from deno/mail-relay/db.test.ts) | 0 | ||||
-rw-r--r-- | deno/mail/db.ts (renamed from deno/mail-relay/db.ts) | 0 | ||||
-rw-r--r-- | deno/mail/deno.json (renamed from deno/mail-relay/deno.json) | 0 | ||||
-rw-r--r-- | deno/mail/dovecot.ts (renamed from deno/mail-relay/dovecot.ts) | 0 | ||||
-rw-r--r-- | deno/mail/dumb-smtp-server.ts (renamed from deno/mail-relay/dumb-smtp-server.ts) | 0 | ||||
-rw-r--r-- | deno/mail/mail-parsing.ts (renamed from deno/mail-relay/mail-parsing.ts) | 0 | ||||
-rw-r--r-- | deno/mail/mail.test.ts (renamed from deno/mail-relay/mail.test.ts) | 0 | ||||
-rw-r--r-- | deno/mail/mail.ts (renamed from deno/mail-relay/mail.ts) | 0 | ||||
-rw-r--r-- | dictionary.txt | 3 | ||||
-rw-r--r-- | services/config.template | 4 | ||||
-rw-r--r-- | services/docker/mail-server/Dockerfile | 4 | ||||
-rwxr-xr-x | services/docker/mail-server/app/main.bash | 4 | ||||
-rw-r--r-- | services/docker/nginx/Dockerfile | 1 | ||||
-rw-r--r-- | services/docker/nginx/configs/templates/mail.conf.template | 6 | ||||
-rw-r--r-- | services/docker/nginx/configs/templates/timeline.conf.template | 6 | ||||
-rwxr-xr-x | services/docker/nginx/nginx-wrapper.bash | 4 | ||||
-rw-r--r-- | services/templates/disabled/nginx/timeline.conf.template | 8 | ||||
-rw-r--r-- | services/templates/docker-compose.yaml.template | 58 | ||||
-rw-r--r-- | services/templates/envs/mail-server-common.env.template | 1 | ||||
-rw-r--r-- | services/templates/envs/mail-server.env.template | 6 | ||||
-rw-r--r-- | services/templates/envs/roundcubemail.env.template | 6 | ||||
-rw-r--r-- | services/templates/my-roundcube.inc.php | 3 | ||||
-rw-r--r-- | services/templates/nginx/common/acme-challenge (renamed from services/docker/nginx/configs/common/acme-challenge) | 2 | ||||
-rw-r--r-- | services/templates/nginx/common/http-listen (renamed from services/docker/nginx/configs/common/http-listen) | 0 | ||||
-rw-r--r-- | services/templates/nginx/common/https-listen (renamed from services/docker/nginx/configs/common/https-listen) | 0 | ||||
-rw-r--r-- | services/templates/nginx/common/https-redirect (renamed from services/docker/nginx/configs/common/https-redirect) | 0 | ||||
-rw-r--r-- | services/templates/nginx/common/reverse-proxy (renamed from services/docker/nginx/configs/common/proxy-common) | 0 | ||||
-rw-r--r-- | services/templates/nginx/default.conf (renamed from services/docker/nginx/configs/conf.d/default.conf) | 0 | ||||
-rw-r--r-- | services/templates/nginx/mail.conf.template | 29 | ||||
-rw-r--r-- | services/templates/nginx/root.conf.template (renamed from services/docker/nginx/configs/templates/root.conf.template) | 20 | ||||
-rw-r--r-- | services/templates/nginx/ssl.conf.template (renamed from services/docker/nginx/configs/templates/ssl.conf.template) | 4 | ||||
-rw-r--r-- | services/templates/nginx/timeline.conf.template | 6 | ||||
-rw-r--r-- | services/templates/nginx/websocket.conf (renamed from services/docker/nginx/configs/conf.d/websocket.conf) | 0 | ||||
-rw-r--r-- | store/config/home/gitconfig | 2 | ||||
-rw-r--r-- | www/layouts/home.html | 2 |
42 files changed, 141 insertions, 46 deletions
@@ -1,4 +1,4 @@ Hi! This is **crupest**. Nice to meet you here! 🤗 -Feel free to contact me via my email address *<crupest@outlook.com>*, +Feel free to contact me via my email address *<crupest@crupest.life>*, or just create an issue in any of my [GitHub](https://github.com/crupest) repos. I love talking with people a lot. diff --git a/deno/deno.json b/deno/deno.json index d4beef0..286451e 100644 --- a/deno/deno.json +++ b/deno/deno.json @@ -1,7 +1,7 @@ { - "workspace": ["./base", "./mail-relay", "./tools"], + "workspace": ["./base", "./mail", "./tools"], "tasks": { - "compile:mail-relay": "deno task --cwd=mail-relay compile" + "compile:mail": "deno task --cwd=mail compile" }, "imports": { "@std/collections": "jsr:@std/collections@^1.1.1", diff --git a/deno/mail-relay/app.ts b/deno/mail/app.ts index 332c430..332c430 100644 --- a/deno/mail-relay/app.ts +++ b/deno/mail/app.ts diff --git a/deno/mail-relay/aws/app.ts b/deno/mail/aws/app.ts index e3f1114..3c8305d 100644 --- a/deno/mail-relay/aws/app.ts +++ b/deno/mail/aws/app.ts @@ -274,7 +274,7 @@ async function recycleLives() { if (import.meta.main) { await yargs(Deno.args) - .scriptName("mail-relay") + .scriptName("mail") .command({ command: "sendmail", describe: "send mail via this server's endpoint", diff --git a/deno/mail-relay/aws/deliver.ts b/deno/mail/aws/deliver.ts index 0195369..0195369 100644 --- a/deno/mail-relay/aws/deliver.ts +++ b/deno/mail/aws/deliver.ts diff --git a/deno/mail-relay/aws/fetch.ts b/deno/mail/aws/fetch.ts index 2154972..2154972 100644 --- a/deno/mail-relay/aws/fetch.ts +++ b/deno/mail/aws/fetch.ts diff --git a/deno/mail-relay/aws/mail.ts b/deno/mail/aws/mail.ts index 26f3ea0..26f3ea0 100644 --- a/deno/mail-relay/aws/mail.ts +++ b/deno/mail/aws/mail.ts diff --git a/deno/mail-relay/db.test.ts b/deno/mail/db.test.ts index 60035c4..60035c4 100644 --- a/deno/mail-relay/db.test.ts +++ b/deno/mail/db.test.ts diff --git a/deno/mail-relay/db.ts b/deno/mail/db.ts index 062700b..062700b 100644 --- a/deno/mail-relay/db.ts +++ b/deno/mail/db.ts diff --git a/deno/mail-relay/deno.json b/deno/mail/deno.json index 9105747..9105747 100644 --- a/deno/mail-relay/deno.json +++ b/deno/mail/deno.json diff --git a/deno/mail-relay/dovecot.ts b/deno/mail/dovecot.ts index 4fe2f41..4fe2f41 100644 --- a/deno/mail-relay/dovecot.ts +++ b/deno/mail/dovecot.ts diff --git a/deno/mail-relay/dumb-smtp-server.ts b/deno/mail/dumb-smtp-server.ts index 70d5ec0..70d5ec0 100644 --- a/deno/mail-relay/dumb-smtp-server.ts +++ b/deno/mail/dumb-smtp-server.ts diff --git a/deno/mail-relay/mail-parsing.ts b/deno/mail/mail-parsing.ts index 8e9697d..8e9697d 100644 --- a/deno/mail-relay/mail-parsing.ts +++ b/deno/mail/mail-parsing.ts diff --git a/deno/mail-relay/mail.test.ts b/deno/mail/mail.test.ts index a8204be..a8204be 100644 --- a/deno/mail-relay/mail.test.ts +++ b/deno/mail/mail.test.ts diff --git a/deno/mail-relay/mail.ts b/deno/mail/mail.ts index 9cc591c..9cc591c 100644 --- a/deno/mail-relay/mail.ts +++ b/deno/mail/mail.ts diff --git a/dictionary.txt b/dictionary.txt index b0b2b2b..673d2b4 100644 --- a/dictionary.txt +++ b/dictionary.txt @@ -10,6 +10,8 @@ esmtp healthcheck certbot +roundcube +roundcubemail gerrit gohugoio pwsh @@ -42,6 +44,7 @@ ustc sourceware sesv2 amazonses +maileroo geodata geoip diff --git a/services/config.template b/services/config.template index 19f35e9..77be817 100644 --- a/services/config.template +++ b/services/config.template @@ -1,9 +1,13 @@ CRUPEST_SERVICES_DIR=services CRUPEST_DATA_DIR=data CRUPEST_ROOT_URL=https://@@CRUPEST_DOMAIN@@ +CRUPEST_MAIL_SERVER_DOMAIN=mail.@@CRUPEST_DOMAIN@@ CRUPEST_DOCKER_DIR=@@CRUPEST_SERVICES_DIR@@/docker +CRUPEST_DATA_SECRET_DIR=@@CRUPEST_DATA_DIR@@/secret CRUPEST_DATA_CERTBOT_DIR=@@CRUPEST_DATA_DIR@@/certbot CRUPEST_DATA_GIT_DIR=@@CRUPEST_DATA_DIR@@/git +CRUPEST_DATA_MAIL_SERVER_DIR=@@CRUPEST_DATA_DIR@@/mail-server +CRUPEST_DATA_ROUNDCUBE_DIR=@@CRUPEST_DATA_DIR@@/roundcube CRUPEST_GENERATED_DIR=@@CRUPEST_SERVICES_DIR@@/generated CRUPEST_SSL_FULLCHAIN_FILE=@@CRUPEST_DATA_CERTBOT_DIR@@/certs/live/@@CRUPEST_DOMAIN@@/fullchain.pem CRUPEST_SSL_PRIVATE_KEY_FILE=@@CRUPEST_DATA_CERTBOT_DIR@@/certs/live/@@CRUPEST_DOMAIN@@/privkey.pem diff --git a/services/docker/mail-server/Dockerfile b/services/docker/mail-server/Dockerfile index 7a3be9a..8ac8792 100644 --- a/services/docker/mail-server/Dockerfile +++ b/services/docker/mail-server/Dockerfile @@ -2,10 +2,10 @@ FROM denoland/deno AS deno-build COPY --from=deno . /workdir/ WORKDIR /workdir RUN deno install -RUN deno task compile:mail-relay +RUN deno task compile:mail FROM dovecot/dovecot:latest-root -COPY --from=deno-build /workdir/mail-relay/out/crupest-relay /app/ +COPY --from=deno-build /workdir/mail/out/crupest-mail /app/ ADD dovecot.conf /etc/dovecot/dovecot.conf ADD app/* /app/ CMD ["/app/main.bash"] diff --git a/services/docker/mail-server/app/main.bash b/services/docker/mail-server/app/main.bash index 70c9b75..fda36a4 100755 --- a/services/docker/mail-server/app/main.bash +++ b/services/docker/mail-server/app/main.bash @@ -7,5 +7,7 @@ die() { exit 1 } -/app/crupest-relay serve --real & +# TODO: restore this. +# /app/crupest-mail serve --real & + /dovecot/sbin/dovecot -F diff --git a/services/docker/nginx/Dockerfile b/services/docker/nginx/Dockerfile index 77398cd..3169e00 100644 --- a/services/docker/nginx/Dockerfile +++ b/services/docker/nginx/Dockerfile @@ -6,6 +6,5 @@ FROM nginx:mainline RUN apt update && apt-get install -y tini certbot && rm -rf /var/lib/apt/lists/* ADD mail-robots.txt /srv/mail/robots.txt ADD certbot.bash nginx-wrapper.bash /app/ -COPY configs/. /etc/nginx/ COPY --from=build-www /project/public /srv/www CMD ["/usr/bin/tini", "--", "/app/nginx-wrapper.bash"] diff --git a/services/docker/nginx/configs/templates/mail.conf.template b/services/docker/nginx/configs/templates/mail.conf.template deleted file mode 100644 index 5f80654..0000000 --- a/services/docker/nginx/configs/templates/mail.conf.template +++ /dev/null @@ -1,6 +0,0 @@ -server { - server_name mail.${CRUPEST_DOMAIN}; - include common/http-listen; - - include common/acme-challenge; -} diff --git a/services/docker/nginx/configs/templates/timeline.conf.template b/services/docker/nginx/configs/templates/timeline.conf.template deleted file mode 100644 index a467594..0000000 --- a/services/docker/nginx/configs/templates/timeline.conf.template +++ /dev/null @@ -1,6 +0,0 @@ -server { - server_name timeline.${CRUPEST_DOMAIN}; - include common/http-listen; - - include common/acme-challenge; -} diff --git a/services/docker/nginx/nginx-wrapper.bash b/services/docker/nginx/nginx-wrapper.bash index c848287..a4a19ec 100755 --- a/services/docker/nginx/nginx-wrapper.bash +++ b/services/docker/nginx/nginx-wrapper.bash @@ -7,10 +7,6 @@ die() { exit 1 } -[[ -n "$CRUPEST_DOMAIN" ]] || die "CRUPEST_DOMAIN is not set. It is used as root domain." -[[ -n "$CRUPEST_GITHUB" ]] || die "CRUPEST_GITHUB is not set. It is used as GitHub redirection." -[[ -n "$CRUPEST_V2RAY_PATH" ]] || die "CRUPEST_V2RAY_PATH is not set. It is used as v2ray tunnel endpoint." - /app/certbot.bash & /docker-entrypoint.sh nginx "-g" "daemon off;" diff --git a/services/templates/disabled/nginx/timeline.conf.template b/services/templates/disabled/nginx/timeline.conf.template index ce7341b..086c1f7 100644 --- a/services/templates/disabled/nginx/timeline.conf.template +++ b/services/templates/disabled/nginx/timeline.conf.template @@ -2,9 +2,9 @@ server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name timeline.@@CRUPEST_DOMAIN@@; - + location / { - include common/reverse-proxy; + include conf.d/common/reverse-proxy; proxy_pass http://timeline:5000/; } @@ -16,6 +16,6 @@ server { listen [::]:80; server_name timeline.@@CRUPEST_DOMAIN@@; - include common/https-redirect; - include common/acme-challenge; + include conf.d/common/https-redirect; + include conf.d/common/acme-challenge; } diff --git a/services/templates/docker-compose.yaml.template b/services/templates/docker-compose.yaml.template index a48d529..f9ea0dc 100644 --- a/services/templates/docker-compose.yaml.template +++ b/services/templates/docker-compose.yaml.template @@ -15,16 +15,48 @@ services: env_file: - "./@@CRUPEST_GENERATED_DIR@@/envs/nginx.env" - "./@@CRUPEST_GENERATED_DIR@@/envs/v2ray-common.env" + - "./@@CRUPEST_GENERATED_DIR@@/envs/mail-server-common.env" volumes: + - "./@@CRUPEST_GENERATED_DIR@@/nginx:/etc/nginx/conf.d" - "./@@CRUPEST_DATA_CERTBOT_DIR@@/certs:/etc/letsencrypt" - "./@@CRUPEST_DATA_CERTBOT_DIR@@/data:/var/lib/letsencrypt" - - "./@@CRUPEST_DATA_CERTBOT_DIR@@/webroot:/srv/acme:ro" - "./@@CRUPEST_DATA_CERTBOT_DIR@@/webroot:/var/www/certbot" networks: default: ipv4_address: "172.21.5.2" restart: "on-failure:3" + mail-server: + pull_policy: build + build: + context: "./@@CRUPEST_DOCKER_DIR@@/mail-server" + additional_contexts: + - "deno=./deno" + dockerfile: Dockerfile + pull: true + container_name: mail-server + hostname: mail + domainname: "@@CRUPEST_DOMAIN@@" + env_file: + - "./@@CRUPEST_GENERATED_DIR@@/envs/mail-server-common.env" + - "./@@CRUPEST_GENERATED_DIR@@/envs/mail-server.env" + ports: + - "143:143" # IMAP4 (explicit TLS => STARTTLS) + - "993:993" # IMAP4 (implicit TLS) + - "587:587" # ESMTP (explicit TLS => STARTTLS) + - "465:465" # ESMTP (implicit TLS) + - "4190:4190" # manage sieve protocol + volumes: + - "./@@CRUPEST_DATA_MAIL_SERVER_DIR@@:/data" + - "./@@CRUPEST_SSL_FULLCHAIN_FILE@@:/etc/dovecot/ssl/tls.crt" + - "./@@CRUPEST_SSL_PRIVATE_KEY_FILE@@:/etc/dovecot/ssl/tls.key" + - "/etc/localtime:/etc/localtime:ro" + networks: + default: + ipv4_address: "172.21.5.3" + restart: "on-failure:3" + stop_grace_period: 1m + git-server: pull_policy: build build: @@ -38,7 +70,24 @@ services: - "./@@CRUPEST_DATA_GIT_DIR@@:/git" networks: default: - ipv4_address: "172.21.5.3" + ipv4_address: "172.21.5.4" + restart: on-failure:3 + + roundcubemail: + image: "roundcube/roundcubemail" + pull_policy: always + hostname: roundcubemail + env_file: + - "./@@CRUPEST_GENERATED_DIR@@/envs/roundcubemail.env" + volumes: + - "./@@CRUPEST_GENERATED_DIR@@/my-roundcube.inc.php:/var/roundcube/config/my-roundcube.inc.php" + - "./@@CRUPEST_DATA_SECRET_DIR@@/gnupg:/var/roundcube/enigma" + - "./@@CRUPEST_DATA_ROUNDCUBE_DIR@@/www/html:/var/www/html" + - "./@@CRUPEST_DATA_ROUNDCUBE_DIR@@/db:/var/roundcube/db" + - "roundcubemail-temp:/tmp/roundcube-temp" + networks: + default: + ipv4_address: "172.21.5.5" restart: on-failure:3 v2ray: @@ -53,7 +102,7 @@ services: - "./@@CRUPEST_GENERATED_DIR@@/envs/v2ray.env" networks: default: - ipv4_address: "172.21.5.5" + ipv4_address: "172.21.5.6" restart: "on-failure:3" auto-backup: @@ -69,6 +118,9 @@ services: - "./data/auto-backup:/data/auto-backup" restart: "on-failure:3" +volumes: + roundcubemail-temp: + networks: default: enable_ipv6: false diff --git a/services/templates/envs/mail-server-common.env.template b/services/templates/envs/mail-server-common.env.template new file mode 100644 index 0000000..d2b2c58 --- /dev/null +++ b/services/templates/envs/mail-server-common.env.template @@ -0,0 +1 @@ +CRUPEST_MAIL_SERVER_MAILEROO_INBOUND_PATH=@@CRUPEST_MAIL_SERVER_MAILEROO_INBOUND_PATH@@ diff --git a/services/templates/envs/mail-server.env.template b/services/templates/envs/mail-server.env.template new file mode 100644 index 0000000..0aa7ab6 --- /dev/null +++ b/services/templates/envs/mail-server.env.template @@ -0,0 +1,6 @@ +CRUPEST_MAIL_SERVER_MAIL_DOMAIN=@@CRUPEST_DOMAIN@@ +CRUPEST_MAIL_SERVER_DATA_PATH=/data/crupest-relay/ +CRUPEST_MAIL_SERVER_INBOUND_FALLBACK=crupest@crupest.life +CRUPEST_MAIL_SERVER_MAILEROO_INBOUND_KEY=@@CRUPEST_MAIL_SERVER_MAILEROO_INBOUND_KEY@@ +CRUPEST_MAIL_SERVER_MAILEROO_USER=@@CRUPEST_MAIL_SERVER_MAILEROO_USER@@ +CRUPEST_MAIL_SERVER_MAILEROO_PASSWORD=@@CRUPEST_MAIL_SERVER_MAILEROO_PASSWORD@@ diff --git a/services/templates/envs/roundcubemail.env.template b/services/templates/envs/roundcubemail.env.template new file mode 100644 index 0000000..4297b82 --- /dev/null +++ b/services/templates/envs/roundcubemail.env.template @@ -0,0 +1,6 @@ +ROUNDCUBEMAIL_DEFAULT_HOST=ssl://@@CRUPEST_MAIL_SERVER_DOMAIN@@ +ROUNDCUBEMAIL_DEFAULT_PORT=993 +ROUNDCUBEMAIL_SMTP_SERVER=ssl://@@CRUPEST_MAIL_SERVER_DOMAIN@@ +ROUNDCUBEMAIL_SMTP_PORT=465 +ROUNDCUBEMAIL_DB_TYPE=sqlite +ROUNDCUBEMAIL_PLUGINS=archive,enigma,jqueryui,newmail_notifier,show_additional_headers,userinfo,zipdownload,managesieve diff --git a/services/templates/my-roundcube.inc.php b/services/templates/my-roundcube.inc.php new file mode 100644 index 0000000..c07aff9 --- /dev/null +++ b/services/templates/my-roundcube.inc.php @@ -0,0 +1,3 @@ +<?php + +$config['managesieve_host'] = 'tls://%h'; diff --git a/services/docker/nginx/configs/common/acme-challenge b/services/templates/nginx/common/acme-challenge index 26054b8..8280cd8 100644 --- a/services/docker/nginx/configs/common/acme-challenge +++ b/services/templates/nginx/common/acme-challenge @@ -1,3 +1,3 @@ location /.well-known/acme-challenge { - root /srv/acme; + root /var/www/certbot; } diff --git a/services/docker/nginx/configs/common/http-listen b/services/templates/nginx/common/http-listen index 76cb18d..76cb18d 100644 --- a/services/docker/nginx/configs/common/http-listen +++ b/services/templates/nginx/common/http-listen diff --git a/services/docker/nginx/configs/common/https-listen b/services/templates/nginx/common/https-listen index db2f68e..db2f68e 100644 --- a/services/docker/nginx/configs/common/https-listen +++ b/services/templates/nginx/common/https-listen diff --git a/services/docker/nginx/configs/common/https-redirect b/services/templates/nginx/common/https-redirect index 56d095d..56d095d 100644 --- a/services/docker/nginx/configs/common/https-redirect +++ b/services/templates/nginx/common/https-redirect diff --git a/services/docker/nginx/configs/common/proxy-common b/services/templates/nginx/common/reverse-proxy index 4193548..4193548 100644 --- a/services/docker/nginx/configs/common/proxy-common +++ b/services/templates/nginx/common/reverse-proxy diff --git a/services/docker/nginx/configs/conf.d/default.conf b/services/templates/nginx/default.conf index 515942b..515942b 100644 --- a/services/docker/nginx/configs/conf.d/default.conf +++ b/services/templates/nginx/default.conf diff --git a/services/templates/nginx/mail.conf.template b/services/templates/nginx/mail.conf.template new file mode 100644 index 0000000..ebb9f46 --- /dev/null +++ b/services/templates/nginx/mail.conf.template @@ -0,0 +1,29 @@ +server { + server_name mail.@@CRUPEST_DOMAIN@@; + include conf.d/common/https-listen; + + location = /robots.txt { + root /srv/mail; + } + + location = /@@CRUPEST_MAIL_SERVER_MAILEROO_INBOUND_PATH@@ { + include conf.d/common/reverse-proxy; + proxy_pass http://mail-server:2345/@@CRUPEST_MAIL_SERVER_MAILEROO_INBOUND_PATH@@; + } + + location / { + include conf.d/common/reverse-proxy; + proxy_pass http://roundcubemail:80/; + } + + client_max_body_size 5G; +} + + +server { + server_name mail.@@CRUPEST_DOMAIN@@; + include conf.d/common/http-listen; + + include conf.d/common/https-redirect; + include conf.d/common/acme-challenge; +} diff --git a/services/docker/nginx/configs/templates/root.conf.template b/services/templates/nginx/root.conf.template index 4cc9a51..7a56982 100644 --- a/services/docker/nginx/configs/templates/root.conf.template +++ b/services/templates/nginx/root.conf.template @@ -1,23 +1,23 @@ server { - server_name ${CRUPEST_DOMAIN}; - include common/https-listen; + server_name @@CRUPEST_DOMAIN@@; + include conf.d/common/https-listen; location / { root /srv/www; } location /git/ { - include common/proxy-common; + include conf.d/common/reverse-proxy; client_max_body_size 5G; proxy_pass http://git-server:3636; } location = /github { - return 301 ${CRUPEST_GITHUB}; + return 301 @@CRUPEST_GITHUB@@; } location = /github/ { - return 301 ${CRUPEST_GITHUB}; + return 301 @@CRUPEST_GITHUB@@; } location /_${CRUPEST_V2RAY_PATH} { @@ -26,15 +26,15 @@ server { } proxy_redirect off; - include common/proxy-common; + include conf.d/common/reverse-proxy; proxy_pass http://v2ray:10000; } } server { - server_name ${CRUPEST_DOMAIN}; - include common/http-listen; + server_name @@CRUPEST_DOMAIN@@; + include conf.d/common/http-listen; - include common/https-redirect; - include common/acme-challenge; + include conf.d/common/https-redirect; + include conf.d/common/acme-challenge; } diff --git a/services/docker/nginx/configs/templates/ssl.conf.template b/services/templates/nginx/ssl.conf.template index 54205f1..181a1af 100644 --- a/services/docker/nginx/configs/templates/ssl.conf.template +++ b/services/templates/nginx/ssl.conf.template @@ -4,8 +4,8 @@ # the up-to-date file that you will need to refer to when manually updating # this file. Contents are based on https://ssl-config.mozilla.org -ssl_certificate /etc/letsencrypt/live/${CRUPEST_DOMAIN}/fullchain.pem; -ssl_certificate_key /etc/letsencrypt/live/${CRUPEST_DOMAIN}/privkey.pem; +ssl_certificate /etc/letsencrypt/live/@@CRUPEST_DOMAIN@@/fullchain.pem; +ssl_certificate_key /etc/letsencrypt/live/@@CRUPEST_DOMAIN@@/privkey.pem; ssl_session_cache shared:le_nginx_SSL:10m; ssl_session_timeout 1440m; diff --git a/services/templates/nginx/timeline.conf.template b/services/templates/nginx/timeline.conf.template new file mode 100644 index 0000000..3414510 --- /dev/null +++ b/services/templates/nginx/timeline.conf.template @@ -0,0 +1,6 @@ +server { + server_name timeline.@@CRUPEST_DOMAIN@@; + include conf.d/common/http-listen; + + include conf.d/common/acme-challenge; +} diff --git a/services/docker/nginx/configs/conf.d/websocket.conf b/services/templates/nginx/websocket.conf index 32af4c3..32af4c3 100644 --- a/services/docker/nginx/configs/conf.d/websocket.conf +++ b/services/templates/nginx/websocket.conf diff --git a/store/config/home/gitconfig b/store/config/home/gitconfig index 64dd797..4b88c56 100644 --- a/store/config/home/gitconfig +++ b/store/config/home/gitconfig @@ -1,6 +1,6 @@ [user] name = Yuqian Yang - email = crupest@outlook.com + email = crupest@crupest.life [core] autocrlf = false editor = vim diff --git a/www/layouts/home.html b/www/layouts/home.html index 1e92d96..38f7604 100644 --- a/www/layouts/home.html +++ b/www/layouts/home.html @@ -26,7 +26,7 @@ <hr /> <section> <p>Welcome to my home page! Nice to meet you here! 🥰</p> - <p>Feel free to contact me via my email address <a href="mailto:crupest@outlook.com">crupest@outlook.com</a>, + <p>Feel free to contact me via my email address <a href="mailto:crupest@crupest.life">crupest@crupest.life</a>, or just create an issue in any of my <a rel="noopener noreferrer" href="https://github.com/crupest">GitHub</a> repos. I love talking with people a lot.</p> <div id="links" class="mono-link"> |