From 2b7c8b6100b74185bbaea0f108eacf1fe59a2ec0 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 28 Apr 2026 15:18:40 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?/=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 16 ++++++++++++++++ Makefile | 13 +++++++++++++ docker-compose.yml | 19 +++++++++++++++++++ go.mod | 5 +++++ go.sum | 2 ++ 5 files changed, 55 insertions(+) create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 docker-compose.yml create mode 100644 go.mod create mode 100644 go.sum diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0b7ddd8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +# syntax=docker/dockerfile:1 + +FROM golang:1.22-alpine AS build +WORKDIR /src +RUN apk add --no-cache git +COPY go.mod go.sum ./ +RUN go mod download +COPY . . +RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/matrix-qr-login ./cmd/server + +FROM alpine:3.20 +RUN apk add --no-cache ca-certificates +COPY --from=build /out/matrix-qr-login /usr/local/bin/matrix-qr-login +EXPOSE 8080 +USER nobody +ENTRYPOINT ["/usr/local/bin/matrix-qr-login"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f0387c5 --- /dev/null +++ b/Makefile @@ -0,0 +1,13 @@ +.PHONY: build run test docker-build + +build: + go build -o bin/matrix-qr-login ./cmd/server + +run: + go run ./cmd/server + +test: + go test ./... + +docker-build: + docker build -t matrix-qr-login:latest . diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..273167f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +services: + matrix-qr-login: + build: . + image: matrix-qr-login:latest + ports: + - "8080:8080" + environment: + MATRIX_HOMESERVER: "https://jb.evilfox.cc" + SERVER_PORT: "8080" + TOKEN_USES: "1" + TOKEN_EXPIRY_SECONDS: "300" + LOG_LEVEL: "info" + MATRIX_USE_UNSTABLE_MSC3882: "false" + healthcheck: + test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8080/health"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 5s diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..eb621f5 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module matrix-qr-login + +go 1.22 + +require github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..e99b5b9 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0= +github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M=