A modern, interactive command-line tool for provisioning and configuring production-ready servers with ease.
ServerForge is a powerful, TypeScript-based CLI tool designed to streamline the setup and configuration of production servers. It breaks down the complex process of server provisioning into intuitive, interactive modules with beautiful terminal interfaces.
- 🧙♂️ Interactive Wizard - Guided setup with intelligent defaults
- 🐳 Docker Integration - Seamless container management
- ☸️ Kubernetes Setup - Multiple distribution support (k3s, microk8s, minikube)
- 🗄️ Database Deployment - Both containerized and native options
- 🔧 Infrastructure as Code - Terraform and Ansible integration
- 🛠️ DevOps Utilities - Essential tools for modern operations
- 🔒 Security Hardening - Best-practice server security
- 🎨 Beautiful UI - Spinners, colors, and progress bars
# Install globally
npm install -g serverforge-cli
# Or run with npx
npx serverforge-cli# Launch the interactive wizard
serverforge wizard
# Or use specific commands
serverforge system update
serverforge docker install
serverforge kubernetes setup --distribution=k3sServerForge organizes functionality into logical command groups:
# Update system packages
serverforge system update
# Install essential tools
serverforge system install-essentials
# Configure firewall
serverforge system setup-firewall# Install Docker and Docker Compose
serverforge docker install
# Set up container networks
serverforge docker network-setup# Install Kubernetes
serverforge kubernetes install --distribution=<k3s|microk8s|minikube>
# Deploy ArgoCD
serverforge kubernetes deploy-argocd# Deploy databases as containers
serverforge database deploy-containers
# Deploy databases on Kubernetes
serverforge database deploy-kubernetes# Initialize Terraform modules
serverforge terraform init-modules# Create Ansible playbooks
serverforge ansible create-playbooks
# Run system hardening playbook
serverforge ansible run-hardening# Install DevOps utility tools
serverforge tools install-devops-suiteServerForge supports configuration files and environment variables for automation:
# Generate a config file
serverforge init --config=my-config.json
# Use a config file
serverforge wizard --config=my-config.jsonFor full documentation, visit our documentation site.
We welcome contributions! Please see CONTRIBUTING.md for details.
This project is licensed under the MIT License - see the LICENSE file for details.