diff --git a/README.md b/README.md index 01a03a3..297b1b4 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This repo hosts all my dotfiles. It includes two desktop config, one (terrible) | name | description | | ----------- | ------------------------------------------------- | -| `goober` | my main desktop config. Intel 9th gen + 1660 GPU. | +| `goober` | my main desktop config. Intel 9th gen + 1660 GPU. Packs up games, VM and programming stuff | | `workspace` | my config for professional workspaces. | | `sisyphe` | proxmox server vm | | `labouse` | ASUS X75s (laptop) nix config. Highly experimental, as this is old hardware! | @@ -12,6 +12,9 @@ This repo hosts all my dotfiles. It includes two desktop config, one (terrible) `diva`, `strawberry` are WIP. Supposed to be two servers config. +- `diva` should be the replacement to my Debian VM who's running Bluesky PDS, and my global reverse proxy i'm running +- `strawberry` is a config for a NAS i'm planning to build. + `packages` also comes with some packages bundling i made for various software i use (and too shy to put in nixpkgs). # Installation @@ -24,3 +27,9 @@ git clone # replace goober by whatever config interests you sudo nixos-rebuild switch --flake .#goober ``` + +# TODO + +- [ ] Do a proper backup strategy on my server VMs +- [ ] Set a proper log monitoring service +- [ ] make the home manager config properly standalone, for the non nix machines. allows to have a quick environment tailored to my preferences wherever i am diff --git a/flake.nix b/flake.nix index cb6b639..c36b09a 100644 --- a/flake.nix +++ b/flake.nix @@ -243,6 +243,11 @@ packages.miku-cursor-linux = pkgs.callPackage ./packages/miku-cursor.nix { }; packages.fourget = pkgs.callPackage ./packages/4get.nix { }; - }; + homeManager = home-manager.lib.homeManagerConfiguration { + pkgs = import nixpkgs {}; + modules = [./home-manager/home.nix]; + extraSpecialArgs = specialArgs; + }; + }; } diff --git a/hosts/sisyphe/configuration.nix b/hosts/sisyphe/configuration.nix index 8d21641..34f999a 100644 --- a/hosts/sisyphe/configuration.nix +++ b/hosts/sisyphe/configuration.nix @@ -43,7 +43,6 @@ in "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHjz5MUSmc1ahtUJWuvzG7PHH432nx6a0Nj2zfxt3oTP geekcat@protonmail.com" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP9Yp7TbDhYJ27Sh+LcPXT569bMVwbFrkE4zksfU84l+ harry123@goober" ]; - shell = pkgs.zsh; }; security.sudo.wheelNeedsPassword = false; diff --git a/hosts/sisyphe/features/prometheus.nix b/hosts/sisyphe/features/prometheus.nix index 4ab07c2..de41ead 100644 --- a/hosts/sisyphe/features/prometheus.nix +++ b/hosts/sisyphe/features/prometheus.nix @@ -17,7 +17,8 @@ systemd = { enable = true; }; - # TODO: enable prometheus services based on whether they are enabled or not + + # TODO: set up all services config /* sabnzbd = { enable = true; @@ -45,6 +46,15 @@ php-fpm = { enable = true; }; + exportarr-radarr = { + enable = true; + apiKeyFile = "/run/secrets/radarr"; + }; + exportarr-sonarr.enable = true; + exportarr-prowlarr.enable = true; + exportarr-bazarr.enable = true; + ping.enable = true; + domain.enable = true; /* TODO: need to fix secrets before nextcloud = { diff --git a/hosts/sisyphe/features/services/akkoma.nix b/hosts/sisyphe/features/services/akkoma.nix index 19a293c..82c34ab 100644 --- a/hosts/sisyphe/features/services/akkoma.nix +++ b/hosts/sisyphe/features/services/akkoma.nix @@ -3,7 +3,9 @@ let pleromaUrl = "eepy.rougebordeaux.xyz"; pleromaMediaUrl = "blurb.rougebordeaux.xyz"; theme = "fantasy-scroll-blossom"; - themeUrl = "https://plthemes.vulpes.one/themes/${theme}/${theme}.json"; + themeSrcUrl = "https://plthemes.vulpes.one/themes/${theme}/${theme}.json"; + themeSrc = ./akkoma/style.json; + tosFile = ./akkoma/terms-of-services.html; background = ""; emojis = [ ]; styles = '' @@ -27,9 +29,16 @@ let akkoma-overlay = self: super: { akkoma = super.akkoma.overrideAttrs (old: { postPatch = '' + mkdir -p $out/priv/static/themes + + cp ${themeSrc} $out/priv/static/themes/${theme}.json cp ${pkgs.writeText "styles.json" styles} $out/priv/static/themes - cp ${./akkoma/terms-of-services.html} $out/priv/static/terms-of-service.html + cp ${tosFile} $out/priv/static/terms-of-service.html ''; + + buildInputs = old.buildInputs ++ [ + pkgs.curl + ]; }); }; in @@ -41,7 +50,7 @@ in ":pleroma" = { ":instance" = { name = "e^akkoma + 1 = 0"; - description = "the cuntiest french akkoma instance<3. on aime la mode, les sciences, et la musique. mais ça ne vous empêche pas de parler de n'importe quoi! join us ! par contre c'est 161 ici donc nofaf ou vs serez ban"; + description = "the cuntiest french akkoma instance<3. on aime la mode, les sciences, et la musique."; email = "admin@babychou.me"; registration_open = false; max_pinned_statuses = 1; @@ -64,6 +73,11 @@ in ]; }; ":configurable_from_database" = false; + "frontend_configurations" = { + "pleroma_fe" = { + "theme" = "${theme}"; + }; + }; }; }; @@ -73,16 +87,15 @@ in } encode zstd gzip - reverse_proxy 127.0.0.1:4000 ''; + services.caddy.virtualHosts."${pleromaMediaUrl}".extraConfig = '' log { output file /var/log/caddy/akkoma_media.log } encode zstd gzip - reverse_proxy 127.0.0.1:4000 ''; } diff --git a/hosts/sisyphe/features/services/akkoma/style.json b/hosts/sisyphe/features/services/akkoma/style.json new file mode 100644 index 0000000..234d04e --- /dev/null +++ b/hosts/sisyphe/features/services/akkoma/style.json @@ -0,0 +1,413 @@ +{ + "_pleroma_theme_version": 2, + "name": "Fantasy Scroll - Blossom (@fristi)", + "theme": { + "themeEngineVersion": 3, + "shadows": { + "panel": [ + { + "x": "1", + "y": "1", + "blur": "2", + "spread": "0", + "color": "#491d36", + "alpha": "0.7" + } + ], + "topBar": [ + { + "x": 0, + "y": "3", + "blur": "3", + "spread": "1", + "color": "#000000", + "alpha": "0.35" + } + ], + "popup": [ + { + "x": "3", + "y": "3", + "blur": "2", + "spread": "0", + "color": "#491d36", + "alpha": "0.5" + } + ], + "avatar": [ + { + "x": 0, + "y": 1, + "blur": 8, + "spread": 0, + "color": "#000000", + "alpha": 0.7 + } + ], + "avatarStatus": [ + { + "x": "2", + "y": "2", + "blur": "0", + "spread": 0, + "inset": false, + "color": "#e1ddd9", + "alpha": "0.6" + }, + { + "x": "-2", + "y": "2", + "blur": "0", + "spread": 0, + "inset": false, + "color": "#e1ddd9", + "alpha": "0.6" + }, + { + "x": "-2", + "y": "-2", + "blur": "0", + "spread": 0, + "inset": false, + "color": "#e1ddd9", + "alpha": "0.6" + }, + { + "x": "2", + "y": "-2", + "blur": "0", + "spread": 0, + "inset": false, + "color": "#e1ddd9", + "alpha": "0.6" + } + ], + "panelHeader": [], + "button": [], + "buttonHover": [ + { + "x": 0, + "y": 0, + "blur": "1", + "spread": "2", + "color": "#c974a5", + "alpha": "0.4", + "inset": false + } + ], + "buttonPressed": [ + { + "x": 0, + "y": 0, + "blur": "1", + "spread": "2", + "color": "#c974a5", + "alpha": "0.1" + } + ], + "input": [ + { + "x": "0", + "y": "0", + "blur": "0", + "spread": "1", + "color": "#491d36", + "alpha": "0.2", + "inset": true + } + ] + }, + "colors": { + "underlay": "#000000", + "bg": "#e1ddd9", + "fg": "#c68bac", + "cRed": "#b73737", + "cOrange": "#c69f3b", + "cGreen": "#2da525", + "cBlue": "#669db2", + "accent": "#b23a7e", + "link": "#b23a7e", + "text": "#4a333f", + "badgeNotification": "#bb0000", + "badgeNotificationText": "#ffffff", + "panel": "#c68bac", + "panelText": "#fcfdfe", + "alertNeutral": "#4a333f", + "alertNeutralPanelText": "#fcfdfe", + "alertNeutralText": "#ffffff", + "alertWarning": "#c69f3b", + "alertWarningPanelText": "#010203", + "alertWarningText": "#ffffff", + "alertError": "#aa0000", + "alertErrorPanelText": "#fcfdfe", + "alertErrorText": "#ffffff", + "fgText": "#000000", + "topBar": "#c68bac", + "topBarText": "#f1f5fa", + "input": "#f3deee", + "inputTopbarText": "#06090f", + "inputPanelText": "#010203", + "inputText": "#4a333f", + "btn": "#bf5f96", + "btnText": "#f9fafb", + "btnTopBarText": "#f9fafb", + "btnDisabled": "#d9bec9", + "btnDisabledTopBarText": "#e1cdd5", + "btnPanelText": "#f9fafb", + "btnDisabledPanelText": "#e1cdd5", + "btnDisabledText": "#e1cdd5", + "btnToggled": "#dda8c6", + "btnToggledTopBarText": "#050507", + "btnToggledPanelText": "#050507", + "btnToggledText": "#050507", + "btnPressed": "#bf5f96", + "btnPressedTopBarText": "#050507", + "btnPressedTopBar": "#bf5f96", + "btnPressedPanelText": "#050507", + "btnPressedPanel": "#bf5f96", + "btnPressedText": "#050507", + "tabActiveText": "#f9fafb", + "tabText": "#f9fafb", + "tab": "#bf5f96", + "fgLink": "#c54e91", + "topBarLink": "#f1f5fa", + "panelLink": "#b23a7d", + "panelFaint": "#000000", + "icon": "#8b7c81", + "poll": "#cf9cb5", + "pollText": "#4a333f", + "border": "#4a333f", + "postLink": "#b23a7e", + "lightText": "#0e0a0c", + "popover": "#e1ddd9", + "selectedMenuPopover": "#d6d1cb", + "highlight": "#d6d1cb", + "highlightText": "#4a333f", + "selectedMenu": "#d6d1cb", + "selectedMenuText": "#4a333f", + "selectedMenuPopoverIcon": "#908285", + "highlightLink": "#c54e91", + "selectedMenuLink": "#b23a7d", + "selectedMenuPopoverLink": "#c54e8f", + "selectedMenuPopoverText": "#4a333f", + "faintLink": "#b23a7e", + "highlightFaintLink": "#c54e91", + "selectedMenuFaintLink": "#b23a7d", + "selectedMenuPopoverFaintLink": "#c54e8f", + "faint": "#4a333f", + "highlightFaintText": "#4a333f", + "selectedMenuFaintText": "#4a333f", + "selectedMenuPopoverFaintText": "#4a333f", + "highlightLightText": "#0e0a0c", + "selectedMenuLightText": "#0e0a0c", + "selectedMenuPopoverLightText": "#0e0a0c", + "selectedMenuIcon": "#908285", + "selectedPost": "#d6d1cb", + "selectedPostText": "#4a333f", + "selectedPostIcon": "#908285", + "selectedPostLink": "#b23a7d", + "selectedPostFaintLink": "#b23a7d", + "highlightPostLink": "#c54e91", + "selectedPostPostLink": "#b23a7d", + "selectedPostLightText": "#0e0a0c", + "selectedPostFaintText": "#4a333f", + "popoverText": "#4a333f", + "popoverIcon": "#96888c", + "popoverLink": "#c54e91", + "postFaintLink": "#b23a7e", + "popoverPostFaintLink": "#c54e91", + "popoverFaintLink": "#c54e91", + "popoverFaintText": "#4a333f", + "popoverPostLink": "#c54e91", + "popoverLightText": "#0e0a0c", + "highlightIcon": "#908285", + "highlightPostFaintLink": "#c54e91", + "profileTint": "#e1ddd9", + "profileBg": "#777b80" + }, + "opacity": { + "underlay": 0.15, + "bg": 0.85, + "panel": 0.9, + "alert": 0.8, + "input": 0.6, + "btn": 0.75, + "faint": 0.5, + "border": 0.2, + "popover": 1, + "profileTint": 0.5 + }, + "radii": { + "btn": "0", + "input": "0", + "checkbox": "0", + "panel": "0", + "avatar": "0", + "avatarAlt": "0", + "tooltip": "0", + "attachment": "0" + }, + "fonts": { + "interface": { "family": "sans-serif" }, + "input": { "family": "inherit" }, + "post": { "family": "inherit" }, + "postCode": { "family": "monospace" } + } + }, + "source": { + "themeEngineVersion": 3, + "fonts": { "interface": { "family": "sans-serif" } }, + "shadows": { + "avatarStatus": [ + { + "x": "2", + "y": "2", + "blur": "0", + "spread": 0, + "inset": false, + "color": "#e1ddd9", + "alpha": "0.6" + }, + { + "x": "-2", + "y": "2", + "blur": "0", + "spread": 0, + "inset": false, + "color": "#e1ddd9", + "alpha": "0.6" + }, + { + "x": "-2", + "y": "-2", + "blur": "0", + "spread": 0, + "inset": false, + "color": "#e1ddd9", + "alpha": "0.6" + }, + { + "x": "2", + "y": "-2", + "blur": "0", + "spread": 0, + "inset": false, + "color": "#e1ddd9", + "alpha": "0.6" + } + ], + "button": [], + "buttonHover": [ + { + "x": 0, + "y": 0, + "blur": "1", + "spread": "2", + "color": "#c974a5", + "alpha": "0.4", + "inset": false + } + ], + "buttonPressed": [ + { + "x": 0, + "y": 0, + "blur": "1", + "spread": "2", + "color": "#c974a5", + "alpha": "0.1" + } + ], + "input": [ + { + "x": "0", + "y": "0", + "blur": "0", + "spread": "1", + "color": "#491d36", + "alpha": "0.2", + "inset": true + } + ], + "panel": [ + { + "x": "1", + "y": "1", + "blur": "2", + "spread": "0", + "color": "#491d36", + "alpha": "0.7" + } + ], + "panelHeader": [], + "popup": [ + { + "x": "3", + "y": "3", + "blur": "2", + "spread": "0", + "color": "#491d36", + "alpha": "0.5" + } + ], + "topBar": [ + { + "x": 0, + "y": "3", + "blur": "3", + "spread": "1", + "color": "#000000", + "alpha": "0.35" + } + ] + }, + "opacity": { + "bg": "0.85", + "faint": "0.7", + "border": "0.2", + "panel": "0.9", + "btn": "0.75", + "input": "0.6", + "alert": "0.8" + }, + "colors": { + "bg": "#e1ddd9", + "fg": "#c68bac", + "text": "#4a333f", + "link": "#b23a7e", + "cBlue": "#669db2", + "cRed": "#b73737", + "cGreen": "#2da525", + "cOrange": "#c69f3b", + "postLink": "#b23a7e", + "border": "#4a333f", + "icon": "#8b7c81", + "panelText": "#fcfdfe", + "topBarText": "#f1f5fa", + "topBarLink": "#f1f5fa", + "tabText": "#f9fafb", + "tabActiveText": "#f9fafb", + "btn": "#bf5f96", + "btnText": "#f9fafb", + "btnPanelText": "#f9fafb", + "btnTopBarText": "#f9fafb", + "input": "#f3deee", + "inputText": "#4a333f", + "alertError": "#aa0000", + "alertErrorText": "#ffffff", + "alertWarning": "#c69f3b", + "alertWarningText": "#ffffff", + "badgeNotification": "#bb0000" + }, + "radii": { + "btn": "0", + "input": "0", + "checkbox": "0", + "panel": "0", + "avatar": "0", + "avatarAlt": "0", + "tooltip": "0", + "attachment": "0" + } + } +} diff --git a/hosts/sisyphe/features/services/akkoma/terms-of-services.html b/hosts/sisyphe/features/services/akkoma/terms-of-services.html index 3d411fe..d9fdd13 100644 --- a/hosts/sisyphe/features/services/akkoma/terms-of-services.html +++ b/hosts/sisyphe/features/services/akkoma/terms-of-services.html @@ -1,6 +1,6 @@ -

