Files
vasyansk 4c9eacccb7 fix(deploy): put landing on proxy's network + runtime DNS resolve
The landing service had no networks: key, so it joined the auto 'default'
network while proxy was only on spaceshell-network + webproxy — they shared no
network, so proxy_pass to 'landing' couldn't resolve. With a static
upstream{ server landing:80 } nginx fails to boot on an unresolvable name and
restart-loops, so the proxy flapped (page intermittently up/down). Fixes:
- landing now joins spaceshell-network (shared with proxy).
- proxy.conf resolves 'landing' at request time via Docker DNS (127.0.0.11)
  using a variable proxy_pass, so nginx starts even if landing is briefly down.
nginx -t passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 14:20:33 +07:00

35 lines
1.3 KiB
Plaintext

# Front nginx for spaceshell.ru — reverse-proxies the landing container and
# serves macOS .dmg downloads from the host-mounted ./download volume.
server {
listen 80;
listen [::]:80;
server_name spaceshell.ru www.spaceshell.ru;
# Resolve `landing` at request time via Docker's embedded DNS, so nginx
# starts even if the landing container is momentarily down (a static
# `upstream { server landing:80; }` makes nginx fail to boot when the name
# can't be resolved, restart-looping the proxy → flapping page).
resolver 127.0.0.11 valid=10s ipv6=off;
# Stable download URL: /download/spacesh.dmg → ./download/spacesh.dmg on host.
location /download/ {
alias /srv/download/;
autoindex off;
default_type application/octet-stream;
add_header Content-Disposition "attachment";
types {
application/x-apple-diskimage dmg;
}
}
location / {
# Variable in proxy_pass forces runtime resolution (with the resolver above).
set $landing http://landing:80;
proxy_pass $landing;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}