feat(modules/nixos): W.I.P add forgejo service

feat(modules/nixos): add admin module for system wide admin data
This commit is contained in:
Jo 2024-12-27 20:37:00 +01:00
parent 636d384150
commit 84bfdec3f2
7 changed files with 168 additions and 4 deletions

View file

@ -42,7 +42,7 @@ in
enable-blur = mkOpt bool true "Whether to enable blur-my-shell application blur.";
};
};
wallpaper = mkOpt str (builtins.toString ./wallpapers/rocket-launch.jpg) "Specify the path of your prefered Gnome wallpaper.";
wallpaper = mkOpt str (builtins.toString ./wallpapers/car-wreck.png) "Specify the path of your prefered Gnome wallpaper.";
};
config = mkIf osConfig.${namespace}.desktop.gnome.enable {
@ -81,5 +81,97 @@ in
picture-uri-dark = cfg.wallpaper;
};
};
home.file.".local/share/themes/catppuccin-macchiato/gnome-shell/gnome-shell.css".text = ''
#panel {
/*background-color: #131313;*/
background-color: rgba(0, 0, 0, 0);
/*background-color: transparent;*/
font-weight: bold;
/*height: 2.2em;*/
height: 2.3em;
transition-duration: 250ms;
/*Custom panel settings */
/*margin: 5px 35px 0 35px;*/
margin: 5px 22px 0 22px;
border-radius: 10px;
#panel .panel-button {
background-color: rgba(19, 19, 19, 0.8);
font-weight: bold;
/*color: #f2f2f2;*/
/*color: #131313;*/
-natural-hpadding: 12px;
-minimum-hpadding: 6px;
transition-duration: 150ms;
border: 0px solid transparent;
/*border: none;*/
/*border-radius: 99px;*/
border-radius: 10px;
/*margin: 5px;*/
margin-left: 5px;
margin-right: 5px;
#panel .panel-button:active,
#panel .panel-button:overview,
#panel .panel-button:focus,
#panel .panel-button:checked {
box-shadow: inset 0 0 0 100px rgba(242, 242, 242, 0.2);
/*background-color: #8c7feb;*/
background-color: #b299d1;
/*background-color: #b299d1;*/
/*color: #8c7feb;*/
color: #131313;
/*background-color: rgba(163, 153, 235, 1);*/
}
#panel .panel-button:hover {
box-shadow: inset 0 0 0 100px rgba(242, 242, 242, 0.15);
background-color: #a399eb;
color: #131313;
/*box-shadow: inset 0 0 0 100px rgba(183, 176, 235, 0.15);*/
}
'';
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View file

@ -0,0 +1,16 @@
{
lib,
namespace,
...
}:
let
inherit (lib) types;
inherit (lib.${namespace}) mkOpt;
in
{
options.${namespace}.admin = with types; {
name = mkOpt str "Jo" "The short name of the system admin.";
full-name = mkOpt str "Johannes Reckers" "The full name of the system admin.";
email = mkOpt str "system@thevoid.cafe" "The E-Mail of the system admin. (Used for system services by default)";
};
}

View file

@ -0,0 +1,56 @@
{
lib,
config,
namespace,
...
}:
let
inherit (lib) mkEnableOption mkIf;
cfg = config.${namespace}.services.forgejo;
in
{
options.${namespace}.services.forgejo = {
enable = mkEnableOption "Whether to enable the forgejo git service.";
};
config = mkIf cfg.enable {
services.forgejo = {
enable = true;
database = {
type = "postgres";
};
lfs.enable = true;
settings = {
server = {
DOMAIN = "git.thevoid.cafe";
ROOT_URL = "https://git.thevoid.cafe/";
HTTP_PORT = "3030";
};
service.DISABLE_REGISTRATION = true;
actions = {
ENABLED = true;
DEFAULT_ACTIONS_URL = "github";
};
};
};
# TODO: finish this configuration
services.traefik = {
dynamicConfigOptions = {
http = {
routers.forgejo = {
entryPoints = ["websecure"];
rule = "Host(`git.thevoid.cafe`)";
service = "forgejo";
};
services.forgejo.loadbalancer.server = {
url = "http://localhost:3030";
};
};
};
};
};
}

View file

@ -11,7 +11,7 @@ in {
enable = mkEnableOption "Enable the Traefik service.";
cloudflareEmail = mkOption {
type = types.str;
default = "system@thevoid.cafe";
default = config.${namespace}.admin.email;
example = "system@thevoid.cafe";
description = "Specify the E-Mail associated with your Cloudflare account for ACME.";
};

View file

@ -53,8 +53,8 @@
puzzlevision = {
archetypes.workstation.enable = true;
security.yubikey = {
enable = true;
enable-agent = true;
enable = true;
enable-agent = true;
};
};