{ config, lib, pkgs, ... }: with lib; let in { config = { modules = { services = { forgejo = { enable = true; domain = "git.reidlab.online"; port = 3000; }; metrics = { enable = false; domain = "metrics.reidlab.online"; port = 2342; }; # you should probably keep this on # configures acme, gzip, optimization, proxy, and ssl config # opens ports and adds some Headers nginx-config = { enable = true; defaultLuaPackagePath = /var/www/reidlab.online/lua; }; staticSites = { "v2.reidlab.online".dataDir = "/var/www/v2.reidlab.online"; }; }; }; services = { nginx.virtualHosts = { "reidlab.online" = { forceSSL = true; enableACME = true; root = "/var/www/reidlab.online/public"; extraConfig = '' error_page 404 /errors/404.html; error_page 403 /errors/403.html; error_page 500 /errors/500.html; location = /errors/404.html { root /var/www/reidlab.online/public/; internal; } location = /errors/403.html { root /var/www/reidlab.online/public/; internal; } location = /errors/500.html { root /var/www/reidlab.online/public/; internal; } location / { try_files $uri @main; } location /chat { access_by_lua_file /var/www/reidlab.online/lua/chat.lua; } location @main { content_by_lua ' require("main").handle_request() '; } ''; }; }; }; }; }