Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file removed compose.d/.gitkeep
Empty file.
1 change: 0 additions & 1 deletion compose.d/00-goclaw.yml

This file was deleted.

1 change: 0 additions & 1 deletion compose.options/11-postgres.yml

This file was deleted.

1 change: 0 additions & 1 deletion compose.options/12-selfservice.yml

This file was deleted.

1 change: 0 additions & 1 deletion compose.options/13-upgrade.yml

This file was deleted.

1 change: 0 additions & 1 deletion compose.options/14-browser.yml

This file was deleted.

1 change: 0 additions & 1 deletion compose.options/15-otel.yml

This file was deleted.

1 change: 0 additions & 1 deletion compose.options/16-redis.yml

This file was deleted.

1 change: 0 additions & 1 deletion compose.options/17-sandbox.yml

This file was deleted.

1 change: 0 additions & 1 deletion compose.options/18-tailscale.yml

This file was deleted.

4 changes: 4 additions & 0 deletions docker-compose.selfservice.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ services:
dockerfile: Dockerfile
ports:
- "${GOCLAW_UI_PORT:-3000}:80"
environment:
# Use nginx's built-in local resolver mechanism (reads /etc/resolv.conf automatically)
# Works with Docker (127.0.0.11) and Podman (gateway IP) without overrides
- NGINX_ENTRYPOINT_LOCAL_RESOLVERS=1
networks:
- default
- goclaw-net
Expand Down
4 changes: 2 additions & 2 deletions ui/web/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ FROM nginx:1.27-alpine
# regardless of pnpm's build-time umask (see #761).
COPY --chmod=0755 --from=builder /app/dist /usr/share/nginx/html

# Copy nginx config
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Copy nginx config template (envsubst-processed at startup via NGINX_ENTRYPOINT_LOCAL_RESOLVERS)
COPY nginx.conf.template /etc/nginx/templates/default.conf.template

EXPOSE 80

Expand Down
7 changes: 3 additions & 4 deletions ui/web/nginx.conf → ui/web/nginx.conf.template
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ server {
gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript image/svg+xml;
gzip_min_length 256;

# Docker internal DNS resolver — re-resolves upstream when backend
# container restarts with a new IP (prevents stale DNS cache).
# Note: valid=10s means up to 10s stale DNS on backend restart.
resolver 127.0.0.11 valid=10s ipv6=off;
# DNS resolver — uses NGINX_LOCAL_RESOLVERS (set by nginx entrypoint from /etc/resolv.conf)
# Works for both Docker (127.0.0.11) and Podman (gateway IP) without manual config
resolver ${NGINX_LOCAL_RESOLVERS} valid=10s ipv6=off;
set $upstream_backend "http://goclaw:18790";

# Cache static assets
Expand Down
Loading