feat: gluetun compose and deploy docs #8
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
TJC/mealplan-mcp!8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/vpn-and-deploy"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
docker-compose.yamlfor the deployment stack: gluetun, Postgres, scraper, MCP server.env.exampledocumenting every value, with.envand*.confgitignored so a downloaded WireGuard file cannot be committed eithercrawl <source> [--max N]/normalize <source>one-shot commands, so a first run against a live source can be cappedThe VPN wiring
The scraper uses
network_mode: "service:gluetun", so every request it makes leaves through the tunnel or not at all - if the tunnel drops it has no network, rather than quietly falling back to the real IP. The MCP server stays on the bridge network and never touches the VPN.Two things that are easy to get wrong and would fail confusingly:
FIREWALL_OUTBOUND_SUBNETSallows that range throughbackendhas an explicitipamconfig thatFIREWALL_OUTBOUND_SUBNETSmatchesDeviation from the earlier plan
We agreed gluetun would sit behind a compose profile in the devcontainer compose. It ended up in the deploy compose without a profile instead, because the scraper and MCP containers only exist there, and the VPN is not optional for the scraper - a profile would make it look like it were. The devcontainer stays app-plus-Postgres and needs no credentials.
Test plan
docker compose configvalidates; verified the resolved topology - scraper onservice:gluetunwith no ports of its own, 5206 published by gluetun, 5205 by mcp, andFIREWALL_OUTBOUND_SUBNETSmatching thebackendsubnetNo live crawl has been run yet - see below.