A powerful command-line interface for managing web servers, domains, SSL certificates, user access, and multi-server deployments across local and remote systems.
- Domain Management: Add, list, remove, enable, and disable domains with virtual host configurations for Apache, Nginx, and Caddy
- Web Server Management: Control Apache, Nginx, and Caddy services (start, stop, reload, status)
- SSL Certificate Management: Issue, renew, revoke SSL certificates via Let's Encrypt or upload manual certificates
- User Management: Create, modify, and manage system users with SSH access control
- Remote Server Management: Add remote servers and execute commands via SSH
- Log Monitoring: View real-time server logs (access and error logs)
- Go 1.25.1 or later
- sudo access on target systems
- Web servers (Apache/Nginx/Caddy) installed on target systems
- Certbot for SSL certificate management
git clone https://github.com/stackroost/stackroost-cli.git
cd stackroost-cli
go build -o stackroost .
sudo mv stackroost /usr/local/bin/Download the latest release from the releases page and make it executable:
chmod +x stackroost
sudo mv stackroost /usr/local/bin/Stackroost uses a YAML configuration file stored at ~/.stackroost.yaml. The configuration is automatically created and updated as you use the CLI.
You can also specify a custom config file:
stackroost --config /path/to/config.yamlstackroost domain add example.com --server apachestackroost domain liststackroost domain remove example.comstackroost domain enable example.com
stackroost domain disable example.comstackroost domain set-root example.com /var/www/example.com/publicstackroost server liststackroost server start apache
stackroost server stop nginx
stackroost server reload caddystackroost server statusstackroost ssl issue example.com --email [email protected]stackroost ssl renew example.comstackroost ssl revoke example.comstackroost ssl upload example.com --cert /path/to/cert.pem --key /path/to/key.pemstackroost ssl liststackroost user add john --password mypasswordstackroost user liststackroost user passwd johnstackroost user remove johnstackroost user ssh-enable john
stackroost user ssh-disable johnstackroost remote add myserver [email protected] --key ~/.ssh/id_rsastackroost remote liststackroost remote exec myserver "sudo apt update && sudo apt upgrade"stackroost logs --server apache --type access
stackroost logs --server nginx --type error- Apache: Full virtual host management, SSL integration
- Nginx: Virtual host configuration, SSL support
- Caddy: Basic virtual host setup, automatic SSL (limited CLI control)
- SSL certificates are managed via Certbot (Let's Encrypt)
- SSH connections use key-based authentication
- All server management commands require sudo privileges
- Configuration files are stored securely in the user's home directory
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This tool requires administrative privileges and can modify system configurations. Use with caution and ensure you have backups of your configurations before making changes.