Skip to content

Latest commit

Β 

History

History
156 lines (114 loc) Β· 4.07 KB

File metadata and controls

156 lines (114 loc) Β· 4.07 KB

Supreme Computing Machine πŸš€

A comprehensive cloud infrastructure deployment system for self-hosting multiple services with automated backups, security features, and seamless integration.

Features ✨

  • πŸ” Secure by Default: Automated SSL/TLS setup with Let's Encrypt
  • πŸ”„ Automated Backups: Built-in backup system with configurable schedules
  • πŸ€– Telegram Notifications: Get alerts about system events
  • πŸ›  Easy Setup: Interactive configuration with sensible defaults
  • πŸ— Modular Design: Easy to extend and customize
  • πŸ”’ Security First: Automated firewall setup and secure credential generation

Included Services 🌟

  • PostgreSQL: Robust relational database
  • Appwrite: Backend as a Service platform
  • Baserow: Open source no-code database tool
  • Qdrant: Vector similarity search engine
  • Minio: S3-compatible object storage
  • Redis: In-memory data structure store
  • Keycloak: Identity and access management

Quick Start πŸš€

  1. Clone the repository:

    git clone https://github.com/PetrBrabec/supreme-computing-machine.git
    cd supreme-computing-machine
  2. Run the setup script:

    # Interactive mode
    ./setup.sh
    
    # Or use defaults
    ./setup.sh -y
  3. Test your configuration:

    ./test.sh
  4. Build cloud-init configuration:

    ./build.sh

    This will generate a cloud-init.yaml file in the build directory with your configuration.

  5. Test locally (optional):

    ./test-local.sh

    This uses Multipass to test your cloud-init configuration in a local VM.

Requirements πŸ“‹

  • Linux/macOS system
  • Docker and Docker Compose
  • bash
  • openssl
  • curl (for testing)
  • Multipass (for local testing)

Configuration πŸ› 

The setup script will guide you through configuring:

  • Domain and SSL certificate settings
  • Database credentials
  • Service-specific configurations
  • Backup settings
  • Notification preferences

All configuration is stored in a .env file, which you can edit manually if needed.

Build Process πŸ—

The build process consists of several steps:

  1. Environment Setup: Configure your environment using setup.sh

    • Interactive prompts for configuration
    • Secure credential generation
    • Environment file creation
  2. Cloud-Init Generation: Generate deployment configuration using build.sh

    • Converts environment variables to cloud-init format
    • Includes all necessary scripts and configurations
    • Creates a ready-to-use cloud-init.yaml file
  3. Local Testing: Test your configuration using test-local.sh

    • Creates a local VM using Multipass
    • Deploys your configuration
    • Verifies service setup and connectivity
  4. Deployment: Use the generated cloud-init.yaml with your cloud provider

    • Compatible with any cloud provider supporting cloud-init
    • Automatic service setup and configuration
    • Secure credential handling

Security πŸ”’

  • Automatic firewall configuration
  • Secure password generation
  • SSL/TLS encryption
  • Regular security updates
  • Protected service endpoints

Backup System πŸ’Ύ

  • Automated daily backups
  • Configurable retention policy
  • Off-site backup support
  • Backup status notifications
  • Easy restore process

Monitoring πŸ“Š

  • Telegram notifications for:
    • Backup status
    • Service health
    • System updates
    • Security events

Development πŸ”§

Want to contribute? Great! Please:

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

License πŸ“„

This project is licensed under the MIT License - see the LICENSE file for details.

Support πŸ’¬

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue if needed
  3. Provide as much detail as possible

Acknowledgments πŸ™

  • All the amazing open source projects that make this possible
  • The community for their valuable feedback and contributions

Made with ❀️ by Petr Brabec