banatie-service/README.md

169 lines
4.0 KiB
Markdown

# Banatie - AI Image Generation Service
A comprehensive monorepo for the Banatie AI image generation platform, featuring multiple applications for different use cases.
## Architecture Overview
```
banatie-service/
├── apps/
│ ├── api-service/ # REST API for image generation (Express.js + TypeScript)
│ ├── landing/ # Landing page with demo (Next.js)
│ ├── studio/ # SaaS platform with billing (Next.js + Supabase + Stripe)
│ └── admin/ # Administration dashboard (Next.js)
├── data/ # Docker volumes (postgres, minio)
├── docker-compose.yml # Infrastructure services
└── package.json # Workspace scripts
```
## Applications
### 🚀 API Service (`apps/api-service`)
- **Port**: 3000
- **Tech**: Express.js, TypeScript, Gemini AI
- **Purpose**: Core REST API for AI image generation
- **Features**: Image generation, file upload, rate limiting, logging
### 🌐 Landing Page (`apps/landing`)
- **Port**: 3001
- **Tech**: Next.js 14, Tailwind CSS
- **Purpose**: Public landing page with demo
- **Features**: Service overview, image generation demo
### 🏢 Studio (`apps/studio`)
- **Port**: 3002
- **Tech**: Next.js 14, Supabase, Stripe
- **Purpose**: SaaS platform for paid users
- **Features**: Authentication, billing, subscriptions, usage tracking
### 🔧 Admin (`apps/admin`)
- **Port**: 3003
- **Tech**: Next.js 14, Dashboard components
- **Purpose**: Service administration and monitoring
- **Features**: System monitoring, user management, analytics
## Quick Start
### Prerequisites
- Node.js >= 18.0.0
- pnpm >= 8.0.0
- Docker & Docker Compose
### Development Setup
```bash
# Clone and install dependencies
git clone <repository-url>
cd banatie-service
pnpm install
# Start infrastructure (PostgreSQL + MinIO)
docker compose up -d postgres minio storage-init
# Start all applications in development mode
pnpm dev
# Or start individual apps
pnpm dev:api # API Service on :3000
pnpm dev:landing # Landing Page on :3001
pnpm dev:studio # Studio Platform on :3002
pnpm dev:admin # Admin Dashboard on :3003
```
### Production Deployment
```bash
# Build all applications
pnpm build
# Start infrastructure
docker compose up -d
# Start production servers
pnpm start:api
pnpm start:landing
pnpm start:studio
pnpm start:admin
```
## Development Commands
```bash
# Install dependencies for all apps
pnpm install
# Development (all apps in parallel)
pnpm dev
# Build all apps
pnpm build
# Type checking
pnpm typecheck
# Linting
pnpm lint
# Testing (API service only)
pnpm test
# Clean all build outputs
pnpm clean
```
## Environment Configuration
Each application has its own environment configuration:
- **Root**: `.env.docker` (for Docker services)
- **API Service**: `apps/api-service/.env`
- **Studio**: `apps/studio/.env.local`
- **Admin**: `apps/admin/.env.local`
See individual app README files for specific environment variables.
## Services & Ports
| Service | Port | Description |
| --------------- | ---- | ---------------- |
| API Service | 3000 | Core REST API |
| Landing Page | 3001 | Public website |
| Studio Platform | 3002 | SaaS application |
| Admin Dashboard | 3003 | Administration |
| PostgreSQL | 5460 | Database |
| MinIO API | 9000 | Object storage |
| MinIO Console | 9001 | Storage admin |
## API Usage
### Generate Image
```bash
# Text-to-image
curl -X POST http://localhost:3000/api/text-to-image \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"prompt": "A magical forest with glowing mushrooms",
"filename": "magical_forest"
}'
```
See `apps/api-service/README.md` for detailed API documentation.
## Contributing
1. Each app has its own package.json and dependencies
2. Use the root workspace commands for multi-app operations
3. Follow the existing code style and patterns
4. Run `pnpm typecheck` and `pnpm lint` before committing
## License
MIT License - see individual app directories for more details.