diff --git a/README.md b/README.md index 297b1b4..01a03a3 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. Packs up games, VM and programming stuff | +| `goober` | my main desktop config. Intel 9th gen + 1660 GPU. | | `workspace` | my config for professional workspaces. | | `sisyphe` | proxmox server vm | | `labouse` | ASUS X75s (laptop) nix config. Highly experimental, as this is old hardware! | @@ -12,9 +12,6 @@ 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 @@ -27,9 +24,3 @@ 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 c36b09a..cb6b639 100644 --- a/flake.nix +++ b/flake.nix @@ -243,11 +243,6 @@ 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 34f999a..8d21641 100644 --- a/hosts/sisyphe/configuration.nix +++ b/hosts/sisyphe/configuration.nix @@ -43,6 +43,7 @@ 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 de41ead..4ab07c2 100644 --- a/hosts/sisyphe/features/prometheus.nix +++ b/hosts/sisyphe/features/prometheus.nix @@ -17,8 +17,7 @@ systemd = { enable = true; }; - - # TODO: set up all services config + # TODO: enable prometheus services based on whether they are enabled or not /* sabnzbd = { enable = true; @@ -46,15 +45,6 @@ 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 82c34ab..19a293c 100644 --- a/hosts/sisyphe/features/services/akkoma.nix +++ b/hosts/sisyphe/features/services/akkoma.nix @@ -3,9 +3,7 @@ let pleromaUrl = "eepy.rougebordeaux.xyz"; pleromaMediaUrl = "blurb.rougebordeaux.xyz"; theme = "fantasy-scroll-blossom"; - themeSrcUrl = "https://plthemes.vulpes.one/themes/${theme}/${theme}.json"; - themeSrc = ./akkoma/style.json; - tosFile = ./akkoma/terms-of-services.html; + themeUrl = "https://plthemes.vulpes.one/themes/${theme}/${theme}.json"; background = ""; emojis = [ ]; styles = '' @@ -29,16 +27,9 @@ 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 ${tosFile} $out/priv/static/terms-of-service.html + cp ${./akkoma/terms-of-services.html} $out/priv/static/terms-of-service.html ''; - - buildInputs = old.buildInputs ++ [ - pkgs.curl - ]; }); }; in @@ -50,7 +41,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."; + 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"; email = "admin@babychou.me"; registration_open = false; max_pinned_statuses = 1; @@ -73,11 +64,6 @@ in ]; }; ":configurable_from_database" = false; - "frontend_configurations" = { - "pleroma_fe" = { - "theme" = "${theme}"; - }; - }; }; }; @@ -87,15 +73,16 @@ 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 deleted file mode 100644 index 234d04e..0000000 --- a/hosts/sisyphe/features/services/akkoma/style.json +++ /dev/null @@ -1,413 +0,0 @@ -{ - "_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 d9fdd13..3d411fe 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. 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. -
+

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. +
diff --git a/terraform/cloud-config.yaml b/terraform/cloud-config.yaml new file mode 100644 index 0000000..a0f312b --- /dev/null +++ b/terraform/cloud-config.yaml @@ -0,0 +1,4 @@ +#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 new file mode 100644 index 0000000..2b4ca6a --- /dev/null +++ b/terraform/main.tf @@ -0,0 +1,24 @@ +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