174 lines
4.5 KiB
Markdown
174 lines
4.5 KiB
Markdown
# Dokploy Deployment Guide
|
|
|
|
This guide will help you deploy the Phosphat Report application on Dokploy.
|
|
|
|
## Step 1: Prepare Your Repository
|
|
|
|
1. **Fix Git Issues** (if you encountered them):
|
|
```bash
|
|
# Remove temporary Excel files
|
|
git rm --cached "public/~$16-6 Petra.xlsx"
|
|
|
|
# Configure Git line endings for Windows
|
|
git config core.autocrlf true
|
|
|
|
# Add and commit files
|
|
git add .
|
|
git commit -m "Initial commit for Dokploy deployment"
|
|
git push origin main
|
|
```
|
|
|
|
## Step 2: Create Application in Dokploy
|
|
|
|
1. **Login to your Dokploy dashboard**
|
|
2. **Click "Create Application"**
|
|
3. **Choose "Docker Compose"**
|
|
4. **Fill in the details**:
|
|
- **Name**: `phosphat-report` (or your preferred name)
|
|
- **Repository URL**: Your Git repository URL
|
|
- **Branch**: `main`
|
|
- **Build Path**: `/` (root directory)
|
|
|
|
## Step 3: Configure Environment Variables
|
|
|
|
In the Dokploy environment variables section, add these variables:
|
|
|
|
### Required Variables
|
|
```
|
|
NODE_ENV=production
|
|
SESSION_SECRET=your-super-secure-session-secret-change-this-min-32-chars
|
|
SUPER_ADMIN=superadmin
|
|
SUPER_ADMIN_EMAIL=admin@yourcompany.com
|
|
SUPER_ADMIN_PASSWORD=YourSecurePassword123!
|
|
```
|
|
|
|
### Optional Variables
|
|
```
|
|
APP_PORT=3000
|
|
DOMAIN=your-domain.com
|
|
MAIL_HOST=smtp.gmail.com
|
|
MAIL_PORT=587
|
|
MAIL_SECURE=false
|
|
MAIL_USERNAME=your-email@gmail.com
|
|
MAIL_PASSWORD=your-app-password
|
|
MAIL_FROM_NAME=Phosphat Report System
|
|
MAIL_FROM_EMAIL=noreply@yourcompany.com
|
|
LOG_LEVEL=info
|
|
```
|
|
|
|
## Step 4: Deploy
|
|
|
|
1. **Click "Deploy"** in Dokploy
|
|
2. **Monitor the build logs** for any errors
|
|
3. **Wait for deployment to complete**
|
|
|
|
## Step 5: Access Your Application
|
|
|
|
Once deployed, your application will be available at:
|
|
- **HTTP**: `http://your-server-ip:3000`
|
|
- **HTTPS**: `https://your-domain.com` (if domain is configured)
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **Volume Mount Errors**:
|
|
- The updated docker-compose.yml uses Docker volumes instead of bind mounts
|
|
- This should resolve the "no such file or directory" error
|
|
|
|
2. **Build Failures**:
|
|
- Check the build logs in Dokploy
|
|
- Ensure all environment variables are set correctly
|
|
- Verify your repository is accessible
|
|
|
|
3. **Database Issues**:
|
|
- The database will be created automatically on first run
|
|
- Check container logs if the application fails to start
|
|
|
|
### Checking Logs
|
|
|
|
In Dokploy:
|
|
1. Go to your application
|
|
2. Click on "Logs" tab
|
|
3. Select the container (app or backup)
|
|
4. View real-time logs
|
|
|
|
### Health Check
|
|
|
|
Once deployed, check if the application is healthy:
|
|
```bash
|
|
curl http://your-server-ip:3000/health
|
|
```
|
|
|
|
Should return:
|
|
```json
|
|
{
|
|
"status": "ok",
|
|
"timestamp": "2025-07-24T10:30:00.000Z",
|
|
"uptime": 123.45,
|
|
"environment": "production",
|
|
"database": "connected"
|
|
}
|
|
```
|
|
|
|
## Database Management
|
|
|
|
### Backup
|
|
The backup service runs automatically daily at 2 AM. To manually backup:
|
|
|
|
1. **Access the container**:
|
|
```bash
|
|
docker exec -it phosphat-report-app sh
|
|
```
|
|
|
|
2. **Create backup**:
|
|
```bash
|
|
cp /app/data/production.db /app/data/backup_$(date +%Y%m%d_%H%M%S).db
|
|
```
|
|
|
|
### Restore
|
|
1. **Stop the application** in Dokploy
|
|
2. **Access the server** and restore the database file
|
|
3. **Restart the application**
|
|
|
|
## Updates
|
|
|
|
To update your application:
|
|
|
|
1. **Push changes** to your Git repository
|
|
2. **Click "Redeploy"** in Dokploy
|
|
3. **Monitor the deployment** logs
|
|
|
|
## Security Notes
|
|
|
|
1. **Change default passwords** in environment variables
|
|
2. **Use strong session secret** (minimum 32 characters)
|
|
3. **Configure proper domain** and SSL
|
|
4. **Regular backups** are handled automatically
|
|
5. **Monitor application logs** regularly
|
|
|
|
## Support
|
|
|
|
If you encounter issues:
|
|
|
|
1. **Check Dokploy logs** for build/runtime errors
|
|
2. **Verify environment variables** are set correctly
|
|
3. **Test health endpoint**: `/health`
|
|
4. **Check database connectivity** in logs
|
|
5. **Review Docker Compose configuration**
|
|
|
|
## File Structure for Dokploy
|
|
|
|
Your repository should have these key files:
|
|
```
|
|
├── docker-compose.yml # Main compose file (Dokploy compatible)
|
|
├── docker-compose.dokploy.yml # Alternative compose file
|
|
├── Dockerfile # Application container
|
|
├── .dockerignore # Docker build exclusions
|
|
├── .env.dokploy # Environment template
|
|
├── app/ # Application code
|
|
├── prisma/ # Database schema
|
|
└── public/ # Static assets
|
|
```
|
|
|
|
The deployment is now optimized for Dokploy and should work without volume mounting issues. |