aboutsummaryrefslogtreecommitdiff
path: root/infra/Caddyfile
diff options
context:
space:
mode:
authorDoan Luu Duc Tai <doan@luuduct.ai>2026-10-30 22:36:11 -0500
committerDoan Luu Duc Tai <doan@luuduct.ai>2026-10-30 22:36:11 -0500
commit6933ec28be3dac0dc17cd634c663db3b4818caad (patch)
tree22690260136d598d2719d97deb169b847b31424c /infra/Caddyfile
parentc3b361c45ac8dd898d5c83a161abed5fc138b6c0 (diff)
Centralize deployment settings in the root environment file
Document public domains, ports, upstreams, chat binding, and backup defaults alongside private settings. Validate shared configuration and render Caddy, cgit, and website links from an explicit public allowlist while preserving one installation environment file.
Diffstat (limited to 'infra/Caddyfile')
-rw-r--r--infra/Caddyfile45
1 files changed, 25 insertions, 20 deletions
diff --git a/infra/Caddyfile b/infra/Caddyfile
index 3146529..424e129 100644
--- a/infra/Caddyfile
+++ b/infra/Caddyfile
@@ -13,11 +13,16 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
+{
+ http_port {{HTTP_PORT}}
+ https_port {{HTTPS_PORT}}
+}
+
(https_security) {
header >Strict-Transport-Security "max-age=31536000"
}
-luuduct.ai {
+https://{{BASE_DOMAIN}}:{{HTTPS_PORT}} {
import https_security
handle /.well-known/openpgpkey/* {
root * /srv
@@ -26,16 +31,16 @@ luuduct.ai {
}
handle {
- redir https://doan.luuduct.ai{uri} permanent
+ redir {{SITE_ORIGIN}}{uri} permanent
}
}
-www.luuduct.ai {
+https://www.{{BASE_DOMAIN}}:{{HTTPS_PORT}} {
import https_security
- redir https://doan.luuduct.ai{uri} permanent
+ redir {{SITE_ORIGIN}}{uri} permanent
}
-doan.luuduct.ai {
+https://{{SITE_HOST}}:{{HTTPS_PORT}} {
import https_security
root * /srv
file_server
@@ -43,15 +48,15 @@ doan.luuduct.ai {
redir /git /git/
handle /cgit* {
- reverse_proxy cgit:8080
+ reverse_proxy {{CGIT_UPSTREAM}}
}
handle /git/* {
- reverse_proxy cgit:8080
+ reverse_proxy {{CGIT_UPSTREAM}}
}
}
-openpgpkey.luuduct.ai {
+https://{{WKD_HOST}}:{{HTTPS_PORT}} {
import https_security
handle /.well-known/openpgpkey/* {
root * /srv
@@ -60,34 +65,34 @@ openpgpkey.luuduct.ai {
}
}
-git.doan.luuduct.ai {
+https://{{GIT_HOST}}:{{HTTPS_PORT}} {
import https_security
redir /{path}.git /{path} permanent
- reverse_proxy cgit:8080
+ reverse_proxy {{CGIT_UPSTREAM}}
}
-search.doan.luuduct.ai {
+https://{{SEARCH_HOST}}:{{HTTPS_PORT}} {
import https_security
- reverse_proxy searxng:8080
+ reverse_proxy {{SEARXNG_UPSTREAM}}
}
-www.doan.luuduct.ai {
+https://www.{{SITE_HOST}}:{{HTTPS_PORT}} {
import https_security
- redir https://doan.luuduct.ai{uri} permanent
+ redir {{SITE_ORIGIN}}{uri} permanent
}
-www.git.doan.luuduct.ai {
+https://www.{{GIT_HOST}}:{{HTTPS_PORT}} {
import https_security
- redir https://git.doan.luuduct.ai{uri} permanent
+ redir {{GIT_ORIGIN}}{uri} permanent
}
-www.search.doan.luuduct.ai {
+https://www.{{SEARCH_HOST}}:{{HTTPS_PORT}} {
import https_security
- redir https://search.doan.luuduct.ai{uri} permanent
+ redir {{SEARCH_ORIGIN}}{uri} permanent
}
-www.openpgpkey.luuduct.ai {
+https://www.{{WKD_HOST}}:{{HTTPS_PORT}} {
import https_security
- redir https://openpgpkey.luuduct.ai{uri} permanent
+ redir {{WKD_ORIGIN}}{uri} permanent
}