Skip to content

fix: enable ip_forward in startup sysctl config#59

Merged
jvcorredor merged 2 commits intomainfrom
worktree-fix-ip-forward-startup
Mar 30, 2026
Merged

fix: enable ip_forward in startup sysctl config#59
jvcorredor merged 2 commits intomainfrom
worktree-fix-ip-forward-startup

Conversation

@jvcorredor
Copy link
Copy Markdown
Contributor

Summary

  • GCE's hardening sysctl (60-gce-network-security.conf) sets net.ipv4.ip_forward=0, which breaks Podman container port forwarding after VM restart
  • Renames sysctl config from ports.conf to 99-cscs-podman.conf so it loads last and overrides the GCE default
  • Adds net.ipv4.ip_forward=1 to the config, required for external traffic to reach the PocketBase container

Context

After a billing outage caused the VM to restart, api.cscs.dev was unreachable (connection timeout). SSH worked fine because sshd runs on the host, but ports 80/443 (served by PocketBase in a container) require IP forwarding through nftables DNAT rules.

Test plan

  • Verified fix on running VM — curl https://api.cscs.dev/api/health returns 200
  • Persistent config applied — sysctl net.ipv4.ip_forward returns 1 after sysctl --system
  • Verify ip_forward survives VM reboot

🤖 Generated with Claude Code

GCE's hardening sysctl (60-gce-network-security.conf) explicitly sets
net.ipv4.ip_forward=0, which blocks container port forwarding after
VM restart. Rename sysctl config to 99-cscs-podman.conf so it loads
last and overrides the GCE default.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@netlify
Copy link
Copy Markdown

netlify bot commented Mar 29, 2026

Deploy Preview for cscsdev ready!

Name Link
🔨 Latest commit f03e884
🔍 Latest deploy log https://app.netlify.com/projects/cscsdev/deploys/69ca77fceb23230008ef7611
😎 Deploy Preview https://deploy-preview-59--cscsdev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Replace the static book club page with a dynamic React component that
fetches books from a new PocketBase `books` collection. Moderators can
manage books through a new admin UI at /app/books.

- Add `books` collection migration with cover image, status, and metadata fields
- Add optional book relation to events collection for linking book-club events
- Add BookClubPage component with current book, completed books grid, and cover images
- Add BookForm with file upload support for cover images
- Add moderator book management pages (/app/books, /app/create-book)
- Add Books sidebar item in AppLayout for moderators
- Replace hardcoded current book on schedule page with dynamic CurrentBookBadge
- Add comprehensive tests (23 new, 80 total passing)
- Run Prettier formatting across codebase

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jvcorredor jvcorredor merged commit 0d28fdb into main Mar 30, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant