phosphat-report-app/DOKPLOY-DEPLOYMENT.md
2025-07-24 13:29:15 +03:00

4.5 KiB

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):
    # 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:

curl http://your-server-ip:3000/health

Should return:

{
  "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:

    docker exec -it phosphat-report-app sh
    
  2. Create backup:

    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.