Compare commits

...

30 commits

Author SHA1 Message Date
Nick
26644da9a5 feat: added searXNG to Ceres 2025-03-08 04:44:44 -06:00
Nick
4279c72c99 feat: added searXNG to Ceres 2025-03-08 04:12:06 -06:00
Nick
32d175efcd feat: added searXNG to Ceres 2025-03-08 03:55:19 -06:00
Nick
e7b28d69e5 feat: added searXNG to Ceres 2025-03-08 03:41:48 -06:00
Nick
cb7775e20f feat: added searXNG to Ceres 2025-03-08 03:32:50 -06:00
Nick
2c08bf0287 feat: added searXNG to Ceres 2025-03-08 03:31:43 -06:00
Nick
71741eef92 feat: added searXNG to Ceres 2025-03-08 03:25:04 -06:00
Nick
67b82a66b0 feat: added searXNG to Ceres 2025-03-08 03:21:11 -06:00
Nick
2854e9eb10 feat: added searXNG to Ceres 2025-03-08 03:20:05 -06:00
Nick
4e4bbd1f43 feat: added searXNG to Ceres 2025-03-08 03:17:16 -06:00
Nick
d2d7ec00a2 feat: added searXNG to Ceres 2025-03-08 02:58:52 -06:00
Nick
2a06895e57 feat: added searXNG to Ceres 2025-03-08 02:54:17 -06:00
Nick
dafb2db862 feat: added searXNG to Ceres 2025-03-08 02:50:15 -06:00
Nick
f4d7c2231b feat: added searXNG to Ceres 2025-03-08 02:42:38 -06:00
Nick
b7a0f8c314 feat: added searXNG to Ceres 2025-03-08 02:39:46 -06:00
Nick
f3e8f1a77d feat: added searXNG to Ceres 2025-03-08 02:25:02 -06:00
Nick
f65471c361 feat: added searXNG to Ceres 2025-03-08 02:17:40 -06:00
Nick
95171965e6 feat: added searXNG to Ceres 2025-03-08 02:13:19 -06:00
Nick
b71055ab4f feat: added searXNG to Ceres 2025-03-08 01:55:30 -06:00
Nick
88058b1fec feat: added searXNG to Ceres 2025-03-08 01:24:46 -06:00
Nick
6dd55c9a99 feat: added searXNG to Ceres 2025-03-08 01:23:43 -06:00
Nick
f31b53c399 feat: added searXNG to Ceres 2025-03-08 01:22:13 -06:00
Nick
4a4ac80dc8 feat: added searXNG secret 2025-03-08 01:20:38 -06:00
Nick
d0d63f8fc5 feat: added searXNG 2025-03-08 01:20:29 -06:00
Nick
e46556f725 feat: added Dissent 2025-03-08 01:20:14 -06:00
Nick
07f817ef0d feat: changed highlighted text colour 2025-03-08 01:20:06 -06:00
Nick
f151dbb984 feat: changed binds and window rules 2025-03-08 01:19:55 -06:00
Nick
0255666a81 feat: added SearXNG bookmark 2025-03-08 01:19:37 -06:00
Nick
396c0569f6 feat: added Dissent 2025-03-08 01:19:26 -06:00
Nick
2529f6277d feat: added searXNG 2025-03-08 01:19:12 -06:00
17 changed files with 300 additions and 31 deletions

View file

@ -0,0 +1,34 @@
{ instancesFunctions }:
let
inherit (instancesFunctions)
domain0
servicePath
sslPath
sopsPath
;
searxLabel = "SearXNG";
searxName = "searx";
searxSubdomain = "search";
in
{
label = searxLabel;
name = searxName;
email = {
address0 = "noreply@${domain0}";
};
sops = {
path0 = "${sopsPath}/${searxName}";
};
subdomain = searxSubdomain;
paths = {
path0 = "${servicePath}/${searxLabel}";
};
ports = {
port0 = 8888;
};
ssl = {
cert = "${sslPath}/${searxSubdomain}.${domain0}/fullchain.pem";
key = "${sslPath}/${searxSubdomain}.${domain0}/key.pem";
};
}

View file

@ -37,6 +37,7 @@ in
daVinci
mpv
freetube
dissent
discordCanary
element
signal

