Compare commits
6 Commits
496c483050
...
e0568ddfdc
| Author | SHA1 | Date | |
|---|---|---|---|
| e0568ddfdc | |||
| 9941dfa61f | |||
| aac9e9f38f | |||
| bdda87778c | |||
| fccec6d87c | |||
| 5e259e0b42 |
@@ -48,6 +48,7 @@
|
||||
./modules/ha-customers
|
||||
|
||||
./modules/firefox-sync.nix
|
||||
./modules/fivefilters.nix
|
||||
|
||||
# home assistant
|
||||
./modules/home-assistant
|
||||
|
||||
@@ -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"
|
||||
|
||||
32
hosts/fw/modules/fivefilters.nix
Normal file
32
hosts/fw/modules/fivefilters.nix
Normal 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"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -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" ];
|
||||
}
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -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;
|
||||
|
||||
6
todos.md
6
todos.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user