diff --git a/headscale/Dockerfile b/headscale/Dockerfile new file mode 100644 index 0000000..fc7de01 --- /dev/null +++ b/headscale/Dockerfile @@ -0,0 +1,33 @@ +# Builder image +FROM docker.io/golang:1.19.0-bullseye AS build +ARG VERSION=v0.17.0-beta4 +ENV GOPATH /go + +RUN apt-get install -y git && \ + git clone https://github.com/juanfont/headscale -b $VERSION /go/src/headscale + +WORKDIR /go/src/headscale + +RUN go mod download + +RUN CGO_ENABLED=0 GOOS=linux go install -tags ts2019 -ldflags="-s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=$VERSION" -a ./cmd/headscale +RUN strip /go/bin/headscale +RUN test -e /go/bin/headscale + +# Production image +# Note that we do not use "distroless" because we actually want to have a shell in the image +# to run app.sh (in order to perform custom initialization) +FROM docker.io/golang:1.19.0-bullseye + +COPY --from=build /go/bin/headscale /bin/headscale +ENV TZ UTC + +ADD app.sh / + +RUN chmod +x /app.sh + +EXPOSE 8080/tcp +# State path +# Note that configuration should be mounted or added in /etc/headscale +VOLUME /var/lib/headscale +CMD ["/app.sh"] diff --git a/headscale/app.sh b/headscale/app.sh new file mode 100644 index 0000000..0b38f73 --- /dev/null +++ b/headscale/app.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +touch /var/lib/headscale/db.sqlite +mkdir /var/lib/headscale/.cache +exec headscale -c /etc/headscale/config.yaml serve diff --git a/uptime-kuma-tailscale/Dockerfile b/uptime-kuma-tailscale/Dockerfile new file mode 100644 index 0000000..45da3c6 --- /dev/null +++ b/uptime-kuma-tailscale/Dockerfile @@ -0,0 +1,21 @@ +# Uptime Kuma image with an ephemeral Tailscale daemon included +# Used on fly.io because it does not support sidecar containers +# The tailscale ephemeral key should be provided via the env variable TAILSCALE_KEY +# custom tailscale control plane can be specified with TAILSCALE_SERVER +FROM louislam/uptime-kuma:1.18.5 +# Default tailscale login server +ENV TAILSCALE_SERVER=https://controlplane.tailscale.com +ENV TAILSCALE_HOSTNAME=uptime-kuma + +RUN apt update && apt install -y curl bash iptables + +RUN curl -fsSL https://pkgs.tailscale.com/stable/debian/bullseye.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg +RUN curl -fsSL https://pkgs.tailscale.com/stable/debian/bullseye.tailscale-keyring.list | tee /etc/apt/sources.list.d/tailscale.list + +RUN apt update && apt install -y tailscale + +COPY run.sh / + +RUN chmod +x /run.sh + +CMD [ "/run.sh" ] diff --git a/uptime-kuma-tailscale/run.sh b/uptime-kuma-tailscale/run.sh new file mode 100644 index 0000000..5de8d4b --- /dev/null +++ b/uptime-kuma-tailscale/run.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +/usr/sbin/tailscaled -state=mem: & +sleep 1 +tailscale up --login-server=$TAILSCALE_SERVER --authkey=$TAILSCALE_KEY --hostname=$TAILSCALE_HOSTNAME +node /app/server/server.js