Block a user
tailbox (0.19.0)
Published 2026-05-31 14:32:51 -05:00 by joe
Installation
[registry]
default = "gitea"
[registries.gitea]
index = "sparse+ " # Sparse index
# index = " " # Git
[net]
git-fetch-with-cli = truecargo add tailbox@0.19.0About this package
Tailscale-rs network adapter for minibox containers
tailbox
Tailscale-rs network adapter for minibox containers.
Implements minibox_core::domain::NetworkProvider via TailnetNetwork, giving containers
access to Tailscale networks (tailnets) without a full Tailscale install inside the container.
Modes
| Mode | Description |
|---|---|
Gateway |
One shared tailscale::Device for the daemon. Containers reach tailnet peers |
| via proxy connections through that device. | |
PerContainer |
Each container gets its own tailscale::Device and tailnet IP. |
Platform support
Linux and macOS ARM64 only, matching tailscale-rs v0.2 platform support. The
tailscale dependency is gated with cfg(any(target_os = "linux", target_os = "macos")).
Configuration
use tailbox::TailnetConfig;
let config = TailnetConfig {
// Inline auth key — if None, looks up `key_secret_name` in minibox-secrets,
// then falls back to the `TAILSCALE_AUTH_KEY` env var.
auth_key: None,
key_secret_name: "tailscale-auth-key".to_string(),
};
Usage in miniboxd
Wire TailnetNetwork into HandlerDependencies behind the tailnet feature flag:
[features]
tailnet = ["tailbox"]
#[cfg(feature = "tailnet")]
let network = tailbox::TailnetNetwork::new(TailnetConfig::default()).await?;
Modules
| Module | Description |
|---|---|
adapter |
TailnetNetwork — the NetworkProvider adapter |
auth |
Auth key resolution and device authentication |
config |
TailnetConfig — runtime configuration |
experiment |
Feature-gated experimental networking extensions |
Dependencies
| ID | Version |
|---|---|
| anyhow | ^1 |
| async-trait | ^0.1 |
| minibox-core | ^0.19.0 |
| minibox-secrets | ^0.19.0 |
| secrecy | ^0.10 |
| serde_json | ^1 |
| tokio | ^1 |
| tracing | ^0.1 |
| proptest | ^1 |
| tempfile | ^3 |
| tokio | ^1 |
| tailscale | ^0.2 |