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 apk with mise from the community repo, ash/sh with .profile instead of bash. Same mount structure and hook points (source.sh, init.sh) as the Debian template.

Added#

  • Add network.ports for 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 / -t flag to alca init for non-interactive template selection (f5c0414)

    alca init --template alpine
    alca init -t debian

    Valid 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 up prompting for rebuild after alca down when config has changed (4ba1df3)

    After alca down, the container is gone but alcatraz remembers the old config. Previously alca up would 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. Previously alca up treated 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 install breaking 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 up when 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.