Compare commits

..

6 commits

10 changed files with 119 additions and 68 deletions

View file

@ -48,6 +48,7 @@
./modules/ha-customers
./modules/firefox-sync.nix
./modules/fivefilters.nix
# home assistant
./modules/home-assistant

View file

@ -91,6 +91,7 @@
"/omada.cloonar.com/${config.networkPrefix}.97.2"
"/web-02.cloonar.com/${config.networkPrefix}.97.5"
"/pla.cloonar.com/${config.networkPrefix}.97.5"
"/fivefilters.cloonar.com/${config.networkPrefix}.97.5"
"/home-assistant.cloonar.com/${config.networkPrefix}.97.20"
"/mopidy.cloonar.com/${config.networkPrefix}.97.21"
"/snapcast.cloonar.com/${config.networkPrefix}.97.21"

View file

@ -0,0 +1,32 @@
{ config, pkgs, ... }: {
users.users.fivefilters = {
isSystemUser = true;
group = "omada";
home = "/var/lib/fivefilters";
createHome = true;
};
users.groups.fivefilters = { };
systemd.tmpfiles.rules = [
# parent is created by createHome already, but harmless to repeat
"d /var/lib/fivefilters 0755 fivefilters fivefilters - -"
"d /var/lib/fivefilters/cache 0755 fivefilters fivefilters - -"
];
# TODO: check if we can run docker service as other user than root
virtualisation = {
oci-containers.containers = {
fivefilters = {
autoStart = true;
image = "heussd/fivefilters-full-text-rss:3.8.1";
volumes = [
"/var/lib/fivefilters/cache:/var/www/html/cache"
];
extraOptions = [
"--network=server"
"--ip=${config.networkPrefix}.97.10"
];
};
};
};
}

View file

@ -25,4 +25,12 @@
recommendedProxySettings = true;
};
};
services.nginx.virtualHosts."fivefilters.cloonar.com" = {
forceSSL = true;
enableACME = true;
acmeRoot = null;
locations."/" = {
proxyPass = "http://${config.networkPrefix}.97.10";
};
};
}

View file

@ -13,7 +13,11 @@
wantedBy = [ "multi-user.target" ];
path = [ pkgs.flatpak ];
script = ''
flatpak install -y https://dl.flathub.org/repo/appstream/io.github.yuki_iptv.yuki-iptv.flatpakref
set -eu
flatpak install --system -y --noninteractive --or-update flathub io.github.yuki_iptv.yuki-iptv
flatpak install --system -y --noninteractive --or-update flathub com.google.AndroidStudio
flatpak run --command=bash com.google.AndroidStudio -c 'curl -fsSL https://claude.ai/install.sh | bash'
'';
};
@ -25,5 +29,12 @@
exec = "${pkgs.flatpak}/bin/flatpak run io.github.yuki_iptv.yuki-iptv";
terminal = false;
})
(pkgs.makeDesktopItem {
name = "android-studio";
desktopName = "Android Studio";
genericName = "Android Studio";
exec = "${pkgs.flatpak}/bin/flatpak run com.google.AndroidStudio";
terminal = false;
})
];
}

View file

@ -25,7 +25,7 @@ in {
# Browser must be running with remote debugging on 127.0.0.1:9222.
if ${config.home.homeDirectory}/.nix-profile/bin/claude mcp add --help >/dev/null 2>&1; then
${config.home.homeDirectory}/.nix-profile/bin/claude mcp add --scope user chrome-devtools \
-- npx -y chrome-devtools-mcp --browserUrl=http://127.0.0.1:9222 || true
-- npx -y chrome-devtools-mcp --executablePath=${pkgs.ungoogled-chromium}/bin/chromium --isolated=true --headless=true --chromeArg=--ozone-platform=wayland --chromeArg=--enable-features=UseOzonePlatform --chromeArg=--force-device-scale-factor=1 || true
fi
'';
};

View file

@ -8,5 +8,14 @@ in {
unstable.claude-code
unstable.code-cursor
unstable.vscode
# android-studio-full
# android-tools
];
nixpkgs.config.android_sdk.accept_license = true;
programs.adb.enable = true; # sets up udev + adb group
services.udev.packages = [ pkgs.android-udev-rules ];
users.users.dominik.extraGroups = [ "adbusers" ];
}

View file

