Simple Stack is an integrated platform for running your entire stack — from infrastructure to applications to observability — on your own hardware or cloud accounts. No more vendor lock-in, no more scattered configuration across a dozen tools.
You want to host your own infrastructure and applications, but you don't want to:
- Manually manage Terraform state files and infrastructure versions
- Write deployment scripts every time you add a new service
- Cobble together monitoring solutions across multiple dashboards
- Lose visibility into what's actually running on your servers
Simple Stack unifies the entire deployment pipeline in a single, self-hosted interface:
Terraform States → Ansible Playbooks → Docker Registry → Application Deployments → Full Observability
(IaaS) (PaaS) (Catalog) (SaaS) (Built-in)
Start by importing or provisioning your cloud infrastructure:
- Store Terraform state files directly in Simple Stack's database
- Manage infrastructure versions and changes through a web interface
- Support for any Terraform provider: AWS, OVHcloud, Scaleway, on-premise, etc.
- Versioned history of all infrastructure changes
Result: Your infrastructure is now version-controlled, auditable, and reproducible.
Define how your servers should be configured:
- Use Ansible playbooks to install Docker and core dependencies
- Deploy and manage system-level services (databases, proxies, etc.)
- Nomad orchestrates the PaaS layer for you
- Pre-built roles for observability stack (Prometheus, Loki, Grafana)
Result: Every new server gets the same solid, observability-ready foundation.
Create reusable application containers:
- Define service templates for your team to use
- Store Docker images in your own private registry (self-hosted)
- Share catalogs across projects using fork/inheritance patterns
- Document dependencies and environment requirements
Result: A curated library of production-ready services, no external dependencies.
Deploy applications on your infrastructure:
- Choose which catalog items to deploy onto which servers
- Configure variables, secrets, and per-environment overrides
- Trigger deployments from the UI, no scripting required
- Track deployment history and operational actions
Result: Modern application management meets your own infrastructure.
Monitor and troubleshoot your entire stack:
- Prometheus for metrics collection across all infrastructure
- Loki for log aggregation from all services and applications
- Grafana for unified dashboards and alerting
- All deployed and managed automatically as part of the PaaS foundation
Result: End-to-end visibility without extra tools or vendor accounts.
✅ Self-Hosted – Full control. No SaaS dependencies. ✅ Unified – One interface for infrastructure, configuration, and deployments. ✅ Declarative – All changes are version-controlled, auditable, and reproducible. ✅ Extensible – Add new services by extending Terraform, Ansible, or the Docker catalog. ✅ Transparent – No hidden magic. Every decision is documented and open.
- A cloud account (AWS, OVHcloud, Scaleway, etc.) or on-premise hardware
- Docker and Node.js installed locally for development
- A Git repository to version-control your infrastructure and configurations
-
Clone the repository
git clone https://github.com/your-repo/simple-stack.git cd simple-stack -
Deploy the platform
cd terraform/demo-standalone-instances terraform init && terraform apply
-
Access the web UI
https://your-domain.com -
Import or create your first infrastructure
- Upload a Terraform state file, or
- Use the built-in Terraform templates
More detailed guides are available in /docs:
- Intro – Platform overview and mental model
- Basic Usage – First steps with Simple Stack
- Infrastructures – Deep dive into IaaS and Terraform
- Catalogs – Building and managing your application library
- Softwares – Deploying and managing services
Full documentation with examples: https://your-domain.com/docs
simple-stack/
├── terraform/ # IaaS – Cloud infrastructure provisioning
│ ├── modules/
│ └── demo-*-instances/ # Example deployments
├── ansible/ # PaaS – Server configuration & observability
│ ├── playbooks/
│ ├── roles/
│ └── rulebook.yml # Event-driven automation (Ansible Runner)
├── ui/ # Legacy SaaS UI (being migrated to ui-next)
└── ui-next/ # New Next.js SaaS management platform
├── app/ # Application pages & API routes
├── components/ # Reusable React components
├── lib/ # Shared logic and database layer
└── content/docs/ # Markdown documentation
IaC Layer (Terraform) Provisions compute, networking, and storage resources on any mainstream cloud provider.
Config Layer (Ansible) Installs Docker, system services, and the observability stack on provisioned hosts.
UI Layer (Next.js + SQLite) Provides a unified interface for managing infrastructure, deployments, and operations.
Every instance deployed through Simple Stack automatically gets:
- Prometheus – Scrapes metrics from all services, infrastructure, and exporters
- Loki – Aggregates logs from Docker containers and system services
- Grafana – Pre-configured dashboards for infrastructure, platform, and application metrics
- Alerting – Out-of-the-box rules for common operational concerns
- Simplicity First – Each component is understandable and maintainable
- Transparency – All configuration is version-controlled and auditable
- Portability – Works on any cloud or on-premise hardware
- Extensibility – Add new services without rewriting core systems
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests and documentation for new features
- Open a Pull Request with a clear description
For detailed guidelines, see CONTRIBUTING.md.
This project is licensed under the MIT License – see the LICENSE file for details.
- 📖 Documentation – https://your-domain.com/docs
- 💬 Discussions – GitHub Discussions (coming soon)
- 🐛 Issues – Report bugs on GitHub Issues
Thanks to the open‑source community for the tools that make this stack possible: Terraform, Ansible, Docker and the many contributors of the underlying roles.