Releases & Nightly Builds
Tank uses two release channels: stable for production use and nightly for early access to upcoming features.
Release Channels
| Channel | Web Registry | Scanner | CLI | Docker Images |
|---|---|---|---|---|
| Stable | www.tankpkg.dev | scanner.tankpkg.dev | npm i -g @tankpkg/cli | ghcr.io/tankpkg/tank-web:latest |
| Nightly | nightly.tankpkg.dev | nightly-scanner.tankpkg.dev | npm i -g @tankpkg/cli@nightly | ghcr.io/tankpkg/tank-web:nightly |
Stable Releases
Stable releases are triggered by pushing a v* tag (e.g., v0.9.0). This publishes:
- npm:
@tankpkg/cliand@tankpkg/mcp-serverwith thelatesttag - Docker:
ghcr.io/tankpkg/tank-web:latestandtank-scanner:latest, plus the version tag - GitHub Release: Binaries for Linux (x64, arm64), macOS (x64, arm64), Windows (x64), plus
.debpackages - Homebrew: Formula updated automatically
- Vercel: www.tankpkg.dev and scanner.tankpkg.dev deployed from
stablebranch
Nightly Builds
Nightly builds are published automatically from the main branch:
- Schedule: Daily at 4:00 AM UTC (Docker images) and 4:30 AM UTC (CLI/npm)
- Trigger: Also on every push to
mainthat changes relevant paths - Version format:
0.0.0-nightly.20260320.abc1234(date + short SHA)
What's Different in Nightly
| Aspect | Stable | Nightly |
|---|---|---|
| CLI default registry | www.tankpkg.dev | nightly.tankpkg.dev |
| Docker tag | :latest | :nightly |
| Scanner URL | scanner.tankpkg.dev | nightly-scanner.tankpkg.dev |
| Stability | Production-ready | May contain breaking changes |
Using Nightly
# CLI
npm install -g @tankpkg/cli@nightly
tank search hello # searches nightly.tankpkg.dev
# Docker
docker pull ghcr.io/tankpkg/tank-web:nightly
docker pull ghcr.io/tankpkg/tank-scanner:nightly
Self-Hosted Releases
Self-hosted deployments build from source (no registry dependency):
git clone https://github.com/tankpkg/tank.git
cd tank
bash scripts/onprem-install.sh
To update a self-hosted instance:
git pull
docker compose -f infra/docker-compose.yml build
docker compose -f infra/docker-compose.yml up -d
See Self-Hosting Tank for the full deployment guide.
Environment Variables for Service Wiring
Each deployment needs to know where its services are:
| Variable | Stable | Nightly | Self-Hosted |
|---|---|---|---|
APP_URL | https://www.tankpkg.dev | https://nightly.tankpkg.dev | Your domain |
PYTHON_API_URL | https://scanner.tankpkg.dev | https://nightly-scanner.tankpkg.dev | http://scanner:8000 |
TANK_REGISTRY_URL | https://www.tankpkg.dev | https://nightly.tankpkg.dev | Your domain |
The TANK_REGISTRY_URL variable overrides the CLI's default registry:
# Point any CLI to your self-hosted instance
export TANK_REGISTRY_URL=https://tank.yourcompany.com
tank search hello
CI/CD Integration
Use specific tags for reproducible builds:
# Pinned version (recommended for production)
image: ghcr.io/tankpkg/tank-web:v0.9.0
# Pinned commit (most reproducible)
image: ghcr.io/tankpkg/tank-web:sha-abc1234
# Rolling nightly (for test pipelines)
image: ghcr.io/tankpkg/tank-web:nightly
See CI/CD Integration for full pipeline examples.
Verifying Your Installation
# CLI version
tank --version
# Registry health
curl https://www.tankpkg.dev/api/health
curl https://nightly.tankpkg.dev/api/health
# Scanner health
curl https://scanner.tankpkg.dev/health
curl https://nightly-scanner.tankpkg.dev/health