dotfiles/nixos/boxes/vpsfree1/woodpecker.nix

75 lines
1.8 KiB
Nix
Raw Normal View History

2022-12-19 09:09:08 +00:00
{
config,
pkgs,
inputs,
lib,
...
}: let
2022-11-08 13:46:08 +00:00
httpPort = 8000;
2022-11-08 16:13:33 +00:00
agentPort = 9000;
2022-11-08 13:46:08 +00:00
domain = "ci.cyplo.dev";
2022-12-02 21:34:38 +00:00
path = "/var/lib/woodpecker";
serverContainerName = "woodpecker-server";
uid = 2061;
gid = 3061;
systemUserName = "woodpecker";
systemGroupName = "woodpecker";
2022-11-08 16:13:33 +00:00
in {
2022-12-19 09:09:08 +00:00
imports = [../nginx.nix];
2022-11-08 13:46:08 +00:00
users = {
users."${systemUserName}" = {
inherit uid;
isSystemUser = true;
isNormalUser = false;
group = systemGroupName;
extraGroups = ["podman"];
};
groups."${systemGroupName}" = {
inherit gid;
members = ["${systemUserName}"];
};
};
2022-11-08 13:46:08 +00:00
services.nginx = {
virtualHosts = {
"${domain}" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://localhost:" + toString httpPort;
};
};
};
};
sops.secrets."gitea-env" = {
sopsFile = ./gitea.sops;
format = "binary";
};
virtualisation.podman = {
enable = true;
defaultNetwork.dnsname.enable = true;
};
networking.firewall.allowedTCPPorts = [agentPort];
2022-12-04 13:46:47 +00:00
virtualisation.oci-containers.containers = {
"${serverContainerName}" = {
2022-12-27 21:56:18 +00:00
image = "woodpeckerci/woodpecker-server@sha256:acb188797f93b1b9228415b4418b8b8d2153df2e21f8c0c561a893243a542439";
2022-12-19 09:09:08 +00:00
volumes = ["woodpecker-server-data:${path}"];
environmentFiles = ["${config.sops.secrets.gitea-env.path}"];
2022-12-04 13:46:47 +00:00
environment = {
WOODPECKER_OPEN = "false";
WOODPECKER_ADMIN = "cyplo";
WOODPECKER_HOST = "https://${domain}";
WOODPECKER_GITEA = "true";
WOODPECKER_GITEA_URL = "https://git.cyplo.dev";
};
ports = [
"${toString httpPort}:${toString httpPort}"
"${toString agentPort}:${toString agentPort}"
];
};
};
2022-11-08 13:46:08 +00:00
}