feat: add Easy-Gate Cloudron package (Infrastructure) [#651]
Easy Gate 2.0.3 dashboard hub: multi-stage Go build (static binary on cloudron/base 3.2.0), config persisted at /app/data/easy-gate.json with real-time hot reload. No user model (IP-subnet groups only), so the app ships behind the Cloudron auth proxy (httpAuth.type=proxy); localstorage addon only, no database. Build validated green + smoke test HTTP 200. Docs synced (STATUS/README/JOURNAL at 10/~57). Ticket: https://projects.knownelement.com/issues/651 💘 Generated with Crush Assisted-by: Crush:glm-5.2
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# Easy Gate Cloudron Package
|
||||
#
|
||||
# Easy Gate is a web dashboard that acts as the central hub for self-hosted
|
||||
# infrastructure: services and notes are parsed in real time (hot reload,
|
||||
# once per second) from a JSON/YAML config file, and items can be assigned
|
||||
# to user groups which only see them based on their IP subnet.
|
||||
#
|
||||
# Upstream: https://github.com/wiredlush/easy-gate (v2.0.3, Go 1.23, Fiber)
|
||||
# - Single static binary (CGO_ENABLED=0), listens on 0.0.0.0:8080
|
||||
# - No database, no user accounts, no migrations
|
||||
#
|
||||
# Authentication: Easy Gate has NO user concept (IP-subnet grouping only).
|
||||
# Packaged behind Cloudron's authentication proxy (httpAuth.type = proxy).
|
||||
FROM golang:1.23-alpine AS builder
|
||||
|
||||
WORKDIR /easy-gate
|
||||
|
||||
# Cache dependency downloads separately from source changes.
|
||||
COPY repo/go.mod repo/go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
# Build the static binary (mirrors upstream Makefile flags).
|
||||
COPY repo/ .
|
||||
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-w -s" -o build/easy-gate cmd/easy-gate/main.go
|
||||
|
||||
FROM cloudron/base:3.2.0
|
||||
|
||||
COPY --from=builder /easy-gate/build/easy-gate /usr/local/bin/easy-gate
|
||||
|
||||
# start.sh seeds /app/data/easy-gate.json on first run (behind_proxy: true)
|
||||
# and execs the binary. Made executable on the host, not at build time.
|
||||
COPY start.sh /app/start.sh
|
||||
|
||||
WORKDIR /app/data
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
CMD ["/bin/bash", "/app/start.sh"]
|
||||
Reference in New Issue
Block a user