nix configs, mainly for my server in my homelab

linkding,attic wip

Changed files
+133 -3
hosts
pkgs
+1
.gitignore
··· 2 result-2 3 data 4 x-data
··· 2 result-2 3 data 4 x-data 5 + pkgs/attic/config/server.toml
+21
hosts/blanka/containers/linkding.nix
···
··· 1 + {config, ...}: { 2 + sops.secrets."linkding/env" = {}; 3 + 4 + virtualisation.oci-containers.containers.linkding = { 5 + autoStart = true; 6 + image = "ghcr.io/sissbruecker/linkding:1.44.0-plus-alpine@sha256:eb8928109e22b528496b580073be344fb50c7e2c448d5427b336eb48f38ac6b3"; 7 + ports = ["9090"]; 8 + dependsOn = ["traefik"]; 9 + extraOptions = ["--net=external"]; 10 + environmentFiles = [config.sops.secrets."linkding/env".path]; 11 + volumes = ["/blanka/linkding/data/:/etc/linkding/data/:rw"]; 12 + labels = { 13 + "traefik.enable" = "true"; 14 + "traefik.http.routers.linkding.rule" = "Host(`linkding.abare.party`)"; 15 + "traefik.http.routers.linkding.entrypoints" = "websecure"; 16 + "traefik.http.routers.linkding.tls.certresolver" = "porkbun"; 17 + "traefik.http.routers.linkding.service" = "linkding"; 18 + "traefik.http.services.linkding.loadbalancer.server.port" = "9090"; 19 + }; 20 + }; 21 + }
+1
hosts/blanka/default.nix
··· 14 15 ./containers/healthchecks.nix 16 ./containers/home-gallery.nix 17 ./containers/mc-horangi.nix 18 ./containers/whoami.nix 19 ];
··· 14 15 ./containers/healthchecks.nix 16 ./containers/home-gallery.nix 17 + ./containers/linkding.nix 18 ./containers/mc-horangi.nix 19 ./containers/whoami.nix 20 ];
+7 -2
hosts/blanka/secrets.yaml
··· 10 env: ENC[AES256_GCM,data:FQHLCOoi7DL0H1lZqVwd2EzuQYtqf/sPCxApSGAOAY+GE7wIQI6r3FYJw3gURPFXpDyjD+sKj1ZqFCt3op2Bn5oi8DhtZz+A+B3y5FENZ5c=,iv:q9RpyU2Di1rWVTt4BbJl5J1JCK2mZp6plbKbAJaj1QI=,tag:bYh6pz5wNQmnOZgwn6oLGw==,type:str] 11 healthchecks: 12 env: ENC[AES256_GCM,data:PPUuH6daISxkj/9G+/wd9aWWmJUZsGdY764v5DB30fiH06GRqFl8W3yS4AvLC5JOEgwz49DN2Ydow9UW5P0BdAiAlYb0rlg8pdmr+EuSuKzkO9RZIOBPxv1Q0YLy2uYj/S83hvV1pe1rsQZ9TLI93ArYFag9rdhxp9hON82HQYn2s/mW4BXa003CcIG5+BQHyWq+mMN6wloua7f7/jBlOHo8nlDCu3UV+47Hr5AfivJVS5cSgYdGaOZRhNlV2Xf+ISgZWmqz0yatyiE38aFFesidOaf/4me/piAsFOzFnOmjs+aKEcFbaX24MUjMy0c/n/hQ8LZjJVFydhdUXlOcBa0MO+tMWkuJNK7H3iJfGtuCPKPJG+Gjt74rKh2oMRkWrO1E5uM45TGLVLXU/IMIW9V13dkCg+wg47NP6GV7IB8/gVKp1swtg04+1PZThnL63GSo1ZalMRqBDRMJnxLwGJlj9tpb8rizTYrEixU6i9maH/50EzcwZHvkEo1mxD6hleFwHJNVE3lpvpCb27PAnEG0tnfRXfX4KgMTxpxxgn1Yim8G5BkDB2MiTHg2KxBd6ewjBFnlbm0LhBVxdOIRL8d6HhK7BajLt5PIEgrwZRo2f8dthQVlnIlbUDzovy4PoJDFTMAoEEhs5hUuyrP9gkV8E/XGmOzB+N77+CKFdCx2OSq8ASzBsUZPxVlT1xxnijxTEr8JIIGtaqB1+PVPNrZ+uRDk0UALFEdbkKK2TVepJ5ah7sBhMnqU54csriswjleOs1+n7OZGCaQK1D4DDcy/a78UvlPXuoPEVktLOAEqN7/gGYbChS4JXZGNYMRP/RMPqMclutHFBOq8nmiqAP0QngWZqWmxKcJxomt8DCdL6jNUW0UuIp3+DftL0dmfwECJX8uVFZLy7zLqWbZmRAojb8A87PtJofQG2w3kC0IOZrZpXAVnN0uwkQJFVoc3o6xnHuQjJQ8NsrhWIOFNEuUXDjd5dCP87zmUVeT2YbrS4W/x9wmxKWSeTRnbKgjp1Pw=,iv:aS+FHpCrc0F1PppgStCHyvRFLCFrFYUduEZK3WD9vbc=,tag:Y3iHquU8r8rHAUGALRbQSw==,type:str] 13 sops: 14 age: 15 - recipient: age1gxylhtpg0mq3dyn6qjszlgc4hvmw0cy5q7jfvr3x9glf4uwlr3lsew4883 ··· 21 UFFPdG9la2tWS1BuZVM5SkV3YTFiWlUKp7v5tO0w1lVJG97R3M6KS+sPLMENW52i 22 R2eABNGskY1lQ6O2OnzpuoOYJt9K9Ws6DoZYVTvodQF03DvzDheo8Q== 23 -----END AGE ENCRYPTED FILE----- 24 - lastmodified: "2025-09-27T15:32:23Z" 25 - mac: ENC[AES256_GCM,data:1zKYX1iTdJRz4M0raYHS3pf/v/DEIW5jg/HL1xUn3qyM/MThJ1XAxiQO2bISVaQD7Cc0UK/jE4e1tG2I+wGn5PV96iHayN+6WLRMkf0pM1YjZ6u8i2kEkL4CKDLU9T5c3YGkIa9YHxvUL5eI5z7HSIYGT1jGxOEYjigFKqZPPds=,iv:Coq8AUOiW8HEQ1E7FsOErU25M84IwkX/f/R1R4L/RDI=,tag:UZTsvSDym4lv+wL3pMDJ9g==,type:str] 26 pgp: 27 - created_at: "2025-09-13T06:12:50Z" 28 enc: |-
··· 10 env: ENC[AES256_GCM,data:FQHLCOoi7DL0H1lZqVwd2EzuQYtqf/sPCxApSGAOAY+GE7wIQI6r3FYJw3gURPFXpDyjD+sKj1ZqFCt3op2Bn5oi8DhtZz+A+B3y5FENZ5c=,iv:q9RpyU2Di1rWVTt4BbJl5J1JCK2mZp6plbKbAJaj1QI=,tag:bYh6pz5wNQmnOZgwn6oLGw==,type:str] 11 healthchecks: 12 env: ENC[AES256_GCM,data:PPUuH6daISxkj/9G+/wd9aWWmJUZsGdY764v5DB30fiH06GRqFl8W3yS4AvLC5JOEgwz49DN2Ydow9UW5P0BdAiAlYb0rlg8pdmr+EuSuKzkO9RZIOBPxv1Q0YLy2uYj/S83hvV1pe1rsQZ9TLI93ArYFag9rdhxp9hON82HQYn2s/mW4BXa003CcIG5+BQHyWq+mMN6wloua7f7/jBlOHo8nlDCu3UV+47Hr5AfivJVS5cSgYdGaOZRhNlV2Xf+ISgZWmqz0yatyiE38aFFesidOaf/4me/piAsFOzFnOmjs+aKEcFbaX24MUjMy0c/n/hQ8LZjJVFydhdUXlOcBa0MO+tMWkuJNK7H3iJfGtuCPKPJG+Gjt74rKh2oMRkWrO1E5uM45TGLVLXU/IMIW9V13dkCg+wg47NP6GV7IB8/gVKp1swtg04+1PZThnL63GSo1ZalMRqBDRMJnxLwGJlj9tpb8rizTYrEixU6i9maH/50EzcwZHvkEo1mxD6hleFwHJNVE3lpvpCb27PAnEG0tnfRXfX4KgMTxpxxgn1Yim8G5BkDB2MiTHg2KxBd6ewjBFnlbm0LhBVxdOIRL8d6HhK7BajLt5PIEgrwZRo2f8dthQVlnIlbUDzovy4PoJDFTMAoEEhs5hUuyrP9gkV8E/XGmOzB+N77+CKFdCx2OSq8ASzBsUZPxVlT1xxnijxTEr8JIIGtaqB1+PVPNrZ+uRDk0UALFEdbkKK2TVepJ5ah7sBhMnqU54csriswjleOs1+n7OZGCaQK1D4DDcy/a78UvlPXuoPEVktLOAEqN7/gGYbChS4JXZGNYMRP/RMPqMclutHFBOq8nmiqAP0QngWZqWmxKcJxomt8DCdL6jNUW0UuIp3+DftL0dmfwECJX8uVFZLy7zLqWbZmRAojb8A87PtJofQG2w3kC0IOZrZpXAVnN0uwkQJFVoc3o6xnHuQjJQ8NsrhWIOFNEuUXDjd5dCP87zmUVeT2YbrS4W/x9wmxKWSeTRnbKgjp1Pw=,iv:aS+FHpCrc0F1PppgStCHyvRFLCFrFYUduEZK3WD9vbc=,tag:Y3iHquU8r8rHAUGALRbQSw==,type:str] 13 + attic: 14 + env: ENC[AES256_GCM,data:JvQnnQ4++DXfLVyivH9Q/EvmJB4=,iv:+Y4M7ef5/XJytaIbmynzQ5pWR/bnbuhTJUq5Hfiiq8k=,tag:fbPaktq8HApxM447K28+rg==,type:str] 15 + config: ENC[AES256_GCM,data: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,iv:TawOaoHyQf6cbd/j/eU/AiHcao+it9yk4pnsODX3Eow=,tag:uo5WC6wobEJBFDVkNGDPvA==,type:str] 16 + linkding: 17 + env: ENC[AES256_GCM,data:cmL8CyY3e4HvjZXRZzt8XAQDrBm1eEHd34UBocXNnKcX+CVkdb/VBSqHTrhlJZGUrcNQXEius48EubR8Rg2XUFvfkJBtiWwwvaiUE43VlbcB8SVNSk4Mpm3oiWKO4SLDxCCRL1oL4e4AEhVICPhJVEcOnSfafeO/y4L4ddByrGLrTTYfSv1mOywXbDHAvLJbXQdEbnoGeRuxYMMaiz25UJ/QdOHpndaEytQj6MsdtPEMUz5O9oeVa5jvkD+5/6gjwbvsFP2YipvlOv0ndqwBvTrsZ9E1yIa41PaLRPORmsGXR5pl8WKABOvg5TCyV+fspDf4pfJCAg1XfNhAmqZHGFCob22N+sOecIeQZ5M2RMGYV41VHCvBizxwrtcoTY15YovXCn02COfsWJqd7hoGzOW6cD8lEc3fTorK8t2z1AJ89XQZBACdFS0MjpJARMHBPWOFh1eKtC4Bvw/VbQ/qpFZTEB74sBZCant/jNM+9nOBUPtrtKiA0EciRsRkFwelTyUapCK2iq2rUuZv7Qk+afZlH+Oy9n6+UeyCkmYUU0j0X7godPX0jsaIPo4GhaaOshc/MypL/Lz1Lane0tJW8j5jtCfYBy6KVLgmQHDKf38T10CfD4CemrXR7jNVzDU684wb+4zb85WylhdstUCccp9JBvZI1s/VuRm3R/8a1slDziJgR3RZX6OwxO5iHqOAoUh0aKk0SfClUQblcKXsfeRKXQ6rYPBscw+sam/+irq8rGo1Ywo8NFA8y3Zi,iv:I86aGTkOgZT1yGJisU+SdQ3ectTwNkIIdc2zltcih0Y=,tag:RleNlgSRroF4Z5sV96jBag==,type:str] 18 sops: 19 age: 20 - recipient: age1gxylhtpg0mq3dyn6qjszlgc4hvmw0cy5q7jfvr3x9glf4uwlr3lsew4883 ··· 26 UFFPdG9la2tWS1BuZVM5SkV3YTFiWlUKp7v5tO0w1lVJG97R3M6KS+sPLMENW52i 27 R2eABNGskY1lQ6O2OnzpuoOYJt9K9Ws6DoZYVTvodQF03DvzDheo8Q== 28 -----END AGE ENCRYPTED FILE----- 29 + lastmodified: "2025-10-06T15:35:27Z" 30 + mac: ENC[AES256_GCM,data:WCaTrtJdvDq+Afny6AmGh1Ymhro4d2u2ZEt0xL0j6zoEp5LVBn4Zw/1JsIimrfZdBW/Qqns2ggmAwOgOlJaEnnImmwu5mqn+Sh71XofUAcKS7sn59h+I/6NCzCVIKmO1n6uprAof35S9ei0fBUWSBX0oSF/vuL5EuZEdcAnTeNA=,iv:ZdktWon8JrJGB7evxqz4RyDSLwxk1twCQ32HZW5dQko=,tag:k56hOrB3HRSGe3eR1qADwg==,type:str] 31 pgp: 32 - created_at: "2025-09-13T06:12:50Z" 33 enc: |-
+1
pkgs/attic/config/token
···
··· 1 + eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE4MjI4MzA4NTUsIm5iZiI6MTc1OTc1ODg1NSwic3ViIjoicm9vdCIsImh0dHBzOi8vand0LmF0dGljLnJzL3YxIjp7ImNhY2hlcyI6eyIqIjp7InIiOjEsInciOjEsImQiOjEsImNjIjoxLCJjciI6MSwiY3EiOjEsImNkIjoxfX19fQ.oRjoHRtVbETdEYc_ThsoBkpSt0LDc-TzRc6gJMX-GxfFoGNu6x_l5R54lNdBU71LHFLq4YBefzWTc7M_eHb_K5vbP6ddgWfiXUyInd6zTmAytDrRknamHwynBVejZRl8bDJ2XeNNFGIJIxYIRuEjH5WR_QvsAKCT9DWIO525jPVLfWP-snUAQDfUkVn7yt6k7jpVYrRqbr3XvC2OeEbStbc-DzfH9V7qouQWUhNyGoIh_lwDsuoyGsj3J0F1glkAHFFZGPB77o3C-F1CKocCsC6kQxzfIS-XL1Afrv6vm-HFITS-mJhlajDMo0H4NxCEmtGdLy5anOuDqwamG3YDBQ
+88
pkgs/attic/default.nix
···
··· 1 + { 2 + pkgs, 3 + attic-server, 4 + attic-client, 5 + fetchFromGitHub, 6 + rustPlatform, 7 + dockerTools, 8 + ... 9 + }: let 10 + common-server = { 11 + version, 12 + rev, 13 + hash, 14 + cargoHash, 15 + }: 16 + attic-server.overrideAttrs (finalAttrs: prevAttrs: { 17 + inherit version cargoHash; 18 + src = fetchFromGitHub { 19 + owner = "andrewzah"; 20 + repo = "attic"; 21 + inherit rev hash; 22 + }; 23 + 24 + cargoDeps = rustPlatform.fetchCargoVendor { 25 + inherit (finalAttrs) src; 26 + name = "${prevAttrs.pname}-${finalAttrs.version}"; 27 + hash = cargoHash; 28 + }; 29 + }); 30 + 31 + common-client = { 32 + version, 33 + rev, 34 + hash, 35 + cargoHash, 36 + }: 37 + attic-client.overrideAttrs (finalAttrs: prevAttrs: { 38 + inherit version cargoHash; 39 + src = fetchFromGitHub { 40 + owner = "andrewzah"; 41 + repo = "attic"; 42 + inherit rev hash; 43 + }; 44 + cargoDeps = rustPlatform.fetchCargoVendor { 45 + inherit (finalAttrs) src; 46 + name = "${prevAttrs.pname}-${finalAttrs.version}"; 47 + hash = cargoHash; 48 + }; 49 + }); 50 + 51 + attic-server' = attic-server_2025-07-17; 52 + attic-server_2025-07-17 = common-server { 53 + version = "2025-07-17"; 54 + rev = "b26bedfbfc8b0e60be0213c55955af73b443fff5"; 55 + hash = "sha256-xUbSDezBWpReQCzJefuzV+LfAvcISrxcxOUGb7uWPq8="; 56 + cargoHash = "sha256-NdzwYnD0yMEI2RZwwXl/evYx9zdBVMOUee+V7uq1cf0="; 57 + }; 58 + 59 + attic-client' = attic-client_2025-07-17; 60 + attic-client_2025-07-17 = common-client { 61 + version = "2025-07-17"; 62 + rev = "b26bedfbfc8b0e60be0213c55955af73b443fff5"; 63 + hash = "sha256-xUbSDezBWpReQCzJefuzV+LfAvcISrxcxOUGb7uWPq8="; 64 + cargoHash = "sha256-NdzwYnD0yMEI2RZwwXl/evYx9zdBVMOUee+V7uq1cf0="; 65 + }; 66 + in rec { 67 + container = dockerTools.buildImage { 68 + name = "docker.io/andrewzah/attic"; 69 + tag = "${attic-server'.version}"; 70 + copyToRoot = pkgs.buildEnv { 71 + name = "pkgs-attic-container"; 72 + paths = [attic-client' attic-server']; 73 + pathsToLink = ["/bin"]; 74 + }; 75 + 76 + config = { 77 + entrypoint = [ 78 + "/bin/atticd" 79 + "--config" 80 + "/var/attic/server.toml" 81 + "--init" 82 + "--init-token-file" 83 + "/var/attic/init-token" 84 + ]; 85 + exposedPorts = {"3443" = {};}; 86 + }; 87 + }; 88 + }
+10
pkgs/attic/docker-compose.yml
···
··· 1 + --- 2 + services: 3 + attic: 4 + image: docker.io/andrewzah/attic:2025-07-17 5 + volumes: 6 + - "./config/server.toml:/var/attic/server.toml" 7 + - "./config/token:/var/attic/init-token" 8 + - "./x-data/:/data/:rw" 9 + ports: 10 + - "8082:8080"
+4 -1
todo.md
··· 1 ## prio 2 3 - automate openldap? 4 - forgejo / codeberg code host - CI builds? 5 6 - https://github.com/docmost/docmost 7 - https://github.com/outline/outline 8 - - https://github.com/sissbruecker/linkding 9 10 ## when possible 11
··· 1 ## prio 2 3 + - https://github.com/sissbruecker/linkding 4 + - matrix: conduit / continuwuity 5 + - jails? https://git.sr.ht/~alexdavid/jail.nix 6 + - syncthing: https://pastebin.com/FrSgKRYm 7 - automate openldap? 8 - forgejo / codeberg code host - CI builds? 9 10 - https://github.com/docmost/docmost 11 - https://github.com/outline/outline 12 13 ## when possible 14