A Next.js application with OpenTelemetry tracing, authentication, and microservice-based deployment architecture.
-
Start services:
docker-compose -f deployment/docker-compose.dev.yml up -d
-
Configure environment:
cp .env.example .env # Edit .env with your values (see .env.d.ts for examples) -
Run the application:
npm install npm run dev
-
Access services:
- App: http://localhost:3000
- Jaeger UI: http://localhost:16686
- Database: localhost:5432
# Configure production environment
cp .env .env.production
# Deploy all services
docker-compose up -dsrc/- Application source codedocs/- Documentation filesdeployment/- Docker and deployment configurations.env.d.ts- Environment variable definitions and examplesdocker-compose.yml- Production microservice deploymentdeployment/docker-compose.dev.yml- Development services
All environment variable examples and TypeScript definitions are in .env.d.ts. Copy values to your .env file.
The application uses a microservice architecture with:
- App Service - Next.js application (Port 3000)
- Database Service - PostgreSQL (Port 5432)
- Jaeger Service - Distributed tracing (Port 16686)
- Prometheus Service - Metrics collection (Port 9090, optional)
See deployment/README.md for detailed deployment instructions.
- Framework: Next.js 15
- Database: PostgreSQL + Prisma
- Authentication: Clerk
- Observability: OpenTelemetry + Jaeger
- Deployment: Docker Compose