View file

@ -171,6 +171,16 @@ in
];
keyword = "Router";
}
{
name = "${instances.searx.label} (Internet)";
url = "https://${instances.searx.subdomain}.${instances.web.domains.url0}";
tags = [
"search"
"sear"
"searx"
];
keyword = instances.searx.label;
}
{
name = "${instances.syncthing.label} (${instances.synology.label})";
url = "http://${synology.ip.address0}:${toString instances.syncthing.ports.port0}";

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View file

@ -27,4 +27,15 @@ in
}
];
};
"${instances.searx.label}" = {
definedAliases = [
"@sx"
];
icon = ./icons/sx.png;
urls = [
{
template = "https://${instances.searx.subdomain}.${instances.web.domains.url0}/search?q={searchTerms}";
}
];
};
}

View file

@ -30,7 +30,7 @@ in
{
search = {
force = true;
default = "Kagi";
default = "SearXNG";
engines = aggregatedSearchEngines;
order = [
"AlternativeTo"

View file

@ -0,0 +1,11 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
dissent
;
};
}

View file

@ -22,7 +22,7 @@ let
"X, exec, freetube"
"V, exec, discordcanary"
"M, exec, element-desktop"
"D, exec, ghostty -e zellij a dotfiles"
"D, exec, ghostty"
"P, exec, bitwarden"
# Workspaces
"1, workspace, 1"

View file

@ -28,7 +28,7 @@ let
"maxsize 720 400, class:^${blueman}$"
"maxsize 360 500, class:^${calculator}$"
"maxsize 720 400, class:^${easyeffects}$"
"maxsize 720 400, class:^${scrcpy}$"
# "maxsize 720 400, class:^${scrcpy}$"
"maxsize 720 400, class:^${mpv}$"
"maxsize 720 400, class:^${vlc}$"
"maxsize 640 360, class:^${nomacs}$"
@ -52,7 +52,7 @@ let
"class:^${vlc}$"
"class:^${nomacs}$"
"class:^${flameshot}$"
"class:^${scrcpy}$"
# "class:^${scrcpy}$"
"class:^${nomacs}$"
"class:^${proton}$"
"title:^(${picture})$"
@ -101,7 +101,7 @@ let
"class:^${vlc}$"
"class:^${nomacs}$"
"class:^${flameshot}$"
"class:^${scrcpy}$"
# "class:^${scrcpy}$"
"title:^(${picture})$"
"title:^(${discord-popout})$"
"title:^${bitwarden}$"

View file

@ -30,7 +30,7 @@ in
prompt-color = "#${el.base0D}";
input-color = "#${el.base07}";
default-result-color = "#${el.base05}";
selection-color = "#${el.base0C}";
selection-color = "#${el.base0E}";
prompt-text = "Summon: ";
width = 400;

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 KiB

View file

@ -11,6 +11,7 @@ in
syncthing
ollama
hypr
searx
wayland
xserver
;
@ -49,6 +50,7 @@ in
website
postgresql
samba
searx
vaultwarden
forgejo
wayland

View file

@ -4,15 +4,9 @@
...
}:
let
inherit (flake.config.people)
user0
;
inherit (flake.config.people.users.${user0})
email
;
inherit (flake.config.services)
instances
;
inherit (flake.config.people) user0;
inherit (flake.config.people.users.${user0}) email;
inherit (flake.config.services) instances;
domain0 = instances.web.domains.url0;
domain1 = instances.web.domains.url1;
domain3 = instances.web.domains.url3;
@ -42,6 +36,7 @@ in
"minecraft"
"ollama"
"syncthing"
"searx"
"vaultwarden"
]
)

View file

@ -5,20 +5,10 @@
...
}:
let
inherit (flake.config.people)
user0
;
inherit (flake.config.people.users.${user0})
name
;
inherit (flake.config.machines.devices)
ceres
;
inherit (flake.config.services.instances)
nextcloud
nginx
web
;
inherit (flake.config.people) user0;
inherit (flake.config.people.users.${user0}) name;
inherit (flake.config.machines.devices) ceres;
inherit (flake.config.services.instances) nextcloud nginx web;
service = nextcloud;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url1}";

View file

