tangled
alpha
login
or
join now
psychedeli.ca
/
tangled-containers
4
fork
atom
Container images for the Tangled Knot and Spindle servers
4
fork
atom
overview
issues
pulls
pipelines
add compose file and task to run services
psychedeli.ca
3 months ago
3c23d162
a5c36442
verified
This commit was signed with the committer's
known signature
.
psychedeli.ca
SSH Key Fingerprint:
SHA256:lxA4UZo3m7mVMluMNbOrpavEOBPMDc7Vh521+i80n50=
0/0
Waiting for spindle ...
+65
-2
3 changed files
expand all
collapse all
unified
split
.env.yaml
compose.yml
mise.toml
+7
-2
.env.yaml
···
1
1
DOCKER_USER: ENC[AES256_GCM,data:eg6enZA=,iv:Zx73u8oHotkMPbnm/gdT+3V/6hSuJx2/3os9M2ls0k8=,tag:d4Tz73i/CGAURCKXP7d/Yw==,type:str]
2
2
DOCKER_TOKEN: ENC[AES256_GCM,data:xnGW4Hw3rBmtnB1+wAbej8bXidP6FuhhwFGKgpx4WrPT6ogP,iv:pHWBn/lMjgqmQxlKgUdIRexhm5LBPXkn22D2SJD9xb0=,tag:KvZzTPWLFDDniPupFhq8Yg==,type:str]
3
3
+
KNOT_SERVER_HOSTNAME: ENC[AES256_GCM,data:xyRDW6QThNuXj1mXIL0xPGM3,iv:UlGD2vG/U+23KVsQYpOn4kjsx8a/Y/vDXr2FUvLcyVg=,tag:L/pG9XcbP0sBfQfTUNUAtA==,type:str]
4
4
+
KNOT_SERVER_OWNER: ENC[AES256_GCM,data:wFbHTDCs+lRbOABGnx2l0cdy5B392t21iKZED6oLkwE=,iv:VP0a7l0DWi3k0+bd8PJMiA4V8X6HQABP45T1eO+v42c=,tag:vejsQDOl89/tLOplioTF8g==,type:str]
5
5
+
SPINDLE_SERVER_HOSTNAME: ENC[AES256_GCM,data:H3F78ApdXkkFxfs/fes9CF5q,iv:PqdklQul4wQAakj2oXdPm0L6qPxr/oyvqp2tp8S/CR0=,tag:09RqxAA7WhsEMgXjhBYzJw==,type:str]
6
6
+
SPINDLE_SERVER_OWNER: ENC[AES256_GCM,data:uszll56Z0eBfSpDuvfgMrb3mu1yOZI+WY1wwCBTGVow=,iv:T2nvpm9DJCcGmyxi5CREUA8uhCpHJ98RILtSTmKoDe8=,tag:6Vln4+FQAxyUkI+v9wo8Cw==,type:str]
7
7
+
CADDY_EMAIL: ENC[AES256_GCM,data:7/JJPvOmBAo5DYvLAoJLX4j2ZHJuWBRuPaZ/9VxQ5i8=,iv:SR7QnY7BPdo4XoPgL0PEXpm8jomvTXHz8GnLf5/PWyY=,tag:MOndV6f9DjO/4IbaVjqhpg==,type:str]
3
8
sops:
4
9
age:
5
10
- recipient: age1tw3hs5xhr28dq2dklfptftf0rl322cl9p9pe9yjrkkt4md2gtays772qjt
···
11
16
cjA3NXZOQUhwc01EVmdPdjYxd2FkTVUKSvzexBtylIyQCUPVBqThkL0yah37T9/I
12
17
RDPl3vsdvcMpN0TKCVwn7P3W+7vciT86wq+6haG1fT1AFqAXCEDaiQ==
13
18
-----END AGE ENCRYPTED FILE-----
14
14
-
lastmodified: "2025-11-21T11:54:33Z"
15
15
-
mac: ENC[AES256_GCM,data:/VodMi4mmtc/TJn37PkyaQs6SYy6pQmfQbA6wvV2Uk+mWLuMT7rYc5D1a41eQfCzV0MDcp2TadUeX5R49BLOgMcmbW9bNXk8QwESpFiT1bPviV3+NpSooZiXING36NOFP4UxsNYJI1zyqC6p5fX6P83Df097WrJfv07+2HaSh8g=,iv:EkNWQeS+Nwi2SIiDL8AazmSxNFJGvgRxuf0NfazrH0g=,tag:oPH3gOe2l2c6dA1sMHE30g==,type:str]
19
19
+
lastmodified: "2025-11-21T12:59:06Z"
20
20
+
mac: ENC[AES256_GCM,data:rY3LACsar6udfC7FIGCJY87rDC+SY6JbNLLKcGBG5kLaH9gIqwHALwC1+VcfGJ5RyPYQdx7+agk4zhLifdWO7vKpk8DzAm1Xt3eMOJIiLKVUGM+Ny9JnzVsyYYkGYTnbreN1eTGGfOCs7sTfQ1H0yjNOemYTy1bMTzhsYa/cya4=,iv:zP5yJZX8b+5bIRSzpp/WXuM5u9j4aw6Rw5UcYx/1lIA=,tag:9IFLjTw4xFgdM2xg3E7sPQ==,type:str]
16
21
unencrypted_suffix: _unencrypted
17
22
version: 3.10.2
+54
compose.yml
···
1
1
+
name: tangled
2
2
+
services:
3
3
+
knot:
4
4
+
image: tubbo/knot:latest
5
5
+
restart: always
6
6
+
build:
7
7
+
target: knot
8
8
+
ports:
9
9
+
- 2222:22
10
10
+
environment:
11
11
+
- KNOT_SERVER_HOSTNAME
12
12
+
- KNOT_SERVER_OWNER
13
13
+
volumes:
14
14
+
- knot_repos:/home/git/repositories
15
15
+
- knot_data:/var/lib/tangled
16
16
+
- knot_keys:/etc/ssh/keys
17
17
+
spindle:
18
18
+
image: tubbo/spindle:latest
19
19
+
restart: always
20
20
+
build:
21
21
+
target: spindle
22
22
+
environment:
23
23
+
- SPINDLE_SERVER_HOSTNAME
24
24
+
- SPINDLE_SERVER_OWNER
25
25
+
volumes:
26
26
+
- spindle_logs:/var/log/spindle
27
27
+
- spindle_data:/var/lib/tangled
28
28
+
caddy:
29
29
+
image: caddy:2
30
30
+
restart: always
31
31
+
ports:
32
32
+
- 443:443
33
33
+
- 443:443/udp
34
34
+
- 80:80
35
35
+
configs:
36
36
+
- source: caddyfile
37
37
+
target: /etc/caddy/Caddyfile
38
38
+
volumes:
39
39
+
- caddy_data:/data
40
40
+
volumes:
41
41
+
knot_repos:
42
42
+
knot_data:
43
43
+
knot_keys:
44
44
+
spindle_logs:
45
45
+
spindle_data:
46
46
+
caddy_data:
47
47
+
configs:
48
48
+
caddyfile:
49
49
+
content: |
50
50
+
{
51
51
+
email ${CADDY_EMAIL}
52
52
+
}
53
53
+
${KNOT_SERVER_HOSTNAME} { reverse_proxy http://knot:5555 }
54
54
+
${SPINDLE_SERVER_HOSTNAME} { reverse_proxy http://spindle:6555 }
+4
mise.toml
···
19
19
"echo $DOCKER_TOKEN | docker login -u $DOCKER_USER --password-stdin",
20
20
{ task = "build --push" }
21
21
]
22
22
+
23
23
+
[tasks.start]
24
24
+
description = "Run container services"
25
25
+
run = "docker compose up"