Quick Start Guide¶
Get Amebo up and running in just a few minutes! This guide will walk you through the fastest way to start using Amebo for event-driven communication.
Prerequisites¶
Before you begin, ensure you have:
- Docker & Docker Compose (recommended) OR
- Python 3.8+ for local installation
- PostgreSQL (optional, SQLite works for development)
Option 1: Docker Cluster (Recommended)¶
The fastest way to get a production-ready Amebo cluster running:
Step 1: Clone and Start¶
# Clone the repository
git clone https://github.com/rayattack/amebo.git
cd amebo
# Start the cluster (3 instances + PostgreSQL + Load Balancer)
./start-cluster.sh
Step 2: Verify Installation¶
Cluster Ready!
Your Amebo cluster is now running with:
- Load Balancer: http://localhost
- 3 App Instances: ports 3311, 3312, 3313
- PostgreSQL: port 5432
- Health Monitoring: Built-in
Option 2: Single Instance (Development)¶
For development or testing with a single instance:
Your First Event Flow¶
Let's create a complete event flow in 4 simple steps:
Step 1: Register an Application¶
curl -X POST http://localhost/v1/applications \
-H "Content-Type: application/json" \
-d '{
"application": "user-service",
"address": "https://api.example.com",
"secret": "webhook-secret-key"
}'
Step 2: Define an Action (Event Type)¶
curl -X POST http://localhost/v1/actions \
-H "Content-Type: application/json" \
-d '{
"action": "user.created",
"application": "user-service",
"schemata": {
"type": "object",
"properties": {
"id": {"type": "string"},
"email": {"type": "string", "format": "email"},
"name": {"type": "string"}
},
"required": ["id", "email", "name"]
}
}'
Step 3: Create a Subscription¶
curl -X POST http://localhost/v1/subscriptions \
-H "Content-Type: application/json" \
-d '{
"application": "notification-service",
"subscription": "user-created-notifications",
"action": "user.created",
"handler": "https://notifications.example.com/webhooks/user-created",
"max_retries": 3
}'
Step 4: Publish an Event¶
curl -X POST http://localhost/v1/events \
-H "Content-Type: application/json" \
-d '{
"action": "user.created",
"payload": {
"id": "user-123",
"email": "john@example.com",
"name": "John Doe"
}
}'
What Happens Next?
Amebo will:
- Validate the payload against the schema
- Store the event in the database
- Deliver the event to all subscribers
- Retry failed deliveries automatically
- Track delivery status and metrics
Verification¶
Check that everything is working:
Web Interface¶
Amebo includes a built-in web interface for management:
- Open your browser to http://localhost
- Login with default credentials:
- Username:
administrator
- Password:
N0.open.Sesame!
- Explore applications, events, and subscriptions
Security Note
Change the default credentials in production! Update the AMEBO_USERNAME
and AMEBO_PASSWORD
in your configuration.
Next Steps¶
Now that you have Amebo running:
- Learn Core Concepts - Understand applications, events, actions, and subscriptions
- Explore the API - Detailed API documentation with examples
- Deploy to Production - Production deployment best practices
- Set Up Monitoring - Monitor your Amebo cluster
Common Issues¶
Port Already in Use?
Database Connection Failed?
For PostgreSQL issues:
Permission Denied?
Getting Help¶
- 📖 Documentation: Browse the full documentation
- 🐛 Issues: Report bugs on GitHub
- 💬 Discussions: Ask questions
- 📧 Support: Check the support section
Congratulations! 🎉 You now have Amebo running and have created your first event flow. Ready to dive deeper? Check out the User Guide to learn more about Amebo's powerful features.