Stop configuring Docker services from scratch. Service Forge auto-detects your project's needs and generates production-ready Docker Compose configs in seconds.
$ service-forge init
Scanning ./my-project...
Detected services:
postgres: Python package 'asyncpg' in requirements.txt
redis: URL pattern found in .env.example
rabbitmq: Node package 'amqplib' in package.json
Configuring services: postgres, redis, rabbitmq
Created docker-compose.yml
Created .env.forge
$ service-forge up
Starting all services... done.
$ service-forge status
┌──────────┬────────────┬───────────────────┐
│ Service │ Status │ Ports │
├──────────┼────────────┼───────────────────┤
│ postgres │ Up (healthy) │ 0.0.0.0:5432 │
│ redis │ Up (healthy) │ 0.0.0.0:6379 │
│ rabbitmq │ Up (healthy) │ 0.0.0.0:5672 │
└──────────┴────────────┴───────────────────┘
- Auto-detection - scans
.env,requirements.txt,package.json, Django settings, Rails configs - 11 services - Postgres, MySQL, Redis, MongoDB, RabbitMQ, Elasticsearch, MinIO, Memcached, NATS, MailHog, Jaeger
- Health checks - every service template includes Docker health checks
- Connection strings - auto-generates
.env.forgewithDATABASE_URL,REDIS_URL, etc. - Zero config - sane defaults for dev: usernames, passwords, ports, volumes
pip install service-forgeRequires Docker and Docker Compose installed on your system.
| Command | Description |
|---|---|
service-forge init |
Scan project, generate docker-compose.yml |
service-forge up [services...] |
Start services |
service-forge down [-v] |
Stop services (optionally remove volumes) |
service-forge restart [services...] |
Restart services |
service-forge status |
Show service status table |
service-forge logs [service] [-f] |
View/follow logs |
service-forge detect |
Show auto-detected services |
service-forge env [-o file] |
Print/write connection strings |
service-forge list |
List all available service templates |
| Service | Image | Default Port | Connection String |
|---|---|---|---|
| postgres | postgres:16-alpine | 5432 | postgresql://forge:forge_secret@localhost:5432/forge_db |
| mysql | mysql:8.0 | 3306 | mysql://forge:forge_secret@localhost:3306/forge_db |
| redis | redis:7-alpine | 6379 | redis://:forge_secret@localhost:6379/0 |
| mongodb | mongo:7 | 27017 | mongodb://forge:forge_secret@localhost:27017 |
| rabbitmq | rabbitmq:3-management | 5672, 15672 | amqp://forge:forge_secret@localhost:5672/ |
| elasticsearch | elasticsearch:8.13.0 | 9200 | http://localhost:9200 |
| minio | minio/minio:latest | 9000, 9001 | http://localhost:9000 |
| memcached | memcached:1.6-alpine | 11211 | localhost:11211 |
| nats | nats:2-alpine | 4222, 8222 | nats://localhost:4222 |
| mailhog | mailhog/mailhog | 1025, 8025 | localhost:1025 (SMTP) |
| jaeger | jaegertracing/all-in-one | 16686, 4317 | http://localhost:4317 (OTLP) |
MIT