feat: podman->docker, gitlab runner, website shim
This commit is contained in:
parent
974ca2aa73
commit
96e9f9de3b
11 changed files with 66 additions and 46 deletions
|
@ -21,6 +21,7 @@ in {
|
||||||
"services/gitlab/otpFile.age".publicKeys = default;
|
"services/gitlab/otpFile.age".publicKeys = default;
|
||||||
"services/gitlab/secretFile.age".publicKeys = default;
|
"services/gitlab/secretFile.age".publicKeys = default;
|
||||||
"services/gitlab/initialRootPasswordFile.age".publicKeys = default;
|
"services/gitlab/initialRootPasswordFile.age".publicKeys = default;
|
||||||
|
"services/gitlab/runner-registration.age".publicKeys = default;
|
||||||
|
|
||||||
"services/invidious/config.json.age".publicKeys = default;
|
"services/invidious/config.json.age".publicKeys = default;
|
||||||
"services/invidious/password-database.age".publicKeys = default;
|
"services/invidious/password-database.age".publicKeys = default;
|
||||||
|
|
BIN
config/secrets/services/gitlab/runner-registration.age
Normal file
BIN
config/secrets/services/gitlab/runner-registration.age
Normal file
Binary file not shown.
|
@ -1,45 +1 @@
|
||||||
{config, ...}: let
|
{}
|
||||||
ghcrLogin = {
|
|
||||||
registry = "ghcr.io";
|
|
||||||
username = "nekowinston";
|
|
||||||
passwordFile = config.age.secrets."containers/ghcr-token".path;
|
|
||||||
};
|
|
||||||
websitePort = "14139";
|
|
||||||
in {
|
|
||||||
virtualisation = {
|
|
||||||
podman = {
|
|
||||||
enable = true;
|
|
||||||
autoPrune = {
|
|
||||||
enable = true;
|
|
||||||
dates = "03:30";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
oci-containers = {
|
|
||||||
backend = "podman";
|
|
||||||
|
|
||||||
containers = {
|
|
||||||
faerber-bot = {
|
|
||||||
image = "ghcr.io/nekowinston/faerber/faerber-discord-bot:latest";
|
|
||||||
environmentFiles = [config.age.secrets."containers/faerber.env".path];
|
|
||||||
extraOptions = ["--pull=always"];
|
|
||||||
};
|
|
||||||
|
|
||||||
website = {
|
|
||||||
image = "ghcr.io/nekowinston/winston.sh/winston-sh:latest";
|
|
||||||
login = ghcrLogin;
|
|
||||||
ports = ["127.0.0.1:${websitePort}:3000"];
|
|
||||||
extraOptions = ["--pull=always"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nginx.virtualHosts."winston.sh" = {
|
|
||||||
locations."/".proxyPass = "http://127.0.0.1:${websitePort}";
|
|
||||||
forceSSL = true;
|
|
||||||
|
|
||||||
enableACME = false;
|
|
||||||
useACMEHost = "winston.sh";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -12,5 +12,6 @@
|
||||||
./nitter
|
./nitter
|
||||||
./postgres.nix
|
./postgres.nix
|
||||||
./wakapi.nix
|
./wakapi.nix
|
||||||
|
./website
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
./module.nix
|
./module.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./secrets.nix
|
./secrets.nix
|
||||||
|
./runner.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
services.gitlab = {
|
services.gitlab = {
|
||||||
|
|
|
@ -19,5 +19,5 @@
|
||||||
gitlab-workhorse = pkgs.unstable.gitlab-workhorse;
|
gitlab-workhorse = pkgs.unstable.gitlab-workhorse;
|
||||||
pages = pkgs.unstable.gitlab-pages;
|
pages = pkgs.unstable.gitlab-pages;
|
||||||
};
|
};
|
||||||
services.gitlab-runner.package = pkgs.unstable.gitea-actions-runner;
|
services.gitlab-runner.package = pkgs.unstable.gitlab-runner;
|
||||||
}
|
}
|
||||||
|
|
17
config/services/gitlab/runner.nix
Normal file
17
config/services/gitlab/runner.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{config, ...}: let
|
||||||
|
registrationConfigFile = config.age.secrets."services/gitlab/runner-registration".path;
|
||||||
|
in {
|
||||||
|
services.gitlab-runner = {
|
||||||
|
enable = true;
|
||||||
|
services = {
|
||||||
|
docker = {
|
||||||
|
inherit registrationConfigFile;
|
||||||
|
dockerImage = "docker:stable";
|
||||||
|
dockerVolumes = ["/var/run/docker.sock:/var/run/docker.sock"];
|
||||||
|
tagList = ["docker-images"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
}
|
9
config/services/website/default.nix
Normal file
9
config/services/website/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
services.nginx.virtualHosts."winston.sh" = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = false;
|
||||||
|
useACMEHost = "winston.sh";
|
||||||
|
|
||||||
|
locations."/".root = ./www;
|
||||||
|
};
|
||||||
|
}
|
5
config/services/website/tailwind.config.js
Normal file
5
config/services/website/tailwind.config.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
module.exports = {
|
||||||
|
content: ["www/*.html"],
|
||||||
|
dark: "media"
|
||||||
|
}
|
29
config/services/website/www/index.html
Normal file
29
config/services/website/www/index.html
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>winston.sh :: back soon</title>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<meta name="darkreader-lock">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body
|
||||||
|
class="relative flex min-h-screen flex-col justify-center overflow-hidden bg-gray-50 dark:bg-gray-900 text-black dark:text-white py-6 sm:py-12">
|
||||||
|
<div class="mx-auto max-w-md flex flex-col gap-4">
|
||||||
|
<h1 class="text-xl font-extrabold">back soon.</h1>
|
||||||
|
<p>currently giving this website a new look & some new features.</p>
|
||||||
|
<ul>
|
||||||
|
<li>Discord: <a class="text-sky-500 hover:text-sky-800 dark:hover:text-sky-300"
|
||||||
|
href="https://discordapp.com/users/505490445468696576">nekowinston</a></li>
|
||||||
|
<li>Matrix: <a class="text-sky-500 hover:text-sky-800 dark:hover:text-sky-300"
|
||||||
|
href="https://matrix.to/#/@nekowinston:matrix.org">@nekowinston:matrix.org</a></li>
|
||||||
|
<li>GitHub: <a class="text-sky-500 hover:text-sky-800 dark:hover:text-sky-300"
|
||||||
|
href="https://github.com/nekowinston">nekowinston</a></li>
|
||||||
|
<li>GitLab: <a class="text-sky-500 hover:text-sky-800 dark:hover:text-sky-300"
|
||||||
|
href="https://gitlab.winston.sh">gitlab.winston.sh</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
1
config/services/website/www/style.css
Normal file
1
config/services/website/www/style.css
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/*! tailwindcss v3.2.2 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.flex{display:flex}.min-h-screen{min-height:100vh}.max-w-md{max-width:28rem}.flex-col{flex-direction:column}.justify-center{justify-content:center}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-extrabold{font-weight:800}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity))}.hover\:text-sky-800:hover{--tw-text-opacity:1;color:rgb(7 89 133/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:hover\:text-sky-300:hover{--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:py-12{padding-top:3rem;padding-bottom:3rem}}
|
Loading…
Reference in a new issue