Container images for the Tangled Knot and Spindle servers

docker image build for spindle

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