Compare commits
	
		
			3 Commits 
		
	
	
		
			62d3a137b2
			...
			e4ac56d530
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | e4ac56d530 | |
|  | b9532ad6e8 | |
|  | 52ce8f5611 | 
|  | @ -1,6 +1,12 @@ | |||
| { | ||||
|   "cSpell.words": [ | ||||
|     "Aeson", | ||||
|     "axios", | ||||
|     "dhall", | ||||
|     "HLINT", | ||||
|     "jquery", | ||||
|     "pandoc", | ||||
|     "photoframe" | ||||
|     "photoframe", | ||||
|     "unrecognised" | ||||
|   ] | ||||
| } | ||||
|  | @ -11,6 +11,8 @@ | |||
| 
 | ||||
|     ./fancytypist.com.nix | ||||
|     ./hydra.fancyTypist.com.nix | ||||
| 
 | ||||
|     ./woodpecker.fancyTypist.dev.nix | ||||
|   ]; | ||||
| 
 | ||||
|   # when in doubt, clear away the certs with | ||||
|  |  | |||
|  | @ -35,18 +35,18 @@ in | |||
|         ''; | ||||
|       }; | ||||
| 
 | ||||
|       "fancytypist.dev" = { | ||||
|         serverAliases = [ "www.fancytypist.dev" ]; | ||||
|         extraConfig = '' | ||||
|           reverse_proxy ${HOST}:${toString PORT} | ||||
|         ''; | ||||
|       }; | ||||
|       # "fancytypist.dev" = { | ||||
|       #   serverAliases = [ "www.fancytypist.dev" ]; | ||||
|       #   extraConfig = '' | ||||
|       #     reverse_proxy ${HOST}:${toString PORT} | ||||
|       #   ''; | ||||
|       # }; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   systemd.services = { | ||||
|     fancyTypistDotDev-site = { | ||||
|       enable = true; | ||||
|       enable = false; | ||||
|       description = "The Haskell Servant executable server that hosts my FancyTypist.dev site."; | ||||
|       path = with pkgs; [ nix git ]; | ||||
|       script = '' | ||||
|  |  | |||
|  | @ -0,0 +1,68 @@ | |||
| { config | ||||
| , ... | ||||
| }: | ||||
| let | ||||
|   domain = "woodpecker.fancyTypist.dev"; | ||||
| in | ||||
| { | ||||
|   # This automatically sets up certificates via let's encrypt | ||||
|   # security.acme.defaults.email = "admin@fancytypist.dev"; | ||||
|   # security.acme.acceptTerms = true; | ||||
|   # security.acme.certs."${domain}" = { }; | ||||
| 
 | ||||
|   # Setting up a nginx proxy that handles tls for us | ||||
|   networking.firewall.allowedTCPPorts = [ 80 443 ]; | ||||
|   services.nginx = { | ||||
|     enable = true; | ||||
|     recommendedTlsSettings = true; | ||||
|     recommendedOptimisation = true; | ||||
|     recommendedProxySettings = true; | ||||
|     virtualHosts."${domain}" = { | ||||
|       enableACME = true; | ||||
|       forceSSL = true; | ||||
|       locations."/" = { | ||||
|         proxyPass = "http://localhost:3007"; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   services.woodpecker-server = { | ||||
|     enable = true; | ||||
|     environment = { | ||||
|       WOODPECKER_HOST = "https://${domain}"; | ||||
|       WOODPECKER_SERVER_ADDR = ":3007"; | ||||
|       WOODPECKER_OPEN = "true"; | ||||
|     }; | ||||
|     # You can pass a file with env vars to the system it could look like: | ||||
|     # WOODPECKER_AGENT_SECRET=XXXXXXXXXXXXXXXXXXXXXX | ||||
|     # environmentFile = "/path/to/my/secrets/file"; | ||||
|   }; | ||||
| 
 | ||||
|   # This sets up a woodpecker agent | ||||
|   services.woodpecker-agents.agents."docker" = { | ||||
|     enable = true; | ||||
|     # We need this to talk to the podman socket | ||||
|     extraGroups = [ "podman" ]; | ||||
|     environment = { | ||||
|       WOODPECKER_SERVER = "localhost:9000"; | ||||
|       WOODPECKER_MAX_WORKFLOWS = "4"; | ||||
|       DOCKER_HOST = "unix:///run/podman/podman.sock"; | ||||
|       WOODPECKER_BACKEND = "docker"; | ||||
|     }; | ||||
|     # Same as with woodpecker-server | ||||
|     # environmentFile = [ "/var/lib/secrets/woodpecker.env" ]; | ||||
|   }; | ||||
| 
 | ||||
|   # Here we setup podman and enable dns | ||||
|   virtualisation.podman = { | ||||
|     enable = true; | ||||
|     defaultNetwork.settings = { | ||||
|       dns_enabled = true; | ||||
|     }; | ||||
|   }; | ||||
|   # This is needed for podman to be able to talk over dns | ||||
|   networking.firewall.interfaces."podman0" = { | ||||
|     allowedUDPPorts = [ 53 ]; | ||||
|     allowedTCPPorts = [ 53 ]; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
		Reference in New Issue