Skip to content

Containarium v0.68.1

Choose a tag to compare

@hsinatfootprintai hsinatfootprintai released this 27 Aug 08:08
· 86 commits to main since this release
7e53c24

Patch release. Fixes the sentinel crash-loop regression in v0.68.0 — upgrade from v0.68.0 if you run a sentinel.

Fixed

  • Sentinel no longer crash-loops (#1598). v0.68.0's proxy-pipeline self-check
    sent a single TLS record-layer byte and waited to read one back, treating a read
    timeout as a wedged pipeline. But a TLS server handed one byte of a record header
    correctly waits for the rest of the ClientHello — it neither responds nor closes.
    So the probe timed out against a perfectly healthy pipeline, and three consecutive
    timeouts exited the process, roughly every two minutes.

    While looping, the sentinel terminated TLS itself with its self-signed
    O=Containarium Sentinel fallback certificate, so every visitor to every
    sentinel-fronted hostname received a NET::ERR_CERT_AUTHORITY_INVALID browser
    interstitial. Both production sentinels reached NRestarts of 43 and 20 within
    minutes of upgrading.

    The probe now sends a complete ClientHello composed by crypto/tls, using an
    unroutable .invalid ServerName so it exercises the SNI peek and routing decision
    without ever reaching a real backend. A TCP dial failure and a handshake timeout
    are now distinct verdicts, and any handshake reaction — alert, EOF, reset,
    unknown-SNI refusal — correctly reads as healthy.

    The wedge detection added in #1512 is unchanged and still covered: a listener that
    accepts TCP but never services the connection is still caught. (#1599)

Documentation

  • Corrected the K8s CPU-request wording in the CPU-admission docs. This landed
    after v0.68.0's release commit was verified and so was not included there. (#1595)

Upgrade notes

  • Sentinels: v0.68.0 must not be deployed; v0.66.0 and this release are both safe.
  • Primaries: unaffected by #1598 — they ran v0.68.0 with no restarts throughout.
    Everything in v0.68.0's notes applies unchanged.

Full diff: v0.68.0...v0.68.1


Containarium v0.68.1

The open-source, self-hostable, agent-native sandbox.

Binaries

Three binaries ship in this release:

Binary Where it runs What it does
containarium The host (and your laptop, for the CLI) The platform daemon + CLI. create, list, expose-port, ssh-config, etc.
mcp-server Your laptop The platform MCP — outside-the-box admin (create_container, list_containers, expose_port, list_backends). Wire it into Claude Code / Cursor.
agent-box Inside each Containarium container The in-the-box MCP — shell_exec, read_file, write_file, etc. Reached over stdio, typically via SSH.

Quick install (Linux host)

curl -fsSL https://raw.githubusercontent.com/footprintai/containarium/main/hacks/install.sh | sudo bash

Manual install (any binary, any platform)

# containarium CLI / daemon (Linux x86_64 example)
curl -L -o /usr/local/bin/containarium \
  https://github.com/footprintai/containarium/releases/download/v0.68.1/containarium-linux-amd64
chmod +x /usr/local/bin/containarium

# Windows: client-only CLI (create/list/ssh/… against a remote daemon;
# the daemon/sentinel/tunnel subcommands are Linux/macOS only)
# PowerShell:
#   curl.exe -L -o containarium.exe `
#     https://github.com/footprintai/containarium/releases/download/v0.68.1/containarium-windows-amd64.exe

# platform MCP (your laptop, e.g. macOS arm64)
curl -L -o /usr/local/bin/mcp-server \
  https://github.com/footprintai/containarium/releases/download/v0.68.1/mcp-server-darwin-arm64
chmod +x /usr/local/bin/mcp-server

# agent-box (drop into your container image, Linux x86_64)
curl -L -o /usr/local/bin/agent-box \
  https://github.com/footprintai/containarium/releases/download/v0.68.1/agent-box-linux-amd64
chmod +x /usr/local/bin/agent-box

Verify checksums via SHA256SUMS.txt.

MCP client setup

Wire the platform MCP into Claude Code (~/.claude.json):

{
  "mcpServers": {
    "containarium": {
      "command": "/usr/local/bin/mcp-server",
      "env": {
        "CONTAINARIUM_SERVER_URL": "http://your-host:8080",
        "CONTAINARIUM_JWT_TOKEN": "<your-token>"
      }
    }
  }
}

Wire agent-box for in-the-box file/shell ops:

{
  "mcpServers": {
    "containarium-box": {
      "command": "ssh",
      "args": ["user@your-box", "agent-box"]
    }
  }
}

See README.md for the full agent-native walkthrough.