An experimental IndieWeb site built in Go.
1# Build styles
2FROM denoland/deno:2.5.2 AS build-styles
3WORKDIR /app
4
5COPY . /app
6
7RUN deno run --allow-all npm:tailwindcss@3.4.17 -i config/main.css -o static/styles.css -c config/tailwind.config.ts --minify
8
9FROM golang:1.24-alpine AS build-server
10WORKDIR /app
11
12COPY . /app
13
14RUN go mod download
15
16ENV CGO_ENABLED=0
17ENV GOOS=linux
18RUN go build -ldflags '-s -w -extldflags "-static"' -tags osusergo,netgo,sqlite_omit_load_extension -o /space
19
20ADD https://github.com/benbjohnson/litestream/releases/download/v0.3.13/litestream-v0.3.13-linux-amd64.tar.gz /tmp/litestream.tar.gz
21RUN tar -C /usr/local/bin -xzf /tmp/litestream.tar.gz
22
23FROM alpine
24WORKDIR /
25
26COPY --from=build-styles /app/static /static
27COPY --from=build-server /space /space
28COPY --from=build-server /usr/local/bin/litestream /usr/local/bin/litestream
29
30RUN apk add bash
31RUN mkdir -p /data
32
33EXPOSE 80
34
35COPY config/litestream.yml /etc/litestream.yml
36COPY scripts/run.sh /scripts/run.sh
37
38CMD [ "/scripts/run.sh" ]