Deploy containerized apps right from your terminal.
Loco is a container orchestration platform that simplifies application deployment. Run loco deploy and Loco handles the rest - building, deploying, and scaling your applications on Kubernetes.
- Simple deployments - Expose your app to the internet with just
loco deploy! - Simple Configuration - Configure all app settings with a
loco.tomlfile. A sample spec with sensible defaults can be generated vialoco init. - HTTPS by default - Automatic SSL certificate management, powered by Let's Encrypt and Certificate Manager.
- Fast Reverse Proxy - Envoy Gateway API serves HTTP3 traffic.
- Download the loco cli
go install github.com/nikumar1206/loco@latest- Run
loco initto create aloco.tomlfile. - Deploy your app via
loco deploy
Your app will be available at https://myapp.deploy-app.com
See all loco cli commands via loco help.
Loco also generates completions for shells such as bash and zshrc.
loco completion zshSample loco.toml
A very simple app (currently deployed on loco) can be found here: example-test-api
- how we can scale our clusters
- Cobra: For building the command-line interface.
- Charm's libraries (e.g., Bubble Tea, Lipgloss): For rich terminal UI components.
- Go: The primary language for the backend API.
- Connect RPC: For communication between the CLI and the backend API.
- PostgreSQL: Database for user and deployment information.
- Cilium: Implements the CNI (Container Network Interface)
- Envoy: Implements the 'new' Kubernetes Gateway API. Responsible for routing, TLS termination, enabling HTTP3
- cert-manager: For automatic SSL certificate management for various components. (Let's Encrypt).
- OpenTelemetry: For observability; collects metrics, logs, and will eventually collect tracing.
- ClickHouse: As the data store for observability data.
- Grafana: Dashboards for visualizing metrics and logs.
To avoid abuse, Loco uses an invitation system. The repo collaborators is re-purposed as an invitation list and determines who can deploy with Loco. You must first reach out to me, nikumar1206, if you would like to deploy on this platform.
To be added later.
To be added later.
Note: This project is primarily educational, created so I can learn more about Kubernetes, networking, and security.
