unoffical wafrn mirror wafrn.net
atproto social-network activitypub
at development 120 lines 3.4 kB view raw
1{ 2 email ${{ACME_EMAIL}} 3 4 log { 5 6 } 7 8 metrics { 9 per_host 10 } 11 12 admin 0.0.0.0:2019 13 14 on_demand_tls { 15 ask http://${{PDS_HOST:-pds:3000}}/tls-check 16 } 17 18 import /etc/caddy/config/global/* ${{DOMAIN_NAME}} 19} 20 21${{MEDIA_DOMAIN}} { 22 import /etc/caddy/config/media_domain_pre/* ${{DOMAIN_NAME}} ${{MEDIA_DOMAIN}} 23 24 handle { 25 root * /var/www/html/uploads/ 26 try_files {path} /index.html 27 file_server 28 } 29 30 import /etc/caddy/config/media_domain_post/* ${{DOMAIN_NAME}} ${{MEDIA_DOMAIN}} 31} 32 33${{CACHE_DOMAIN}} { 34 import /etc/caddy/config/cache_domain_pre/* ${{DOMAIN_NAME}} ${{CACHE_DOMAIN}} 35 36 handle /api/cache* { 37 reverse_proxy ${{CACHE_HOST:-backend:9000}} 38 } 39 40 handle /api/v2/cache/* { 41 reverse_proxy ${{CACHE_HOST:-backend:9000}} 42 } 43 44 import /etc/caddy/config/cache_domain_post/* ${{DOMAIN_NAME}} ${{CACHE_DOMAIN}} 45} 46 47${{DOMAIN_NAME}} { 48 encode zstd gzip 49 50 import /etc/caddy/config/main_domain_pre/* ${{DOMAIN_NAME}} 51 52 header * { 53 X-Clacks-Overhead "GNU Terry Pratchett" 54 Service-Worker-Allowed: "/", 55 # Cache-Control: no-cache, no-store, must-revalidate 56 Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' blob: data: https://${{CACHE_DOMAIN}} https://${{MEDIA_DOMAIN}} ; script-src 'self' 'unsafe-inline' 'unsafe-eval'; script-src-elem 'self' 'unsafe-inline' 'unsafe-eval'; script-src-attr 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' data: 'unsafe-inline'; style-src-elem 'self' data: 'unsafe-inline'; style-src-attr 'self' data: 'unsafe-inline'; object-src 'self' https://${{CACHE_DOMAIN}} https://${{MEDIA_DOMAIN}} ; frame-src 'self' https://${{CACHE_DOMAIN}} https://${{MEDIA_DOMAIN}}; worker-src 'self'; frame-ancestors 'self'; upgrade-insecure-requests; block-all-mixed-content; manifest-src 'self'" 57 } 58 59 @atPaths path_regexp at ^/@(.*)$ 60 redir @atPaths /fediverse/blog/{re.at.1} 301 61 62 handle_path /api/websocket* { 63 reverse_proxy ${{WEBSOCKET_HOST:-backend:9000}} 64 } 65 66 @api path /api* /fediverse* /contexts* /post* /blog* /.well-known* 67 68 handle @api { 69 reverse_proxy ${{BACKEND_HOST:-backend:9000}} 70 } 71 72 73 handle_path /adminer* { 74 reverse_proxy ${{ADMINER_HOST:-adminer:8080}} 75 } 76 77 import /etc/caddy/config/main_domain_mid/* ${{DOMAIN_NAME}} 78 79 handle { 80 root * /var/www/html/frontend/ 81 try_files {path} /index.html 82 file_server 83 } 84 85 import /etc/caddy/config/main_domain_post/* ${{DOMAIN_NAME}} 86} 87 88monitoring.${{DOMAIN_NAME}} { 89 import /etc/caddy/config/monitoring_domain_pre/* ${{DOMAIN_NAME}} 90 91 reverse_proxy ${{GRAFANA_HOST:-grafana:2345}} 92 93 import /etc/caddy/config/monitoring_domain_post/* ${{DOMAIN_NAME}} 94} 95 96${{PDS_DOMAIN_NAME}} *.${{PDS_DOMAIN_NAME}} { 97 import /etc/caddy/config/pds_domain_pre/* ${{DOMAIN_NAME}} ${{PDS_DOMAIN_NAME}} 98 99 tls { 100 on_demand 101 } 102 103 handle /favicon.ico { 104 root * /var/www/html/frontend/ 105 try_files {path} /favicon.ico 106 file_server 107 } 108 109 handle / { 110 root * /pds-homepage 111 try_files {path} /pds.txt 112 file_server 113 } 114 115 reverse_proxy ${{PDS_HOST:-pds:3000}} 116 117 import /etc/caddy/config/pds_domain_post/* ${{DOMAIN_NAME}} ${{PDS_DOMAIN_NAME}} 118} 119 120import /etc/caddy/config/vhosts/* ${{DOMAIN_NAME}}