Remove legit container; Remove Hydra; setup GitLab; setup GitLab runner; add GitLab CI definitions
This commit is contained in:
parent
18d718a870
commit
c34c7ca635
19
.gitlab-ci.yml
Normal file
19
.gitlab-ci.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
stages:
|
||||||
|
- generate
|
||||||
|
- check
|
||||||
|
|
||||||
|
generate-flake-ci:
|
||||||
|
stage: generate
|
||||||
|
before_script:
|
||||||
|
script: nix run "git+https://git.eversole.co/james/flake-to-gitlab-ci" > flake-ci.yml
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- flake-ci.yml
|
||||||
|
|
||||||
|
flake-ci:
|
||||||
|
stage: check
|
||||||
|
trigger:
|
||||||
|
include:
|
||||||
|
- artifact: flake-ci.yml
|
||||||
|
job: generate-flake-ci
|
||||||
|
strategy: depend
|
@ -1,8 +1,28 @@
|
|||||||
{ config, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
{
|
{
|
||||||
virtualisation.oci-containers = {
|
virtualisation.oci-containers = {
|
||||||
containers = {
|
containers = {
|
||||||
|
|
||||||
|
gitlab = {
|
||||||
|
image = "gitlab/gitlab-ce:latest";
|
||||||
|
ports = [ "26616:80" "26617:22" ];
|
||||||
|
volumes = [
|
||||||
|
"/home/sezycei/srv/containerdata/gitlab/config:/etc/gitlab"
|
||||||
|
"/home/sezycei/srv/containerdata/gitlab/log:/var/log/gitlab"
|
||||||
|
"/home/sezycei/srv/containerdata/gitlab/data:/var/opt/gitlab"
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
GITLAB_OMNIBUS_CONFIG = ''
|
||||||
|
external_url 'https://git.eversole.co'
|
||||||
|
nginx['listen_port'] = 80
|
||||||
|
nginx['listen_https'] = false
|
||||||
|
gitlab_rails['gitlab_shell_ssh_port'] = 26617
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# gitlab-runner = a service definition in this file.
|
||||||
|
|
||||||
jellyfin = {
|
jellyfin = {
|
||||||
image = "linuxserver/jellyfin";
|
image = "linuxserver/jellyfin";
|
||||||
ports = [ "127.0.0.1:8096:8096" "127.0.0.1:8920:8920" ];
|
ports = [ "127.0.0.1:8096:8096" "127.0.0.1:8920:8920" ];
|
||||||
@ -22,18 +42,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
legit = {
|
|
||||||
image = "docker.matri.cx/legit";
|
|
||||||
ports = [ "127.0.0.1:5121:8080" ];
|
|
||||||
volumes = [
|
|
||||||
"/home/sezycei/srv/containerdata/legit/static:/static"
|
|
||||||
"/home/sezycei/srv/containerdata/legit/templates:/templates"
|
|
||||||
"/home/sezycei/srv/containerdata/legit/legit.yml:/legit.yml"
|
|
||||||
"/home/sezycei/srv/containerdata/legit/repos:/var/www/git"
|
|
||||||
];
|
|
||||||
environment = { };
|
|
||||||
};
|
|
||||||
|
|
||||||
murmur = {
|
murmur = {
|
||||||
image = "goofball222/murmur";
|
image = "goofball222/murmur";
|
||||||
ports = [ "127.0.0.1:64738:64738" "127.0.0.1:64738:64738/udp" ];
|
ports = [ "127.0.0.1:64738:64738" "127.0.0.1:64738:64738/udp" ];
|
||||||
@ -81,4 +89,46 @@
|
|||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.gitlab-runner = {
|
||||||
|
enable = true;
|
||||||
|
services = {
|
||||||
|
nix = with lib; {
|
||||||
|
registrationConfigFile = toString /run/agenix/gitlab-runner;
|
||||||
|
dockerImage = "alpine";
|
||||||
|
dockerVolumes = [
|
||||||
|
"/nix/store:/nix/store:ro"
|
||||||
|
"/nix/var/nix/db:/nix/var/nix/db:ro"
|
||||||
|
"/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro"
|
||||||
|
];
|
||||||
|
preBuildScript = pkgs.writeScript "setup-container" ''
|
||||||
|
mkdir -p -m 0755 /nix/var/log/nix/drvs
|
||||||
|
mkdir -p -m 0755 /nix/var/nix/gcroots
|
||||||
|
mkdir -p -m 0755 /nix/var/nix/profiles
|
||||||
|
mkdir -p -m 0755 /nix/var/nix/temproots
|
||||||
|
mkdir -p -m 0755 /nix/var/nix/userpool
|
||||||
|
mkdir -p -m 1777 /nix/var/nix/gcroots/per-user
|
||||||
|
mkdir -p -m 1777 /nix/var/nix/profiles/per-user
|
||||||
|
mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root
|
||||||
|
mkdir -p -m 0700 "$HOME/.nix-defexpr"
|
||||||
|
. ${pkgs.nix}/etc/profile.d/nix-daemon.sh
|
||||||
|
${pkgs.nix}/bin/nix-channel --add https://nixos.org/channels/nixos-23.05 nixpkgs
|
||||||
|
${pkgs.nix}/bin/nix-channel --update nixpkgs
|
||||||
|
${pkgs.nix}/bin/nix-env -i ${concatStringsSep " " (with pkgs; [ nix cacert git openssh ])}
|
||||||
|
# Config
|
||||||
|
mkdir -p "$HOME/.config/nix"
|
||||||
|
echo "experimental-features = nix-command flakes" >> "$HOME/.config/nix/nix.conf"
|
||||||
|
echo "max-jobs = 8" >> "$HOME/.config/nix/nix.conf"
|
||||||
|
echo "build-cores = 8" >> "$HOME/.config/nix/nix.conf"
|
||||||
|
'';
|
||||||
|
environmentVariables = {
|
||||||
|
ENV = "/etc/profile";
|
||||||
|
USER = "root";
|
||||||
|
NIX_REMOTE = "daemon";
|
||||||
|
PATH = "/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin";
|
||||||
|
NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
target = "http://127.0.0.1:3001";
|
target = "http://127.0.0.1:3001";
|
||||||
};
|
};
|
||||||
"eversole.co" = static { dir = "/var/www/jame.su"; };
|
"eversole.co" = static { dir = "/var/www/jame.su"; };
|
||||||
"git.eversole.co" = proxied { target = "http://127.0.0.1:5121"; };
|
"git.eversole.co" = proxied { target = "http://127.0.0.1:26616"; };
|
||||||
"graf.matri.cx" = { root = "/var/www/graf.matri.cx"; }; # refer to /monitoring/nginx.nix
|
"graf.matri.cx" = { root = "/var/www/graf.matri.cx"; }; # refer to /monitoring/nginx.nix
|
||||||
"hydra.matri.cx" = proxied {
|
"hydra.matri.cx" = proxied {
|
||||||
target = "http://127.0.0.1:3034";
|
target = "http://127.0.0.1:3034";
|
||||||
|
@ -18,19 +18,16 @@
|
|||||||
|
|
||||||
outputs = { self, nixpkgs, agenix, nix-serve-ng, ... }@attrs:
|
outputs = { self, nixpkgs, agenix, nix-serve-ng, ... }@attrs:
|
||||||
let
|
let
|
||||||
forEachSystem = nixpkgs.lib.genAttrs system;
|
forEachSystem = nixpkgs.lib.genAttrs systems;
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
shell = import ./shell.nix { inherit agenix pkgs; };
|
shell = import ./shell.nix { inherit agenix pkgs; };
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
systems = [ system ];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShell.x86_64-linux = shell.dev;
|
devShell.x86_64-linux = shell.dev;
|
||||||
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
|
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
|
||||||
|
|
||||||
hydraJobs = {
|
|
||||||
build = shell.packages.${system}.format;
|
|
||||||
};
|
|
||||||
|
|
||||||
packages = shell.packages;
|
packages = shell.packages;
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
@ -58,7 +55,6 @@
|
|||||||
./system/hardware.nix
|
./system/hardware.nix
|
||||||
./system/nix-conf.nix
|
./system/nix-conf.nix
|
||||||
./system/security.nix
|
./system/security.nix
|
||||||
./system/build-services.nix
|
|
||||||
./system/system.nix
|
./system/system.nix
|
||||||
./system/virtualisation.nix
|
./system/virtualisation.nix
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
"secrets/cache-key.age" = { publicKeys = all; };
|
"secrets/cache-key.age" = { publicKeys = all; };
|
||||||
|
"secrets/gitlab-runner.age" = { publicKeys = all; };
|
||||||
"secrets/graf-email.age" = { publicKeys = all; };
|
"secrets/graf-email.age" = { publicKeys = all; };
|
||||||
"secrets/htpasswd-dock.age" = { publicKeys = all; };
|
"secrets/htpasswd-dock.age" = { publicKeys = all; };
|
||||||
"secrets/keys.age" = { publicKeys = all; };
|
"secrets/keys.age" = { publicKeys = all; };
|
||||||
|
11
secrets/gitlab-runner.age
Normal file
11
secrets/gitlab-runner.age
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 dQ70Fw 1Y4XyvfewFemjm/3N6v2HKdO+kf3l9zWjR4gm+OL/Wo
|
||||||
|
7G5Ipgr3ZjRBpQrKWQoqLhAGYk1lwyGZBLsbiGi5eNo
|
||||||
|
-> ssh-ed25519 ZIoeGg pxNvqGCNvjT+6DrKIfZW0O28lKY7OKRtV5uvurhFWSk
|
||||||
|
fGcCiYWChBAuHJ4764adKj+btYt410oaKtfDlJzfHR4
|
||||||
|
-> A"-uU"q-grease p] \?3MHe D,
|
||||||
|
xpBFoA2Gd3mh877T3WnAvfM6eaB4QF+PXltWXWb4vD28xAZCstZX7yFJ31W/ZUW1
|
||||||
|
PcEj2vP/t4OpIRkjgBcrwi/iaaAOO4d1AH252iN9YlNVO0JJMWLcOxAB
|
||||||
|
--- ewj86Tn8VoLJ44f8q8eKrtFvDLpLVmJfhPydTDsm5VY
|
||||||
|
iräù<EFBFBD>RÔÂ>·v<ÓÉgÁxhñ>ÁØþjÓjgä
|
||||||
|
ÂYÛ ‹£˜1—)R©ìx•C¨ë2¬'<02>î¾,d﯈s(’0¶ö¸ 'ä’öd©õLIÛflÉ`g&šå—ô3ˆhÆgñAêSˆ(<28>já
|
@ -2,6 +2,7 @@
|
|||||||
age = {
|
age = {
|
||||||
secrets = {
|
secrets = {
|
||||||
cache-key.file = ../secrets/cache-key.age;
|
cache-key.file = ../secrets/cache-key.age;
|
||||||
|
gitlab-runner.file = ../secrets/gitlab-runner.age;
|
||||||
graf-email = {
|
graf-email = {
|
||||||
file = ../secrets/graf-email.age;
|
file = ../secrets/graf-email.age;
|
||||||
mode = "770";
|
mode = "770";
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
{ config, ... }: {
|
|
||||||
services = {
|
|
||||||
hydra = {
|
|
||||||
enable = true;
|
|
||||||
hydraURL = "https://hydra.matri.cx";
|
|
||||||
listenHost = "127.0.0.1";
|
|
||||||
port = 3034;
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
using_frontend_proxy = 1
|
|
||||||
base_uri = "https://hydra.matri.cx"
|
|
||||||
'';
|
|
||||||
|
|
||||||
useSubstitutes = true;
|
|
||||||
|
|
||||||
notificationSender = "hydra@matri.cx";
|
|
||||||
buildMachinesFiles = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix-serve = {
|
|
||||||
enable = true;
|
|
||||||
secretKeyFile = config.age.secrets.cache-key.path;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -28,6 +28,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
box.eversole.co {
|
||||||
|
template IN A {
|
||||||
|
answer "{{ .Name }} 0 IN A 149.28.112.101"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*.eversole.co {
|
*.eversole.co {
|
||||||
template IN A {
|
template IN A {
|
||||||
answer "{{ .Name }} 0 IN A 192.168.0.130"
|
answer "{{ .Name }} 0 IN A 192.168.0.130"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }: {
|
||||||
boot = {
|
boot = {
|
||||||
|
kernel.sysctl."net.ipv4.ip_forward" = true;
|
||||||
loader.systemd-boot.enable = true;
|
loader.systemd-boot.enable = true;
|
||||||
loader.efi.canTouchEfiVariables = true;
|
loader.efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
@ -14,5 +15,16 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.ssh.knownHosts = {
|
||||||
|
selbeiskami = {
|
||||||
|
hostNames = [ "192.168.0.57" ];
|
||||||
|
publicKey = "192.168.0.57 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBiTyWzAu7V2Jkk4rqEjBLu+lAhhkLTO8W/PGb8HkeqQ";
|
||||||
|
};
|
||||||
|
matricx = {
|
||||||
|
hostNames = [ "192.168.0.130" "matri.cx" ];
|
||||||
|
publicKey = "matri.cx ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMyaPYK0HcKAjrD1g+FPqPEU9FJ0I6+iKYmQlWKE0zHp";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
time.timeZone = "America/Chicago";
|
time.timeZone = "America/Chicago";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user