Cette instance est hébergée en France. Tout contenu doit se conformer aux lois locales.

-
    -
  1. Tout contenu raciste/sexiste/xenophobe/transphobe est banni. La première fois, vous êtes averti. La deuxième, vous dégagez!
  2. -
  3. -
  4. Le nsfw est autorisé, cependant j'attends que vous mettiez les spoilers.
  5. -
+

Cette instance est hébergée en France. Tout contenu doit se conformer aux lois locales. Si vous créez un compte sur ce site, nous supposerons que vous avez plus de 18 ans.

+
    +
  1. Tout contenu raciste/sexiste/xenophobe/transphobe est banni. La première fois, vous êtes averti. La deuxième, vous dégagez!
  2. +
  3. Les images et vidéos générées par intelligence artificielle sont interdites de la plateforme. Nous voulons uniquement du contenu généré par son utilisateur.
  4. +
  5. Le nsfw est autorisé, cependant j'attends que vous mettiez un spoiler et les différents tags nécessaires.
  6. +
diff --git a/terraform/cloud-config.yaml b/terraform/cloud-config.yaml deleted file mode 100644 index a0f312b..0000000 --- a/terraform/cloud-config.yaml +++ /dev/null @@ -1,4 +0,0 @@ -#cloud-config - -runcmd: - - curl https://raw.githubusercontent.com/elitak/nixos-infect/master/nixos-infect | PROVIDER=hetznercloud NIX_CHANNEL=nixos-24.11 bash 2>&1 | tee /tmp/infect.log \ No newline at end of file diff --git a/terraform/main.tf b/terraform/main.tf deleted file mode 100644 index 2b4ca6a..0000000 --- a/terraform/main.tf +++ /dev/null @@ -1,24 +0,0 @@ -variable "hcloud_token" { - sensitive = true -} - -provider "hcloud" { - token = var.hcloud_token - project = "homelab" -} - -resource "hcloud_server" { - name = "athena" - type = "cx32" - image = "debian-12" - datacenter = "nbg1-dc3" -} - -data "cloudinit_config" "athena" { - part { - filename = "cloud-config.yaml" - content_type = "text/cloud-config" - - content = file("${path.module}/cloud-config.yaml") - } -} \ No newline at end of file