Installation
Deploy the automation system by running the following command on target production servers:
curl https://raw.githubusercontent.com/seed-hypermedia/seed/main/ops/install.sh | shThis installer:
Downloads and configures the deployment automation tool
Sets up a cron job to execute the deployment script nightly
Fetches the latest TypeScript deployment script from the seed repository
Deployment Script Architecture
Runtime: Bun (TypeScript/TSX) Source: https://github.com/seed-hypermedia/seed Execution Schedule: Nightly via cron Modes: Headless (default), Wizard
Operational Modes
1. Headless Mode (Default)
Automated deployment execution without user interaction.
Workflow:
Reads configuration from /shm/config.json
Fetches the latest docker-compose.yml from https://github.com/seed-hypermedia/seed
Compares current running stack against target configuration
Uses docker-rollout to orchestrate deployment with automatic error handling and rollback
Example:
bun run deploy.tsxConfiguration Management
Location: /shm/config.json Purpose: Stores deployment parameters and tracks desired state
Example structure:
{
"domain": "node1.seed.run",
"email": "ops@seed.hypermedia",
"compose_url": "https://raw.githubusercontent.com/seed-hypermedia/seed/main/ops/docker-compose.yml",p
"compose_sha": "a3f2b1c",
"last_updated": "2026-01-21T10:30:00Z"
}Dependencies
Bun: JavaScript/TypeScript runtime (ensure installed on target servers)
Docker & Docker Compose: Container orchestration
docker-rollout: Zero-downtime deployment tool with automatic error handling and rollback (GitHub)
curl: For installation script fetching
Cron Configuration
The installer sets up a cron job that runs nightly in headless mode:
0 2 * * * cd /opt/seed-deploy && bun run deploy.ts >> /var/log/seed-deploy.log 2>&1