Skip to content

Latest commit

 

History

History
148 lines (106 loc) · 3.34 KB

File metadata and controls

148 lines (106 loc) · 3.34 KB

Shango Deploy 🚀

Shango Deploy is a modern deployment tool that simplifies the process of deploying web applications. It provides a high-level configuration interface that generates deployment configurations for various frameworks and automatically provisions servers with best practices.

Features ✨

  • 🛠 Framework Support: Deploy applications built with:

    • Next.js
    • Remix
    • Nuxt.js
    • Svelte
    • AdonisJS
    • NestJS
  • 🗄 Database Integration:

    • PostgreSQL
    • MySQL
    • SQLite
    • Redis (for caching)
  • 🔧 Server Provisioning:

    • Automatic security hardening
    • Docker setup
    • Fail2Ban configuration
    • UFW firewall setup
    • SSL/TLS configuration
    • System monitoring
  • 📦 Built-in Templates:

    • Dockerfile generation
    • GitHub Actions workflows
    • deployment configurations

Installation 📥

npm install -g shango-deploy

Quick Start 🚀

  1. Initialize a new Shango configuration:
shango add
  1. Follow the interactive prompts to configure your deployment.

  2. Provision your servers:

shango provision
  1. Deploy your application:
shango deploy

Configuration 📝

Shango uses a YAML configuration file (shango.yml) to define your deployment setup:

app:
  framework: nextjs
  domain: myapp.com
  packageManager: npm
  database: postgres
  cacheDatabase: redis

  servers:
    - environment: staging
      ipv4:
        - 33.34.20.3
        - 33.34.20.4
    - environment: production
      ipv4: 44.34.21.23

Server Requirements 🖥

  • Ubuntu 20.04 or newer
  • SSH access with root privileges
  • Open ports: 22 (SSH), 80 (HTTP), 443 (HTTPS)

Security Best Practices 🔒

Shango automatically implements several security best practices:

  • SSH hardening
  • Automatic security updates
  • Fail2Ban for brute force protection
  • UFW firewall configuration
  • SSL/TLS setup with Let's Encrypt
  • System hardening

Contributing 🤝

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

Architecture 🏗

Shango Deploy is built with a modular architecture:

  • High-Level Config Parser: Converts user-friendly configuration to detailed deployment specs
  • Server Provisioner: Handles server setup and security hardening
  • Template System: Manages framework-specific configurations and files
  • Deployment Engine: Orchestrates the deployment process

License 📄

MIT License - see the LICENSE file for details

Support 💬

Credits 👏

Shango Deploy is inspired by various deployment tools and best practices from the community. Special thanks to:

Roadmap 🗺

  • Support for more frameworks
  • Zero-downtime deployments
  • Custom deployment hooks
  • Monitoring integration
  • Backup management

Built with ❤️ by devalade