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
docker image build for spindle
psychedeli.ca
3 months ago
d6c5466b
+84
4 changed files
expand all
collapse all
unified
split
Dockerfile
README.md
docker-bake.hcl
mise.toml
+21
Dockerfile
···
1
1
+
FROM alpine AS install
2
2
+
ARG TANGLED_VERSION=v1.11.0-alpha
3
3
+
RUN curl -sLo core.tar.gz https://tangled.org/tangled.org/core/archive/${TANGLED_VERSION}
4
4
+
RUN tar -zxvf core.tar.gz -C /app
5
5
+
6
6
+
FROM golang:alpine AS build
7
7
+
WORKDIR /app
8
8
+
COPY --from=install /app .
9
9
+
RUN go mod download
10
10
+
RUN go build -o spindle cmd/spindle/main.go
11
11
+
12
12
+
FROM alpine
13
13
+
WORKDIR /var/lib/spindle
14
14
+
EXPOSE 6555
15
15
+
RUN adduser --uid 1001 spindle
16
16
+
RUN addgroup --gid 1001 spindle
17
17
+
USER spindle
18
18
+
RUN mkdir -p /var/{lib,log}/spindle
19
19
+
VOLUME [ "/var/lib/spindle", "/var/log/spindle" ]
20
20
+
COPY --from=build --chown=spindle:spindle /app/spindle /usr/bin/spindle
21
21
+
CMD spindle
+49
README.md
···
1
1
+
# tubbo/spindle
2
2
+
3
3
+
A container image for the Spindle CI server.
4
4
+
5
5
+
## Usage
6
6
+
7
7
+
Set your configuration in a `.env` file:
8
8
+
9
9
+
```env
10
10
+
SPINDLE_SERVER_HOSTNAME="your.spindle.server.host"
11
11
+
SPINDLE_SERVER_OWNER="did:web:your.handle"
12
12
+
```
13
13
+
14
14
+
Create a `compose.yml` to configure the Spindle service, or add it to
15
15
+
an existing Compose file:
16
16
+
17
17
+
```yaml
18
18
+
name: tangled
19
19
+
services:
20
20
+
spindle:
21
21
+
image: tubbo/spindle:latest
22
22
+
environment:
23
23
+
- SPINDLE_SERVER_HOSTNAME
24
24
+
- SPINDLE_SERVER_OWNER
25
25
+
volumes:
26
26
+
- certs:/app
27
27
+
- pipelines:/var/log/spindle
28
28
+
caddy:
29
29
+
image: caddy:alpine
30
30
+
command: >
31
31
+
caddy reverse-proxy --from ${SPINDLE_SERVER_HOSTNAME} --to spindle:6555
32
32
+
depends_on:
33
33
+
- spindle
34
34
+
ports:
35
35
+
- 443:443
36
36
+
- 443:443/udp
37
37
+
volumes:
38
38
+
- caddy:/data
39
39
+
volumes:
40
40
+
certs:
41
41
+
spindle:
42
42
+
pipelines:
43
43
+
```
44
44
+
45
45
+
Run the Spindle server and its Caddy frontend:
46
46
+
47
47
+
```sh
48
48
+
docker compose up --detach
49
49
+
```
+8
docker-bake.hcl
···
1
1
+
target "spindle" {
2
2
+
context = "."
3
3
+
dockerfile = "Dockerfile"
4
4
+
args = {
5
5
+
TANGLED_VERSION = "v1.11.0-alpha"
6
6
+
}
7
7
+
tags = ["tubbo/spindle:latest", "tubbo/spindle:v1.11.0-alpha"]
8
8
+
}
+6
mise.toml
···
1
1
+
[tools]
2
2
+
docker-cli = "latest"
3
3
+
4
4
+
[tasks.build]
5
5
+
description = "Build the Docker image"
6
6
+
run = "docker bake"