65 lines
1.8 KiB
Markdown
65 lines
1.8 KiB
Markdown
# Banatie Infrastructure
|
|
|
|
Production deployment configuration files for VPS.
|
|
|
|
## Files
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `docker-compose.production.yml` | Docker Compose for VPS deployment |
|
|
| `.env.example` | Environment variables template |
|
|
| `secrets.env.example` | Secrets template (passwords, API keys) |
|
|
| `init-db.sql` | PostgreSQL initialization (grants permissions) |
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
# Copy to VPS
|
|
scp -r infrastructure/* usul-vps:/opt/banatie/
|
|
|
|
# On VPS
|
|
cd /opt/banatie
|
|
cp docker-compose.production.yml docker-compose.yml
|
|
cp .env.example .env
|
|
cp secrets.env.example secrets.env
|
|
cp init-db.sql scripts/
|
|
|
|
# Edit configuration
|
|
nano .env
|
|
nano secrets.env
|
|
chmod 600 secrets.env
|
|
|
|
# Deploy
|
|
docker compose --env-file .env --env-file secrets.env up -d
|
|
```
|
|
|
|
## VPS Directory Structure
|
|
|
|
```
|
|
/opt/banatie/
|
|
├── docker-compose.yml # Copy from docker-compose.production.yml
|
|
├── .env # Copy from .env.example and configure
|
|
├── secrets.env # Copy from secrets.env.example and configure
|
|
├── scripts/
|
|
│ └── init-db.sql # Copy from init-db.sql
|
|
├── data/
|
|
│ ├── postgres/ # PostgreSQL data (DO NOT CREATE MANUALLY)
|
|
│ ├── minio/ # MinIO drives (DO NOT CREATE MANUALLY)
|
|
│ ├── waitlist-logs/
|
|
│ ├── api-results/
|
|
│ └── api-uploads/
|
|
└── logs/
|
|
└── api/
|
|
```
|
|
|
|
## Important Notes
|
|
|
|
1. **Docker User NS Remapping**: VPS uses UID offset 165536. Let Docker create data directories.
|
|
2. **Secrets**: Never commit secrets.env to git. Use `chmod 600`.
|
|
3. **Database**: Tables are created by Drizzle ORM, not init-db.sql.
|
|
|
|
## Documentation
|
|
|
|
- Full guide: [docs/deployment.md](../docs/deployment.md)
|
|
- VPS docs: VPS repo `docs/banatie-deployment.md`
|