@ -0,0 +1,214 @@
{
flake,
lib,
config,
...
}:
let
inherit (flake.config.machines.devices) ceres;
inherit (flake.config.services.instances) searx web;
service = searx;
hostname = config.networking.hostName;
localhost = web.localhost.address0;
host = "${service.subdomain}.${web.domains.url0}";
in
{
services =
{
searx = {
enable = true;
redisCreateLocally = true;
uwsgiConfig = {
socket = "/run/searx/searx.sock";
http = ":${builtins.toString service.ports.port0}";
chmod-socket = "660";
};
settings = {
general = {
debug = false;
instance_name = "SearXNG Instance";
donation_url = false;
contact_url = false;
privacypolicy_url = false;
enable_metrics = false;
};
ui = {
static_use_hash = true;
default_locale = "en";
query_in_title = true;
infinite_scroll = true;
center_alignment = true;
default_theme = "simple";
theme_args.simple_style = "auto";
search_on_category_select = true;
hotkeys = "vim";
};
search = {
safe_search = 0;
autocomplete_min = 2;
autocomplete = "duckduckgo";
ban_time_on_fail = 5;
max_ban_time_on_fail = 120;
};
server =
{
port = service.ports.port0;
bind_address = localhost;
secret_key = config.sops.secrets.searx-key.path;
limiter = false;
public_instance = false;
image_proxy = true;
method = "GET";
}
// (
if hostname == ceres.name then
{
base_url = "https://${host}";
}
else
{ }
);
engines = lib.mapAttrsToList (name: value: { inherit name; } // value) {
"duckduckgo".disabled = false;
"brave".disabled = false;
"bing".disabled = false;
"mojeek".disabled = true;
"mwmbl".disabled = false;
"mwmbl".weight = 0.4;
"qwant".disabled = true;
"crowdview".disabled = false;
"crowdview".weight = 0.5;
"curlie".disabled = true;
"ddg definitions".disabled = false;
"ddg definitions".weight = 2;
"wikibooks".disabled = false;
"wikidata".disabled = false;
"wikiquote".disabled = true;
"wikisource".disabled = true;
"wikispecies".disabled = false;
"wikispecies".weight = 0.5;
"wikiversity".disabled = false;
"wikiversity".weight = 0.5;
"wikivoyage".disabled = false;
"wikivoyage".weight = 0.5;
"currency".disabled = true;
"dictzone".disabled = true;
"lingva".disabled = true;
"bing images".disabled = false;
"brave.images".disabled = false;
"duckduckgo images".disabled = false;
"google images".disabled = false;
"qwant images".disabled = true;
"1x".disabled = true;
"artic".disabled = false;
"deviantart".disabled = false;
"flickr".disabled = true;
"imgur".disabled = false;
"library of congress".disabled = false;
"material icons".disabled = true;
"material icons".weight = 0.2;
"openverse".disabled = false;
"pinterest".disabled = true;
"svgrepo".disabled = false;
"unsplash".disabled = false;
"wallhaven".disabled = false;
"wikicommons.images".disabled = false;
"yacy images".disabled = true;
"bing videos".disabled = false;
"brave.videos".disabled = true;
"duckduckgo videos".disabled = true;
"google videos".disabled = false;
"qwant videos".disabled = false;
"dailymotion".disabled = true;
"google play movies".disabled = true;
"invidious".disabled = true;
"odysee".disabled = true;
"peertube".disabled = true;
"piped".disabled = true;
"rumble".disabled = false;
"sepiasearch".disabled = false;
"vimeo".disabled = true;
"youtube".disabled = false;
"brave.news".disabled = true;
"google news".disabled = true;
};
outgoing = {
request_timeout = 5.0;
max_request_timeout = 15.0;
pool_connections = 100;
pool_maxsize = 15;
enable_http2 = true;
};
enabled_plugins = [
"Basic Calculator"
"Hash plugin"
"Tor check plugin"
"Open Access DOI rewrite"
"Hostnames plugin"
"Unit converter plugin"
"Tracker URL remover"
];
};
};
}
// (
if hostname == ceres.name then
{
caddy = {
virtualHosts = {
"${host}" = {
extraConfig = ''
# Use the uwsgi socket directly instead of reverse_proxy to HTTP
reverse_proxy unix//run/searx/searx.sock {
transport unix {
dial_timeout 5s
}
header_up Host {host}
header_up X-Forwarded-For {remote}
header_up X-Forwarded-Proto {scheme}
header_up X-Script-Name /
}
tls ${service.ssl.cert} ${service.ssl.key}
encode zstd gzip
'';
};
};
};
}
else
{ }
);
users.groups.searx.members = [ "caddy" ];
# systemd.services.caddy.serviceConfig.ProtectHome = false;
sops =
let
sopsPath = secret: {
path = "${service.sops.path0}/${service.name}-${secret}";
owner = service.name;
mode = "600";
};
in
{
secrets = builtins.listToAttrs (
map
(secret: {
name = "${service.name}-${secret}";
value = sopsPath secret;
})
[
"key"
]
);
};
networking = {
firewall = {
allowedTCPPorts = [
service.ports.port0
];
};
};
}

