A comprehensive cloud infrastructure deployment system for self-hosting multiple services with automated backups, security features, and seamless integration.
- 🔐 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
- 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
-
Clone the repository:
git clone https://github.com/PetrBrabec/supreme-computing-machine.git cd supreme-computing-machine -
Run the setup script:
# Interactive mode ./setup.sh # Or use defaults ./setup.sh -y
-
Test your configuration:
./test.sh
-
Build cloud-init configuration:
./build.sh
This will generate a
cloud-init.yamlfile in thebuilddirectory with your configuration. -
Test locally (optional):
./test-local.sh
This uses Multipass to test your cloud-init configuration in a local VM.
- Linux/macOS system
- Docker and Docker Compose
- bash
- openssl
- curl (for testing)
- Multipass (for local testing)
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.
The build process consists of several steps:
-
Environment Setup: Configure your environment using
setup.sh- Interactive prompts for configuration
- Secure credential generation
- Environment file creation
-
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
-
Local Testing: Test your configuration using
test-local.sh- Creates a local VM using Multipass
- Deploys your configuration
- Verifies service setup and connectivity
-
Deployment: Use the generated
cloud-init.yamlwith your cloud provider- Compatible with any cloud provider supporting cloud-init
- Automatic service setup and configuration
- Secure credential handling
- Automatic firewall configuration
- Secure password generation
- SSL/TLS encryption
- Regular security updates
- Protected service endpoints
- Automated daily backups
- Configurable retention policy
- Off-site backup support
- Backup status notifications
- Easy restore process
- Telegram notifications for:
- Backup status
- Service health
- System updates
- Security events
Want to contribute? Great! Please:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue if needed
- Provide as much detail as possible
- All the amazing open source projects that make this possible
- The community for their valuable feedback and contributions
Made with ❤️ by Petr Brabec