recipe_alpine_firewall.ts view source
(options?: WebFirewallOptions | undefined): { firewall: Pick<FirewallResource, "allow" | "backend">; service: Pick<ServiceResource, "service" | ... 1 more ... | "running">; } import {alpine_web_firewall} from '@fuzdev/zap/recipe_alpine_firewall.js'; Build the nftables firewall payload and its companion persistence service for
a web host (SSH + HTTP + HTTPS).
Spread each piece into its own resource, and make the service depend on the firewall so the ruleset file is written before the service loads it:
const fw = alpine_web_firewall();
zap.firewall({id: 'firewall', ...fw.firewall});
zap.service({id: 'nftables', depends_on: ['firewall'], ...fw.service});options?
returns
{ firewall: Pick<FirewallResource, "allow" | "backend">; service: Pick<ServiceResource, "service" | "enabled" | "running">; } {firewall, service} — the payloads for a firewall and a service resource.