+1
.gitignore
+1
.gitignore
+21
hosts/blanka/containers/linkding.nix
+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
+1
hosts/blanka/default.nix
+7
-2
hosts/blanka/secrets.yaml
+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
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
+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
+10
pkgs/attic/docker-compose.yml
+4
-1
todo.md
+4
-1
todo.md
···
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