@ -46,7 +46,24 @@ in
environment.etc."codex/config.toml".text = ''
[mcp_servers.chrome-devtools]
command = "npx"
args = ["-y", "chrome-devtools-mcp@latest", "--browserUrl=http://127.0.0.1:9222"]
args = [
# "-y", "chrome-devtools-mcp@latest", "--browserUrl=http://127.0.0.1:9222"
"-y", "chrome-devtools-mcp@latest",
# Tell MCP exactly which Chromium to launch (Nix store path)
"--executablePath=${pkgs.ungoogled-chromium}/bin/chromium",
# Make every run use a temporary profile (no shared state)
"--isolated=true",
# Headful by default on Wayland
"--headless=true",
# Pass Chromium flags for Wayland + scale
"--chromeArg=--ozone-platform=wayland",
"--chromeArg=--enable-features=UseOzonePlatform",
"--chromeArg=--force-device-scale-factor=1"
]
startup_timeout_sec = 30
tool_timeout_sec = 120
'';

View file

@ -234,75 +234,49 @@ in
"--force-dark-mode"
"--enable-features=UseOzonePlatform"
"--ozone-platform=wayland"
"--default-search-provider-search-url=\"https://www.perplexity.ai/search/?q={searchTerms}\""
"--default-search-provider-search-url=\"https://www.perplexity.ai/search/?q=%s\""
];
dictionaries = [
pkgs.hunspellDictsChromium.en_US
pkgs.hunspellDictsChromium.de_DE
];
extensions =
let
createChromiumExtensionFor = browserVersion: { id, sha256, version }:
extensions = [
{
# ublock
id = "epcnnfbjfcgphgdmggkamkmgojdagdnn";
}
{
inherit id;
crxPath = builtins.fetchurl {
url = "https://clients2.google.com/service/update2/crx?response=redirect&acceptformat=crx2,crx3&prodversion=${browserVersion}&x=id%3D${id}%26installsource%3Dondemand%26uc";
name = "${id}.crx";
inherit sha256;
};
inherit version;
};
createChromiumExtension = createChromiumExtensionFor (lib.versions.major pkgs.ungoogled-chromium.version);
in
[
(createChromiumExtension {
# ublock origin
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
sha256 = "sha256:054kqrai2kd89bzc5c3x17rjfdil2zzxrxrg65vaywmvm77y7kmn";
version = "1.61.0";
})
(createChromiumExtension {
# dark reader
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";
sha256 = "sha256:1i8rs6bcblx4d85rh41pmky3hhlpzn5977lpz5zmhwri7sb77yzk";
version = "4.9.96";
})
(createChromiumExtension {
}
{
# privacy badger
id = "pkehgijcmpdhfbdbbnkijodmdjhbjlgp";
sha256 = "sha256:19vpk8h8q0xgi40hgv1bd24n3napbgbzg12najc3mkapqcvfcmhc";
version = "2024.7.17";
})
(createChromiumExtension {
}
{
# Bitwarden
id = "nngceckbapebfimnlniiiahkandclblb";
sha256 = "sha256:02cscadjqbfx3a5bky1zc38pxymzgndb9h3wing3pb0fwm30yrzd";
version = "2024.10.1";
})
(createChromiumExtension {
}
{
# Dracula Theme
id = "jiaeinnfkmnkpkicpaihogiomcgikcde";
sha256 = "sha256:01nm7p0v3lcvx8bkinq2rr0divvqgf5d2a757lg8m21ccmznqkpc";
version = "1.0";
})
(createChromiumExtension {
}
{
# Vimium
id = "dbepggeogbaibhgnhhndojpepiihcmeb";
sha256 = "sha256:0z6c04kjp13g4ix5kpv2m8q27i8pwz2c0rdi78wcnxqmqnik4ifx";
version = "2.1.2";
})
(createChromiumExtension {
}
{
# BrainTool
id = "fialfmcgpibjgdoeodaondepigiiddio";
sha256 = "sha256:0i8aga8h7jgjgsy1xx453gryzvf6y6wm9fd2i6cnzafjpf2fk51b";
version = "1.0.3";
})
}
{
# Chathub
id = "iaakpnchhognanibcahlpcplchdfmgma";
}
];
};
programs.git = {
enable = true;
lfs.enable = true;
package = pkgs.gitAndTools.gitFull;

View file

@ -1,9 +1,7 @@
move modules for hosts into respecting hosts directory so not every host gets rebuilded when one module changes
change sddm theme
add yubikey
change playmouth theme
look into secure boot
switch from gitea to forgejo
## chache server
https://github.com/zhaofengli/attic