diff options
| author | Doan Luu Duc Tai <doan@luuduct.ai> | 2026-10-30 14:00:58 -0500 |
|---|---|---|
| committer | Doan Luu Duc Tai <doan@luuduct.ai> | 2026-10-30 14:00:58 -0500 |
| commit | 19a0280d7dabd4ca637d8070cc7d3691a0e85bd1 (patch) | |
| tree | de4591ed54ef860f04dd88bb3aae51dee51237a7 /infra/Caddyfile | |
| parent | 006a1e94075e90fccfe248cd66bf7d0586a86279 (diff) | |
Manage the portable stack with Rust and rootless Podman
Diffstat (limited to 'infra/Caddyfile')
| -rw-r--r-- | infra/Caddyfile | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/infra/Caddyfile b/infra/Caddyfile new file mode 100644 index 0000000..3146529 --- /dev/null +++ b/infra/Caddyfile @@ -0,0 +1,93 @@ +# Copyright (C) 2026 Doan Luu Duc Tai <doan@luuduct.ai> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# 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/>. + +(https_security) { + header >Strict-Transport-Security "max-age=31536000" +} + +luuduct.ai { + import https_security + handle /.well-known/openpgpkey/* { + root * /srv + header Content-Type application/octet-stream + file_server + } + + handle { + redir https://doan.luuduct.ai{uri} permanent + } +} + +www.luuduct.ai { + import https_security + redir https://doan.luuduct.ai{uri} permanent +} + +doan.luuduct.ai { + import https_security + root * /srv + file_server + + redir /git /git/ + + handle /cgit* { + reverse_proxy cgit:8080 + } + + handle /git/* { + reverse_proxy cgit:8080 + } +} + +openpgpkey.luuduct.ai { + import https_security + handle /.well-known/openpgpkey/* { + root * /srv + header Content-Type application/octet-stream + file_server + } +} + +git.doan.luuduct.ai { + import https_security + redir /{path}.git /{path} permanent + + reverse_proxy cgit:8080 +} + +search.doan.luuduct.ai { + import https_security + reverse_proxy searxng:8080 +} + +www.doan.luuduct.ai { + import https_security + redir https://doan.luuduct.ai{uri} permanent +} + +www.git.doan.luuduct.ai { + import https_security + redir https://git.doan.luuduct.ai{uri} permanent +} + +www.search.doan.luuduct.ai { + import https_security + redir https://search.doan.luuduct.ai{uri} permanent +} + +www.openpgpkey.luuduct.ai { + import https_security + redir https://openpgpkey.luuduct.ai{uri} permanent +} |
