Add GoAccess metrics dashboard with WebSocket support

- Add GoAccess package to Docker container
- Create GoAccess startup script with real-time HTML generation
- Add metrics.ralsina.me server block with authentication
- Configure WebSocket proxy for live metrics updates
- Add password protection with .htpasswd
- Fix WebSocket URL to use proper HTTPS endpoint
- Update all server blocks to listen on 0.0.0.0:8080 for Fly.io compatibility

Co-Authored-By: z.ai LGM 4.5 <noreply@z.ai>
This commit is contained in:
2025-10-03 10:53:26 -03:00
parent 493c5528ce
commit 7b5ce1a5e8
6 changed files with 136 additions and 12 deletions

View File

@@ -14,7 +14,7 @@ COPY . ./
# https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds
FROM alpine:latest
RUN apk update && apk add --no-cache ca-certificates iptables ip6tables nginx
RUN apk update && apk add --no-cache ca-certificates iptables ip6tables nginx goaccess
# Copy binary to production image
COPY --from=builder /app/start.sh /app/start.sh
@@ -23,6 +23,8 @@ COPY --from=tailscale /app/tailscale /app/tailscale
RUN mkdir -p /var/run/tailscale /var/cache/tailscale /var/lib/tailscale /usr/share/nginx/html
COPY nginx.conf /etc/nginx/http.d/nginx.conf
COPY custom_50x.html /usr/share/nginx/html/
COPY goaccess.sh /app/goaccess.sh
COPY .htpasswd /etc/nginx/.htpasswd
# Run on container startup.
EXPOSE 8080