forked from aylac.top/nixcfg
this repo has no description

took karakeep off because it's heavy as shit and tried making pds-gatekeeper work and failed

aylac.top bc8dd2a6 c4290846

verified
Changed files
+103 -20
hosts
nanpi
modules
flake
home
snippets
firefox-based
nixos
services
+25 -4
flake.lock
···
"nixpkgs-unstable": "nixpkgs-unstable",
"nur": "nur",
"secrets": "secrets",
-
"tangled-core": "tangled-core"
+
"tangled-core": "tangled-core",
+
"tgirlpkgs": "tgirlpkgs"
},
"rust-overlay": {
···
"secrets": {
"flake": false,
"locked": {
-
"lastModified": 1756947975,
-
"narHash": "sha256-Wgu/RE90hq9PixuZnlhx7UO5QXNBLWbrMN0PZnJSGX4=",
+
"lastModified": 1757008448,
+
"narHash": "sha256-VJT0UpykwNz8P9xMbC+8CZxEXz+9badjrcXh20UIMbE=",
"owner": "ayla6",
"repo": "secrets",
-
"rev": "9075972fc860180bec1d885a2e00f9aa79944249",
+
"rev": "4b5ce5c5863e7b421e6a300a2be417e872ebf19f",
"type": "github"
},
"original": {
···
"original": {
"type": "git",
"url": "https://tangled.sh/@tangled.sh/core"
+
}
+
},
+
"tgirlpkgs": {
+
"inputs": {
+
"nixpkgs": [
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1756975169,
+
"narHash": "sha256-WGmLn8/KWBCXvQHv0qDtWaXEIsY7IJd0crAkebY1CDE=",
+
"owner": "tgirlcloud",
+
"repo": "pkgs",
+
"rev": "e37520861e648c76ee63ffad2d560bd45326bf92",
+
"type": "github"
+
},
+
"original": {
+
"owner": "tgirlcloud",
+
"repo": "pkgs",
+
"type": "github"
},
"treefmt-nix": {
+5
flake.nix
···
inputs.nixpkgs.follows = "nixpkgs";
};
+
tgirlpkgs = {
+
url = "github:tgirlcloud/pkgs";
+
inputs.nixpkgs.follows = "nixpkgs";
+
};
+
firefox-onebar = {
url = "https://git.gay/freeplay/Firefox-Onebar/raw/branch/waf/onebar.css";
flake = false;
+1 -1
hosts/nanpi/default.nix
···
glance.enable = true;
jellyfin.enable = true;
jellyseerr.enable = true;
-
karakeep.enable = true;
+
karakeep.enable = false;
miniflux.enable = true;
ntfy.enable = true;
pds.enable = true;
+1
modules/flake/nixos.nix
···
inputs.home-manager.nixosModules.home-manager
inputs.lanzaboote.nixosModules.lanzaboote
inputs.tangled-core.nixosModules.knot
+
inputs.tgirlpkgs.nixosModules.default
modules.hardware
modules.nixos
modules.snippets
+1 -1
modules/home/snippets/firefox-based/default.nix
···
steam-database
snowflake
sponsorblock
-
karakeep
+
#karakeep
bitwarden
];
+5
modules/nixos/services/caddy/default.nix
···
age.secrets.caddy.file = "${self.inputs.secrets}/caddy.age";
networking.firewall.allowedTCPPorts = [80 443];
+
boot.kernel.sysctl = {
+
"net.core.rmem_max" = 7500000;
+
"net.core.wmem_max" = 7500000;
+
};
+
services = {
caddy = {
enable = true;
+6 -6
modules/nixos/services/glance/default.nix
···
check-url = "http://${tailnet.networkMap.vaultwarden.hostName}:${toString tailnet.networkMap.vaultwarden.port}/";
icon = "di:vaultwarden";
}
-
{
-
title = "Karakeep";
-
url = "https://${tailnet.networkMap.karakeep.vHost}/";
-
check-url = "http://${tailnet.networkMap.karakeep.hostName}:${toString tailnet.networkMap.karakeep.port}/";
-
icon = "di:karakeep";
-
}
+
#{
+
# title = "Karakeep";
+
# url = "https://${tailnet.networkMap.karakeep.vHost}/";
+
# check-url = "http://${tailnet.networkMap.karakeep.hostName}:${toString tailnet.networkMap.karakeep.port}/";
+
# icon = "di:karakeep";
+
#}
{
title = "Jellyfin";
url = "https://${tailnet.networkMap.jellyfin.vHost}/";
+59 -8
modules/nixos/services/pds/default.nix
···
+
# for the pds-gatekeeper https://tangled.sh/@isabelroses.com/dotfiles/blob/61ad925dc8b4537b568784971589b137df5cb948/modules/nixos/services/pds.nix
{
config,
lib,
+
pkgs,
+
self,
...
}: let
name = "pds";
cfg = config.myNixOS.services.${name};
+
+
gk = config.containers.pds.config.services.pds-gatekeeper.settings;
+
gkurl = "http://${gk.GATEKEEPER_HOST}:${toString gk.GATEKEEPER_PORT}";
network = config.mySnippets.aylac-top;
service = network.networkMap.${name};
···
respond "${pdsHomePage}"
}
+
# https://gist.github.com/mary-ext/6e27b24a83838202908808ad528b3318
handle /xrpc/app.bsky.unspecced.getAgeAssuranceState {
header content-type "application/json"
header access-control-allow-headers "authorization,dpop,atproto-accept-labelers,atproto-proxy"
···
respond `{"lastInitiatedAt":"2025-07-14T14:22:43.912Z","status":"assured"}` 200
}
+
# hijack the links for pds-gatekeeper
+
#@gatekeeper {
+
# path /xrpc/com.atproto.server.getSession
+
# path /xrpc/com.atproto.server.updateEmail
+
# path /xrpc/com.atproto.server.createSession
+
# path /@atproto/oauth-provider/~api/sign-in
+
#}
+
+
#handle @gatekeeper {
+
# reverse_proxy ${gkurl}
+
#}
+
handle {
reverse_proxy ${service.hostName}:${toString service.port}
}
···
autoStart = true;
bindMounts."${config.age.secrets.pds.path}".isReadOnly = true;
config = {
-
services.bluesky-pds = {
-
enable = true;
-
environmentFiles = [config.age.secrets.pds.path];
-
pdsadmin.enable = true;
-
settings = {
-
PDS_HOSTNAME = service.vHost;
-
# PDS_BSKY_APP_VIEW_URL = "https://bsky.zeppelin.social";
-
# PDS_BSKY_APP_VIEW_DID = "did:web:bsky.zeppelin.social";
+
imports = [self.inputs.tgirlpkgs.nixosModules.default];
+
+
services = {
+
bluesky-pds = {
+
enable = true;
+
environmentFiles = [config.age.secrets.pds.path];
+
pdsadmin.enable = true;
+
settings = {
+
PDS_HOSTNAME = service.vHost;
+
PDS_PORT = service.port;
+
# PDS_BSKY_APP_VIEW_URL = "https://bsky.zeppelin.social";
+
# PDS_BSKY_APP_VIEW_DID = "did:web:bsky.zeppelin.social";
+
+
# crawlers taken from the following post
+
# <https://bsky.app/profile/billy.wales/post/3lxpd67hnks2e>
+
PDS_CRAWLERS = lib.concatStringsSep "," [
+
"https://bsky.network"
+
"https://relay.cerulea.blue"
+
"https://relay.fire.hose.cam"
+
"https://relay2.fire.hose.cam"
+
"https://relay3.fr.hose.cam"
+
"https://relay.hayescmd.net"
+
];
+
};
+
};
+
+
pds-gatekeeper = {
+
enable = false;
+
# we need to share a lot of secrets between pds and gatekeeper
+
environmentFiles = [config.age.secrets.pds.path];
+
+
settings = {
+
GATEKEEPER_PORT = 3602;
+
PDS_BASE_URL = "http://${service.hostName}:${toString service.port}";
+
GATEKEEPER_TRUST_PROXY = "true";
+
+
# make an empty file to prevent early errors due to no pds env
+
# it really wants to load this file but with nix we don't really do it that way
+
PDS_ENV_LOCATION = toString (pkgs.writeText "gatekeeper-pds-env" "");
+
};
};
};