- S3 API: s3.b28.dev (port 9000) - Console: objects.b28.dev (port 9001) - Uses Coolify SERVICE_FQDN_* for multi-domain routing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2.3 KiB
2.3 KiB
MinIO Object Storage
S3-compatible object storage for b28.dev infrastructure.
Purpose
- Backups: PostgreSQL dumps, Docker volume snapshots
- Media Storage: Directus file uploads (portfolio + demos)
- Demo Artifacts: Cached API responses, datasets
Deployment
Web Console: https://objects.b28.dev (port 9001) S3 API: https://s3.b28.dev (port 9000)
Ports:
- 9000: S3 API (programmatic access) → s3.b28.dev
- 9001: Web Console (admin UI) → objects.b28.dev
Configuration
Environment Variables
Copy .env.example to .env and configure:
MINIO_ROOT_USER=your-admin-username
MINIO_ROOT_PASSWORD=your-strong-password
Credentials
The same credentials are used for:
- S3 API access (boto3, MinIO client, etc.)
- Web console login at https://objects.b28.dev
Deployment on Coolify
- Push this directory to Gitea
- In Coolify, create new resource → Git Repository
- Point to this repo/directory
- Set environment variables
- Deploy
Initial Setup
After deployment:
-
Login to https://objects.b28.dev
-
Create buckets:
backups(private)directus-uploads(public-read)demo-artifacts(private)
-
Create service accounts:
- Directus: read/write to
directus-uploads - Backup scripts: write-only to
backups
- Directus: read/write to
Bucket Structure
minio/
├── backups/
│ ├── postgres/ # Daily PostgreSQL dumps
│ ├── volumes/ # Docker volume snapshots
│ └── configs/ # Infrastructure configs
├── directus-uploads/ # Directus file storage
│ ├── portfolio/ # Portfolio media
│ └── events/ # Events demo media
└── demo-artifacts/ # Demo-specific data
└── events-demo/
├── luma-cache/ # Cached Lu.ma responses
└── ai-analysis/ # Cached AI analyses
Access via MinIO Client
# Configure alias
mc alias set homelab https://objects.b28.dev <access-key> <secret-key>
# List buckets
mc ls homelab
# Upload file
mc cp backup.sql homelab/backups/postgres/
# Download file
mc cp homelab/backups/postgres/backup.sql ./
Backup Strategy
See /scripts/backup-to-minio.sh for automated backup implementation.
Frequency: Daily at 2:00 AM UTC Retention: 7 daily, 4 weekly, 3 monthly