Skip to content

TheBagelProject/bagel-backend

Repository files navigation

πŸ₯― Bagel

Open-Source Self-Service Terraform Platform

The easiest way for developers to manage Terraform infrastructure with confidence

Terraform License: AGPL v3 Open Source Love

Bagel

Features β€’ Quick Start β€’ Documentation β€’ Support


🌟 What is Bagel?

Bagel is an open-source, self-service platform that makes Terraform-based infrastructure provisioning simple, fast, and intuitive - built for developers who just want to ship.

Empower your team to deploy infrastructure seamlessly with minimal dependencies. Simple, intuitive, and powerful.

🎯 Perfect For:

  • Developers who want to own their infrastructure without the complexity
  • Teams seeking self-service infrastructure provisioning
  • Startups transitioning to Infrastructure as Code (IaC)
  • Organizations looking to reduce infrastructure deployment bottlenecks

✨ Key Features

πŸš€ Self-Service Deployments

Deploy infrastructure with minimal clicks. No manual Terraform commands or waiting on DevOps teams.

πŸ”— GitHub Integration

Seamlessly connect your repositories and manage infrastructure code directly from your Git workflows.

πŸ“Š Live Deployment Logs

Track deployment progress and view execution logs in real-time as your infrastructure is provisioned.

🌍 AWS Support

Full support for AWS infrastructure with multi-cloud support coming soon.

πŸ“¦ Project & Space Organization

Organize your infrastructure into projects and spaces for better management and team collaboration.

πŸ”„ Deployment History

Complete audit trail of all deployments with detailed logs and status tracking.

🎨 Developer-First UI

Clean, intuitive interface built with Next.js - designed for developers by developers.

⚑ Minimal Dependencies

Get started quickly without complex setup. Just Docker, and you're ready to go.


πŸš€ Quick Start

Get Bagel up and running in less than 2 minutes!

Prerequisites

  • Docker (version 20.10+)
  • Docker Compose (version 2.0+)
  • 4GB RAM minimum
  • Internet connection for pulling images

πŸƒ Start Bagel

# Clone the repository
git clone https://github.com/TheBagelProject/bagel-backend
cd bagel-backend

# Start all services
docker-compose up -d

# Check service status
docker-compose ps

That's it! πŸŽ‰ Bagel is now running.

🌐 Access Your Platform

Service URL Description
UI localhost:3000 Main web interface
API localhost:5000 Backend REST API
Database localhost:27017 MongoDB (internal)

πŸ›‘ Stop Bagel

docker-compose down

πŸ—οΈ Architecture

Bagel consists of four main components running as Docker containers:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€-┐
β”‚                    Bagel Platform                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€--─
β”‚   Frontend   β”‚   Backend    β”‚    Server    β”‚  Database   β”‚
β”‚   (Next.js)  β”‚  (Node.js)   β”‚  (Terraform) β”‚  (MongoDB)  β”‚
β”‚              β”‚              β”‚   + AWS CLI  β”‚             β”‚
β”‚   Port 3000  β”‚   Port 5000  β”‚              β”‚ Port 27017  β”‚
└──────────────┴──────────────┴──────────────┴───────────--β”˜

Components

  • 🎨 bagel-ui: Modern Next.js frontend with TypeScript
  • βš™οΈ bagel-backend: Express.js API server with MongoDB integration
  • πŸ› οΈ bagel-server: Terraform execution environment with AWS CLI
  • πŸ’Ύ mongo-bagel: MongoDB database for storing configurations and state

Configuration

Environment Variables

You can customize Bagel by editing the docker-compose.yml file:

environment:
  - NODE_ENV=production
  - PORT=5000
  - MONGO_URI=mongodb://mongo-bagel:27017/BagelDB
  # Add your custom configurations here

Ports

Default ports can be changed in docker-compose.yml:

  • Frontend: 3000 β†’ "YOUR_PORT:3000"
  • Backend: 5000 β†’ "YOUR_PORT:5000"
  • MongoDB: 27017 β†’ "YOUR_PORT:27017"

πŸ”§ Advanced Usage

View Logs

# All services
docker-compose logs -f

# Specific service
docker-compose logs -f bagel-backend
docker-compose logs -f bagel-ui

Restart Services

# Restart all services
docker-compose restart

# Restart specific service
docker-compose restart bagel-backend

Update to Latest Version

# Pull latest images
docker-compose pull

# Restart with new images
docker-compose up -d

πŸ› οΈ Development

Want to contribute or customize Bagel?

Development and contribution guidelines coming soon! πŸš€

Stay tuned for:

  • Backend development setup guide
  • Frontend development guide
  • Contribution guidelines
  • Code of conduct

In the meantime, feel free to explore the codebase and open an issue with any questions!


πŸ’¬ Community

πŸ› Found a Bug?

Report an issue and we'll get it fixed!


πŸ—ΊοΈ Roadmap

  • AWS Infrastructure Support
  • GitHub Integration
  • Real-time Deployment Logs
  • Self-Service Project Management
  • Efficient Statefile Management
  • Multi-Cloud Support (Azure & GCP) - Coming Soon
  • Deployment Rollback
  • RBAC (Role-Based Access Control)
  • MCP Servers
  • Public APIs

πŸ“„ License

Bagel is released under the AGPL 3.0 License.


πŸ™ Acknowledgments

Built with ❀️ using:


⭐ Star us on GitHub - it helps!

Made with πŸ₯― by the Bagel Team

Website

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages