- Initialize Git repository with main branch - Create comprehensive .gitignore for Node.js, React, and environment files - Set up directory structure (frontend/, backend/, docs/) - Create detailed README.md with project overview and setup instructions - Add .env.example with all required environment variables - Configure Prettier for consistent code formatting All acceptance criteria met: ✅ Git repository initialized with appropriate .gitignore ✅ Directory structure matches Technical Assumptions ✅ README.md created with project overview and setup docs ✅ .env.example file with all required environment variables ✅ Prettier config files added for code formatting consistency 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Deployment Architecture
Deployment Strategy
Frontend Deployment:
- Platform: Coolify (self-hosted)
- Build Command:
npm run build(in frontend/) - Output Directory:
frontend/dist - Serving: Static files served by Nginx/Caddy via Coolify reverse proxy
- CDN/Edge: No CDN (self-hosted), Coolify handles SSL and caching headers
Backend Deployment:
- Platform: Coolify (self-hosted)
- Build Command: None (Node.js runs directly)
- Deployment Method: Docker container with
npm start - Process Manager: Docker handles restarts, no PM2 needed
- Health Checks:
GET /api/healthmonitored by Coolify
Database Deployment:
- Platform: Coolify-managed PostgreSQL container
- Backups: Automated daily backups via Coolify
- Migrations: Run
npx prisma migrate deployon deployment
CI/CD Pipeline
MVP: Manual deployment via Coolify UI (no CI/CD pipeline initially).
Future CI/CD (GitHub Actions example):
# .github/workflows/deploy.yaml
name: Deploy to Coolify
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install dependencies
run: |
cd frontend && npm ci
cd ../backend && npm ci
- name: Run tests
run: |
cd frontend && npm test
cd ../backend && npm test
- name: Build frontend
run: cd frontend && npm run build
- name: Deploy to Coolify
uses: coolify/action@v1
with:
api-key: ${{ secrets.COOLIFY_API_KEY }}
project-id: ${{ secrets.COOLIFY_PROJECT_ID }}
Environments
| Environment | Frontend URL | Backend URL | Purpose |
|---|---|---|---|
| Development | http://localhost:5173 | http://localhost:3000/api | Local development with hot reload |
| Production | https://books.yourdomain.com | https://books.yourdomain.com/api | Live environment on Coolify |
Note: No staging environment for MVP (single-user, can test locally). Add staging in v1.1 if needed.