0.2.2 - 2026-03-06#
Changed#
Make Alpine the default template for
alca init(3b35d31)Previously the default template was Nix. Alpine is lighter and faster to provision — uses
apkwith mise from the community repo,ash/shwith.profileinstead of bash. Same mount structure and hook points (source.sh,init.sh) as the Debian template.
Added#
Add
network.portsfor mapping container ports to the host (5700e2f)Supports both Docker-style string format and an extended object format. Both can be mixed in the same array. Port changes trigger container rebuild via drift detection.
[network] ports = [ "8080", # container 8080 → host 8080 "3001:3000", # container 3000 → host 3001 "127.0.0.1:5432:5432", # container 5432 → host 127.0.0.1:5432 "53:53/udp", # container 53/udp → host 53/udp { port = 9090 }, # object form ]See network.ports.
Add
--template/-tflag toalca initfor non-interactive template selection (f5c0414)alca init --template alpine alca init -t debianValid values:
alpine,debian,nix. Mutually exclusive with--update.Add integration test suite for cross-platform verification (
75662b7)A new
test_integration/suite covers container lifecycle, config drift, mounts, port mapping, network isolation, and cleanup. Runs on both Linux and macOS.
Fixed#
Fix
alca upprompting for rebuild afteralca downwhen config has changed (4ba1df3)After
alca down, the container is gone but alcatraz remembers the old config. Previouslyalca upwould detect a config change and prompt for rebuild — nonsensical since there is nothing to rebuild. Now drift detection is skipped when no container exists.Fix
lan-access = ["*"]triggering unnecessary network helper install prompts (41090bc)The wildcard
["*"]means allow-all — no firewall rules or helper needed. Previouslyalca uptreated it as specific rules being present, prompting for network helper installation. Also prevents interactive prompts from blocking in non-interactive environments (CI, piped input).Fix
alca network-helper installbreaking Docker port mapping and container WAN connectivity (5c54988)Installing the network helper would reload the system nftables configuration, which on most Linux distributions flushes all existing firewall rules — including those managed by Docker. The install now verifies nftables availability without touching existing rules. Firewall rules for containers are loaded individually by
alca upwhen containers start.Fix stale firewall rule cleanup leaving orphaned nftables tables loaded (
c6f3c0b)When cleaning up firewall rules for deleted projects, only the persistent rule files were removed. The corresponding nftables tables remained loaded until reboot. Now both are cleaned up together.