Get your observability platform running in minutes!
./deploy-cloud.sh flyioThat's it! The script will:
- Install flyctl if needed
- Authenticate you
- Deploy your app
- Give you a public URL
./deploy-cloud.sh railwayRailway automatically detects docker-compose.yml and deploys all services.
./deploy-cloud.sh render # Opens web UI with instructions./deploy-cloud.sh localThis will:
- Check Docker is running
- Create
.envwith generated secrets - Start all services with
docker compose up - Give you access URLs
Services:
- 🌐 App: http://localhost:3000
- 📊 Grafana: http://localhost:3001 (admin/admin)
- 🔥 Prometheus: http://localhost:9090
- 📝 Graylog: http://localhost:9000 (admin/admin)
# Clone and setup
git clone git@github.com:anldrms/observability-demo.git
cd observability-demo
cp .env.example .env
# Generate secrets
export SECRET=$(openssl rand -hex 32)
export HASH=$(echo -n 'admin' | shasum -a 256 | awk '{print $1}')
# Update .env (or do it manually)
sed -i '' "s/^GRAYLOG_PASSWORD_SECRET=$/GRAYLOG_PASSWORD_SECRET=$SECRET/" .env
sed -i '' "s/^GRAYLOG_ROOT_PASSWORD_SHA2=$/GRAYLOG_ROOT_PASSWORD_SHA2=$HASH/" .env
# Start
docker compose up -d --build
# View logs
docker compose logs -fSee DEPLOYMENT.md for detailed platform-specific instructions.
- Open the app: http://localhost:3000 (or your cloud URL)
- Generate traffic: Click "Start Simulation" → Enter count (e.g., 100)
- View metrics:
- Click "Prometheus Metrics" to see raw metrics
- Click "Grafana Dashboard" to see visualizations
- Click "Graylog Logs" to see log aggregation
Edit .env:
PUBLIC_GRAFANA_URL=https://your-grafana.fly.dev
PUBLIC_PROMETHEUS_URL=https://your-prometheus.fly.dev
PUBLIC_GRAYLOG_URL=https://your-graylog.fly.devOr set via platform secrets:
# Fly.io
fly secrets set PUBLIC_GRAFANA_URL=https://...
# Railway
railway variables set PUBLIC_GRAFANA_URL=https://...Edit .env:
# Generate new hash for "mypassword"
echo -n 'mypassword' | shasum -a 256 | awk '{print $1}'
# Update .env
GRAYLOG_ROOT_PASSWORD_SHA2=<new_hash>
GRAFANA_ADMIN_PASSWORD=mypassword# Check logs
docker compose logs
# Specific service
docker compose logs graylog
# Restart everything
docker compose restartGraylog needs 2-3 minutes to start. Check:
docker logs graylog | tail -20Look for: Graylog server up and running
Check if ports are already in use:
lsof -i :3000 # App
lsof -i :3001 # Grafana
lsof -i :9090 # Prometheus
lsof -i :9000 # GraylogChange ports in .env:
APP_PORT=3000
GRAFANA_PORT=3001
PROMETHEUS_PORT=9090
GRAYLOG_PORT=9000Increase Docker memory to 8GB+ in Docker Desktop settings.
Once everything is running:
- ✅ Generate traffic from the web UI
- ✅ Watch metrics in Prometheus/Grafana
- ✅ View logs in Graylog
- ✅ Explore the dashboards
- ✅ Customize and extend!
Enjoy your observability platform! 🚀