https://github.com/f1bonacc1/process-compose-recipes
A curated collection of ready-to-use Process-Compose recipes for common development and infrastructure scenarios.
https://github.com/f1bonacc1/process-compose-recipes
infrastructure process-compose recipes
Last synced: 7 months ago
JSON representation
A curated collection of ready-to-use Process-Compose recipes for common development and infrastructure scenarios.
- Host: GitHub
- URL: https://github.com/f1bonacc1/process-compose-recipes
- Owner: F1bonacc1
- Created: 2025-09-02T22:18:25.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-09-13T21:42:23.000Z (8 months ago)
- Last Synced: 2025-09-30T23:57:01.474Z (7 months ago)
- Topics: infrastructure, process-compose, recipes
- Homepage: https://f1bonacc1.github.io/process-compose/
- Size: 14.6 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Process-Compose Recipes 🍳
A curated collection of ready-to-use [Process-Compose](https://github.com/F1bonacc1/process-compose) recipes for common development and infrastructure scenarios.
## What are Process-Compose Recipes?
Process-Compose Recipes are pre-configured `process-compose.yaml` files for popular services and applications. Instead of writing complex configurations from scratch, you can pull tested recipes and customize them for your needs.
## 🚀 Quick Start
### Prerequisites
- [Process-Compose](https://github.com/F1bonacc1/process-compose) v1.75 or later
### Using Recipes
```bash
# Search for available recipes
process-compose recipe search postgres
# Pull a recipe to your local machine
process-compose recipe pull postgres-basic
# List your installed recipes
process-compose recipe list
# Run a recipe
process-compose -f $XDG_CONFIG_HOME/recipes/postgres-basic/process-compose.yaml
```
## 📋 Available Recipes
| Recipe | Description | Tags | Complexity |
|--------|-------------|------|------------|
| [postgres-basic](./postgres-basic) | PostgreSQL database with initialization | `database`, `sql`, `postgres` | ⭐ |
| [nats-cluster](./nats-cluster) | NATS messaging cluster (3 nodes) | `messaging`, `cluster`, `pubsub` | ⭐⭐⭐ |
*Complexity: ⭐ = Simple, ⭐⭐⭐⭐ = Advanced*
## 🔍 Recipe Categories
### Databases
- [x] **postgres-basic**: Single PostgreSQL instance with persistence
- [ ] **mysql-replication**: MySQL master-slave setup
- [ ] **mongodb-replica**: MongoDB replica set configuration
### Message Queues & Streaming
- [x] **nats-cluster**: NATS messaging cluster
- [ ] **kafka-cluster**: Apache Kafka cluster setup
- [ ] **rabbitmq-cluster**: RabbitMQ cluster setup
### Caching & Storage
- [ ] **redis-sentinel**: Redis with high availability
- [ ] **memcached-cluster**: Distributed Memcached setup
- [ ] **minio-cluster**: MinIO object storage cluster
### Observability
- [ ] **prometheus-grafana**: Monitoring stack
- [ ] **elk-stack**: Elasticsearch, Logstash, Kibana
- [ ] **jaeger-tracing**: Distributed tracing setup
## 📖 Recipe Structure
Each recipe directory contains:
```
recipe-name/
├── recipe.yaml # Recipe metadata and configuration
├── process-compose.yaml # Main process configuration
├── README.md # Recipe-specific documentation
└── configs/ # Additional configuration files (optional)
├── app.conf
└── init.sql
```
### Recipe Metadata (`recipe.yaml`)
```yaml
name: postgres-basic
description: Basic PostgreSQL database server with initialization script support
version: 1.2.0
author: process-compose-community
tags:
- database
- postgres
- sql
last_updated: 2025-01-15T10:30:00Z
min_version: "0.50.0"
repository: https://github.com/f1bonacc1/process-compose-recipes
```
## 🛠 Customizing Recipes
### Override Files
Create override files to modify recipes without changing the original:
```yaml
# my-postgres-override.yaml
version: "0.5"
processes:
postgres:
environment:
- "POSTGRES_DB=myproject"
- "POSTGRES_PASSWORD=mysecret"
```
```bash
process-compose -f $XDG_CONFIG_HOME/recipes/postgres-basic/process-compose.yaml -f my-postgres-override.yaml
```
## 📝 Recipe Commands Reference
### Search Recipes
```bash
# Search all recipes
process-compose recipe search
# Search by name
process-compose recipe search postgres
# Search by tags
process-compose recipe search --tags database,sql
# Search by author
process-compose recipe search --author community
```
### Manage Recipes
```bash
# Pull a recipe
process-compose recipe pull
# Force pull (overwrite existing)
process-compose recipe pull --force
# List local recipes
process-compose recipe list
# Remove a recipe
process-compose recipe remove
# Show a recipe
process-compose recipe show
```
### Using Recipes
```bash
# Run a recipe directly
process-compose -f $XDG_CONFIG_HOME/recipes//process-compose.yaml
# Run with custom environment
POSTGRES_PASSWORD=secret process-compose -f ~/.process-compose/recipes/postgres-basic/process-compose.yaml
# Run with override file
process-compose -f ~/.process-compose/recipes/postgres-basic/process-compose.yaml -f my-overrides.yaml
```
## 🤝 Contributing
We welcome contributions! Here's how you can help:
### Adding New Recipes
1. **Fork this repository**
2. **Create a new recipe directory** following the naming convention: `service-variant`
3. **Add required files**:
- `recipe.yaml` - Recipe metadata
- `process-compose.yaml` - Process configuration
- `README.md` - Recipe documentation
4. **Test your recipe** thoroughly
5. **Submit a Pull Request**
### Recipe Guidelines
- **Use semantic versioning** for recipe versions
- **Include comprehensive health checks** for all services
- **Support customization** through environment variables
- **Provide sensible defaults** for all configuration options
- **Document dependencies** and requirements clearly
- **Test on multiple platforms** when possible
### Recipe Naming Convention
- Use lowercase with hyphens: `service-variant`
- Be descriptive but concise: `postgres-basic`, `redis-sentinel`
- Include complexity indicators: `kafka-simple`, `kafka-cluster`
### Metadata Requirements
```yaml
name: recipe-name # Must match directory name
description: Clear description # One-line summary
version: X.Y.Z # Semantic version
author: your-name # Author/maintainer
tags: [tag1, tag2] # Searchable tags
last_updated: 2025-01-15T10:30:00Z
min_version: "0.50.0" # Min process-compose version
```
## 🐛 Issues and Support
- **Recipe Issues**: Open an issue in this repository
- **Process-Compose Issues**: Open an issue in the [main repository](https://github.com/F1bonacc1/process-compose)
- **Discussions**: Use GitHub Discussions for questions and ideas
### Issue Templates
When reporting issues, please include:
- Recipe name and version
- Process-Compose version
- Operating system and architecture
- Complete error logs
- Steps to reproduce
## 📚 Examples
### Basic Database Setup
```bash
# Pull and run PostgreSQL
process-compose recipe pull postgres-basic
process-compose -f $XDG_CONFIG_HOME/recipes/postgres-basic/process-compose.yaml
# Connect to database
psql -h localhost -U postgres -d myapp
```
### Microservices with Messaging
```bash
# Set up NATS cluster
process-compose recipe pull nats-cluster
process-compose -f $XDG_CONFIG_HOME/recipes/nats-cluster/process-compose.yaml
# Test cluster connectivity
nats pub test "Hello NATS!"
nats sub test
```
---
**Happy Composing!** 🎵
For more information about Process-Compose, visit the [main repository](https://github.com/F1bonacc1/process-compose).