Files
mold_cost_online_tool/docs/SETUP.md
T

225 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🚀 Mold Cost Calculator - Setup Guide
## 📦 Package Contents
This handover package contains a complete, production-ready mold cost calculator application with:
-**Full Application Code** - Complete Flask application
-**Database Migrations** - PostgreSQL schema and migrations
-**Container Configuration** - Podman/Docker setup
-**Deployment Scripts** - Production and development environments
-**Documentation** - Complete user, admin, and developer guides
-**Test Suite** - Comprehensive testing framework
## 🎯 Quick Start (5 minutes)
### 1. Prerequisites
```bash
# Required software
- Python 3.11+
- Podman or Docker
- Git
```
### 2. Initial Setup
```bash
# Clone or extract the package
cd mold_cost_online_tool
# Copy environment template
cp .env.example .env
# Edit environment variables
nano .env # or use your preferred editor
```
### 3. Start Development Environment
```bash
# Start containers
podman-compose -f podman-compose.development.yml up -d
# Check status
podman ps
# Access application
open http://localhost:5003
```
### 4. Create Admin User
```bash
# Run database migrations
podman exec mold_cost_tool_development flask db upgrade
# Create admin user (if needed)
podman exec mold_cost_tool_development flask init-db
```
## 🔧 Environment Configuration
### Required Environment Variables
Edit `.env` file with your values:
```bash
# Database
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_secure_password
POSTGRES_DB=mold_cost
DATABASE_HOST=db
# Application
SECRET_KEY=your_very_secure_secret_key
FLASK_ENV=production
# Admin Account
ADMIN_EMAIL=admin@yourcompany.com
ADMIN_PASSWORD=your_admin_password
```
### Generate Secure Keys
```bash
# Generate secret key
openssl rand -hex 32
# Generate database password
openssl rand -base64 32
```
## 🌐 Deployment Options
### Option 1: Local Development
```bash
podman-compose -f podman-compose.development.yml up -d
# Access at: http://localhost:5003
```
### Option 2: Production Deployment
```bash
podman-compose up -d
# Configure nginx and SSL certificates
# Access at: https://yourdomain.com
```
### Option 3: Cloud Deployment
- **AWS**: Use ECS or EKS with provided Dockerfile
- **Azure**: Use Container Instances or AKS
- **GCP**: Use Cloud Run or GKE
- **DigitalOcean**: Use App Platform or Droplets
## 📊 System Requirements
### Minimum Requirements
- **CPU**: 2 cores
- **RAM**: 4GB
- **Storage**: 20GB
- **Network**: 100Mbps
### Recommended Requirements
- **CPU**: 4+ cores
- **RAM**: 8GB+
- **Storage**: 50GB+ SSD
- **Network**: 1Gbps
## 🔒 Security Checklist
Before going live:
- [ ] Change default passwords
- [ ] Generate secure SECRET_KEY
- [ ] Configure HTTPS/SSL
- [ ] Set up firewall rules
- [ ] Enable rate limiting
- [ ] Configure backup strategy
- [ ] Set up monitoring
## 📈 Performance Tuning
### Container Optimization
```bash
# Adjust worker processes (in gunicorn_config.py)
workers = (2 × CPU_cores) + 1
# Database connection pool
pool_size = 10
pool_recycle = 3600
```
### Monitoring Setup
```bash
# Health check endpoint
curl http://localhost:5003/health
# Container logs
podman logs mold_cost_tool
# Database performance
podman exec mold_cost_db psql -U postgres -c "SELECT * FROM pg_stat_activity;"
```
## 🚨 Troubleshooting
### Common Issues
**Container won't start:**
```bash
# Check logs
podman logs mold_cost_tool
# Check port conflicts
netstat -tulpn | grep :5003
# Verify environment
podman exec mold_cost_tool env | grep POSTGRES
```
**Database connection failed:**
```bash
# Check database container
podman exec mold_cost_db pg_isready -U postgres
# Verify database exists
podman exec mold_cost_db psql -U postgres -l
```
**Application errors:**
```bash
# Check application logs
podman logs mold_cost_tool
# Test database connection
podman exec mold_cost_tool flask shell
```
## 📚 Next Steps
1. **Read Documentation**:
- `README.md` - Overview and features
- `USER_GUIDE.md` - End-user instructions
- `ADMIN_GUIDE.md` - Administrative operations
- `DEVELOPER_GUIDE.md` - Development details
2. **Customize Application**:
- Update cost factors in admin panel
- Configure email settings
- Customize branding and styling
3. **Production Deployment**:
- Set up domain and SSL
- Configure nginx reverse proxy
- Set up automated backups
- Implement monitoring
## 📞 Support
For technical support:
- Check the documentation files
- Review container logs
- Test the health endpoint
- Contact the original developer
---
**Package Version**: 1.0.0
**Last Updated**: June 2025
**Compatibility**: Python 3.11+, PostgreSQL 13+, Podman/Docker