Compare commits

...

13 commits

Author SHA1 Message Date
kity
211e10c0ee needed file isnt created? 2025-08-07 14:14:15 +02:00
kity
6e6a0c977f this syntax does not work 2025-08-07 14:12:38 +02:00
kity
f8953f6afe tried another syntax 2025-08-07 14:09:14 +02:00
kity
d94d393f4d tried converting it to .json file 2025-08-07 14:01:29 +02:00
kity
c47333f22b workaround to add theme 2025-08-07 13:53:49 +02:00
kity
4d5928a56a akkoma : added missing dependency 2025-08-07 13:39:47 +02:00
kity
85e1188360 added TODO notice 2025-08-07 12:26:53 +02:00
kity
9537fe4376 wip prometheus configuration 2025-08-07 12:26:32 +02:00
kity
f84f2e3a18 removed zsh from server config 2025-08-07 11:58:49 +02:00
76658839c2 updated README.md with a todo 2025-08-06 23:11:34 +02:00
1b598fb694 tried adding home-manager as a standalone config 2025-08-06 22:59:21 +02:00
2dde3ac5c0 removed useless config 2025-08-06 22:59:21 +02:00
596282d2fe more akkoma theme config 2025-08-06 22:59:21 +02:00
9 changed files with 464 additions and 43 deletions

View file

@ -4,7 +4,7 @@ This repo hosts all my dotfiles. It includes two desktop config, one (terrible)
| name | description | | 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. | | `workspace` | my config for professional workspaces. |
| `sisyphe` | proxmox server vm | | `sisyphe` | proxmox server vm |
| `labouse` | ASUS X75s (laptop) nix config. Highly experimental, as this is old hardware! | | `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`, `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). `packages` also comes with some packages bundling i made for various software i use (and too shy to put in nixpkgs).
# Installation # Installation
@ -24,3 +27,9 @@ git clone <repo-url>
# replace goober by whatever config interests you # replace goober by whatever config interests you
sudo nixos-rebuild switch --flake .#goober 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

View file

@ -243,6 +243,11 @@
packages.miku-cursor-linux = pkgs.callPackage ./packages/miku-cursor.nix { }; packages.miku-cursor-linux = pkgs.callPackage ./packages/miku-cursor.nix { };
packages.fourget = pkgs.callPackage ./packages/4get.nix { }; packages.fourget = pkgs.callPackage ./packages/4get.nix { };
};
homeManager = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {};
modules = [./home-manager/home.nix];
extraSpecialArgs = specialArgs;
};
};
} }

View file

@ -43,7 +43,6 @@ in
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHjz5MUSmc1ahtUJWuvzG7PHH432nx6a0Nj2zfxt3oTP geekcat@protonmail.com" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHjz5MUSmc1ahtUJWuvzG7PHH432nx6a0Nj2zfxt3oTP geekcat@protonmail.com"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP9Yp7TbDhYJ27Sh+LcPXT569bMVwbFrkE4zksfU84l+ harry123@goober" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP9Yp7TbDhYJ27Sh+LcPXT569bMVwbFrkE4zksfU84l+ harry123@goober"
]; ];
shell = pkgs.zsh;
}; };
security.sudo.wheelNeedsPassword = false; security.sudo.wheelNeedsPassword = false;

View file

@ -17,7 +17,8 @@
systemd = { systemd = {
enable = true; enable = true;
}; };
# TODO: enable prometheus services based on whether they are enabled or not
# TODO: set up all services config
/* /*
sabnzbd = { sabnzbd = {
enable = true; enable = true;
@ -45,6 +46,15 @@
php-fpm = { php-fpm = {
enable = true; 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 TODO: need to fix secrets before
nextcloud = { nextcloud = {

View file

@ -3,7 +3,9 @@ let
pleromaUrl = "eepy.rougebordeaux.xyz"; pleromaUrl = "eepy.rougebordeaux.xyz";
pleromaMediaUrl = "blurb.rougebordeaux.xyz"; pleromaMediaUrl = "blurb.rougebordeaux.xyz";
theme = "fantasy-scroll-blossom"; 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 = ""; background = "";
emojis = [ ]; emojis = [ ];
styles = '' styles = ''
@ -27,9 +29,16 @@ let
akkoma-overlay = self: super: { akkoma-overlay = self: super: {
akkoma = super.akkoma.overrideAttrs (old: { akkoma = super.akkoma.overrideAttrs (old: {
postPatch = '' 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 ${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 in
@ -41,7 +50,7 @@ in
":pleroma" = { ":pleroma" = {
":instance" = { ":instance" = {
name = "e^akkoma + 1 = 0"; 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"; email = "admin@babychou.me";
registration_open = false; registration_open = false;
max_pinned_statuses = 1; max_pinned_statuses = 1;
@ -64,6 +73,11 @@ in
]; ];
}; };
":configurable_from_database" = false; ":configurable_from_database" = false;
"frontend_configurations" = {
"pleroma_fe" = {
"theme" = "${theme}";
};
};
}; };
}; };
@ -73,16 +87,15 @@ in
} }
encode zstd gzip encode zstd gzip
reverse_proxy 127.0.0.1:4000 reverse_proxy 127.0.0.1:4000
''; '';
services.caddy.virtualHosts."${pleromaMediaUrl}".extraConfig = '' services.caddy.virtualHosts."${pleromaMediaUrl}".extraConfig = ''
log { log {
output file /var/log/caddy/akkoma_media.log output file /var/log/caddy/akkoma_media.log
} }
encode zstd gzip encode zstd gzip
reverse_proxy 127.0.0.1:4000 reverse_proxy 127.0.0.1:4000
''; '';
} }

View file

@ -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"
}
}
}

View file

@ -1,6 +1,6 @@
<p>Cette instance est hébergée en France. Tout contenu doit se conformer aux lois locales.</p> <p>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.</p>
<ol> <ol>
<li>Tout contenu raciste/sexiste/xenophobe/transphobe est banni. La première fois, vous êtes averti. La deuxième, vous dégagez!</li> <li>Tout contenu raciste/sexiste/xenophobe/transphobe est banni. La première fois, vous êtes averti. La deuxième, vous dégagez!</li>
<li></li> <li>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.</li>
<li>Le nsfw est autorisé, cependant j'attends que vous mettiez les spoilers.</li> <li>Le nsfw est autorisé, cependant j'attends que vous mettiez un spoiler et les différents tags nécessaires.</li>
</ol> </ol>

View file

@ -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

View file

@ -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")
}
}