A CLI tool for automating Docker Swarm deployments with zero-downtime updates and advanced monitoring.
- Zero-downtime deployments with health checks
- Rolling updates with automatic rollback
- Service monitoring and metrics
- Volume backup and restore
- Network management
- Resource limits and scaling
- Configuration-based deployments
go install github.com/zakirkun/neon@latest# Show version
neon --version
# Deploy with zero downtime
neon deploy rolling myapp --image nginx:latest --replicas 3 --update-delay 10s
# Deploy using config file
neon deploy config -f deploy.yaml
# List and manage resources
neon image list
neon network list
neon volume listDefault config location: ~/.neon/config.yaml
docker:
registry: "registry.example.com"
username: "user"
password: "pass"
swarm:
manager_node: "127.0.0.1:2377"
network_name: "neon-network"
deploy:
replicas: 3
update_delay: "10s"
rollback_delay: "5s"
failure_action: "rollback"Example deploy.yaml:
services:
webapp:
image: registry.example.com/webapp:latest
replicas: 3
update_config:
parallelism: 1
delay: 10s
order: start-first
failure_action: rollback
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost/health || exit 1"]
interval: 5s
timeout: 3s
retries: 3
resources:
limits:
cpus: '0.5'
memory: 512M# Zero-downtime deployment
neon deploy rolling <service> --image <image> [options]
--replicas Number of replicas (default: 3)
--update-delay Delay between updates (default: 10s)
--image New image to deploy
# Config-based deployment
neon deploy config -f deploy.yaml# Images
neon image list
neon image rm <image-id>
neon image pull <image-name>
# Networks
neon network list
neon network create <name>
neon network rm <name>
# Volumes
neon volume list
neon volume create <name>
neon volume rm <name># Monitor service metrics
neon monitor service <service-id>Requirements:
- Go 1.22 or later
- Docker Engine with Swarm mode enabled
Build from source:
git clone https://github.com/zakirkun/neon.git
cd neon
go buildMIT License