View file

@ -29,6 +29,7 @@ nextcloud-user1: ENC[AES256_GCM,data:6EsbSeWWftPjZQM=,iv:LTcx6fx55d3+SepFIoy/6cB
nextcloud-user2: ENC[AES256_GCM,data:axrWMmouq5gwqdGL,iv:BPHEn47z2g7gocKO4g5vV4ZSGb+AMA3vGYheAy1zR5Q=,tag:QOWg4fdKxMhGk2qRehH2EQ==,type:str]
nextcloud-user3: ENC[AES256_GCM,data:g6ldEdtBuEmPAQYAQfaO,iv:6fElE2vZh9l/KgJuNevklpIlZZdqGHgwhnOzq1n3ojE=,tag:T0Q1IkdVTeW2T1FmGnjz8A==,type:str]
claude-api-key: ENC[AES256_GCM,data:QzGJPBnqx4PrDjNvGeyjl0B/W9pkBS4YWK/lrDK4sx0/eBbwMk2qvi03wOhVfvz71UVRpDIZ0F3eVtB8h8Nr94Ha/8IlFQtKxrh60XIzUs/GLB2jKZursZny8IjqZMrt9YHFOphqAWawB33g,iv:XKPqQ0sGukhy0bPXATYwjJMAfSkXdeanc4kULb5TWmA=,tag:vmH+pzU5qoOF5W0fhVfhDA==,type:str]
searx-key: ENC[AES256_GCM,data:kzKWa4xCKDEWocyMmK8FWyAqHM7BuJ1f63XFfO8Dtig=,iv:Vs27/ri4nBzJ/A0LnxsCZD/kYraFZ6tD63VhUqYFwx8=,tag:8gx+j7RenuRzjj0AY5v8uQ==,type:str]
sops:
kms: []
gcp_kms: []
@ -44,8 +45,8 @@ sops:
bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD
aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-02-03T03:16:19Z"
mac: ENC[AES256_GCM,data:zoMaGiNDQ8bZwXbmgwTK07F8mGh7HZnaMPRdcftpiy1t5HuYKXU8CdiaREaGozCyIrgvTHbtQjjtL1KFTzpCkN1+bEpL+VA75vEzAkeoImRCFNMnTVdc2I5Bo0nOg8OW5HwI7Ezdv2ZrSd3qG7YW2WZHpctvOgWAoWv2z2zGHX8=,iv:1qs7/7aQ88JbAr3wEk70t/JmxfvfIAMSWXKckPmYg74=,tag:0Tpls8L13wU4WdMU4v4e5w==,type:str]
lastmodified: "2025-03-08T06:46:18Z"
mac: ENC[AES256_GCM,data:bFmkUxQE7Jl6I/FdpsWzbAu5/g9rLYH5C9jRRwY0ln+ZAANXaxfEYj5oeMZA0lDdgCJ07Hnt0RZdyYp/jyNzY+om16qKqRxv6qpqE89jfK937LsMxc6HJcuGQQcA/1QgSCU9OLWqdbDZxik3twemQd3aPAaHLF1ZEM7tx0gCOgQ=,iv:NizgZd2mb5sXm7oxRcpVKRAIyw75dASuP0eGzhBKOM8=,tag:K0rzvjQFB++gioKobt1Sow==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4