# 📄 Enhanced Paperless-ngx Installation Script An automated installation and maintenance script for Paperless-ngx with Docker integration and CloudPanel compatibility. This script provides a robust, self-healing installation process with comprehensive error handling and health checks. ## 🌟 Features - **Automated Installation**: One-command setup of Docker and Paperless-ngx - **Smart Health Monitoring**: Continuous verification of service health - **Automatic Recovery**: Built-in error detection and recovery procedures - **Backup System**: Automatic backup of existing installations before modifications - **Secure Configuration**: Properly isolated Redis and PostgreSQL containers - **Detailed Logging**: Comprehensive logging for troubleshooting - **CloudPanel Integration**: Ready for CloudPanel reverse proxy setup ## 📋 Prerequisites - Ubuntu ONLY 24.04 server - Root access or sudo privileges - CloudPanel installed (for reverse proxy setup) - Domain or subdomain pointed to your server ## 🚀 Quick Start 1. Clone the Script: ```bash wget https://git.hhf.technology/hhf/paperless_ngx_cloudpane/paperless-ngx-installer.git ``` 2. Make the script executable: ```bash chmod +x paperless-install.sh ``` 3. Run the installation: ```bash sudo ./paperless-install.sh ``` ## ⚙️ Configuration The script includes several configurable parameters at the top: ```bash INSTALL_DIR="/docker/paperless-ngx" # Installation directory COMPOSE_FILE="${INSTALL_DIR}/docker-compose.yml" # Docker compose file location LOG_FILE="/var/log/paperless-install.log" # Log file location ``` ### Environment Variables Key environment variables in docker-compose.yml: ```yaml PAPERLESS_TIME_ZONE: Europe/London PAPERLESS_OCR_LANGUAGE: eng PAPERLESS_URL: https://your-domain.com ``` ## 🔧 CloudPanel Setup After running the script, configure CloudPanel: 1. Create new site in CloudPanel 2. Select "Reverse Proxy" type 3. Configure with: - Domain: your-paperless-domain.com - Reverse Proxy URL: http://localhost:8000 4. Set up SSL certificate ## 📝 Logging The script maintains detailed logs at `/var/log/paperless-install.log`. View logs with: ```bash tail -f /var/log/paperless-install.log ``` ## 🛠️ Troubleshooting ### Common Issues 1. **Container Start Failure** ```bash docker logs paperless-ngx-webserver-1 docker compose restart webserver ``` 2. **Database Connection Issues** ```bash docker compose logs db docker compose restart db ``` 3. **Permission Problems** ```bash sudo chown -R 1000:1000 /docker/paperless-ngx/consume sudo chown -R 1000:1000 /docker/paperless-ngx/export ``` ## 🔄 Updates Update Paperless-ngx: ```bash cd /docker/paperless-ngx docker compose pull docker compose down docker compose up -d ``` ## 🔒 Security The script implements several security measures: - Isolated Docker networks for database and Redis - Secure default configurations - Automatic backup before modifications - SSL/TLS support through CloudPanel ## 📚 Directory Structure ``` /docker/paperless-ngx/ ├── docker-compose.yml ├── consume/ ├── export/ ├── data/ └── media/ ``` ## 📄 License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## 🙏 Acknowledgments - [Paperless-ngx Project](https://github.com/paperless-ngx/paperless-ngx) - CloudPanel Team - Docker Team ## 📞 Support - Create an issue on the [forum](https://forum.hhf.technology/t/complete-guide-installing-paperless-ngx-with-cloudpanel/455) - Visit the [Paperless-ngx Documentation](https://docs.paperless-ngx.com) - Join the Paperless-ngx community on Discord ## ⚠️ Disclaimer This script is provided as-is, without any warranties. Always backup your data before running installation scripts.