1.9 KiB
1.9 KiB
Mattermost Production Deployment
Production-ready Mattermost Team Edition deployment for mm.crista.love
Architecture
- Mattermost Team Edition - Running in Docker
- PostgreSQL 15 - Database (Docker)
- Nginx - Reverse proxy with SSL termination
- Cloudflare - DNS and SSL (Full Strict mode with Origin Certificate)
- Backblaze B2 - File storage (S3-compatible)
- Automated Backups - Daily to Backblaze B2
Server Details
- Server: YOUR_WAN_IP
- Domain: mm.crista.love
- OS: Ubuntu 24.04 LTS
Files
| File | Description |
|---|---|
deploy-mattermost.sh |
Main deployment script |
mattermost-nginx.conf |
Nginx reverse proxy configuration |
mattermost-backup.sh |
Automated backup script |
mm-crista-love.crt |
Cloudflare Origin SSL certificate |
mm-crista-love.key |
SSL private key |
Deployment
- Copy all files to server
- Run
deploy-mattermost.shas root - Visit https://mm.crista.love to create admin account
Configuration
Email (SMTP)
- Gmail with app password
- STARTTLS on port 587
File Storage
- Backblaze B2 (S3-compatible)
- Bucket:
vk-mattermost
Backups
- Daily at 3 AM UTC
- Stored in B2:
vk-mattermost/backups/ - Retention: 30 days remote, 7 days local
Management Commands
# View logs
docker compose -f /opt/mattermost/docker-compose.yml logs -f
# Restart services
docker compose -f /opt/mattermost/docker-compose.yml restart
# Manual backup
/opt/mattermost/backup.sh
# Check status
docker compose -f /opt/mattermost/docker-compose.yml ps
Security Notes
⚠️ Important: The actual credentials are stored in:
/opt/mattermost/.env- PostgreSQL password~/.aws/credentials- B2 credentials- Docker environment variables - SMTP credentials
The files in this repo contain placeholder references. Actual secrets should never be committed.