Refactored setup.sh for modularity, maintainability, and improved logging. Moved Nginx and Xray configuration to template files under src/config, and added a parameterized HTML portfolio template under src/www. This change enables easier customization and automation of the setup process.
Updated the README to reflect the new X-WebUI setup, replacing the previous portfolio-focused documentation with instructions for deploying a secure server environment using Nginx, Docker, X, and Open WebUI. The setup.sh script now installs additional dependencies (ca-certificates, curl), sets up Docker and Open WebUI, and updates Xray and Nginx configurations for improved security and compatibility. The default index.html was simplified to a clean, static portfolio template without Tailwind or external dependencies.
Replaces the static CSS and HTML structure of the portfolio landing page with a modern, responsive design using Tailwind CSS. Adds improved navigation, mobile menu, project cards, and a styled contact form. Updates layout for better accessibility and user experience, and includes dynamic year in the footer.
The README has been rewritten for clarity, modernized formatting, and improved feature documentation. The setup.sh script is streamlined: verbose output and redundant permission steps are removed, package installation is limited to essentials, the certificate renewal script is simplified, and cron job setup is improved. Unnecessary status checks and verbose messages are eliminated for a cleaner, more automated deployment process.
Changed ownership of /var/www/html/.well-known/acme-challenge to $USERNAME:www-data and updated permissions to 775 to ensure proper access for certificate challenges.
Moved ownership and permission commands for /var/www/html and .well-known/acme-challenge after index.html creation for better file management. Simplified removal of default nginx index file.
Expanded and reorganized the README for clarity, adding detailed sections on features, installation, customization, troubleshooting, and security. Renamed the certificate renewal script from cert-renew.sh to renew.sh in setup.sh and updated all references accordingly.
Adds error handling, progress messages, and more robust certificate renewal logic to setup.sh. Improves web server configuration for ACME challenges, automates service checks, and provides clearer output for server initialization. Cron job for certificate renewal is now weekly with logging, and the script includes verification steps for certificates and services.
Changed SSL certificate storage from /etc/xray/cert to ~/cert and updated all related paths in README.md and setup.sh. Renamed the renewal script to cert-renew.sh and adjusted cron job and Xray config to use the new locations for improved user accessibility.
Updated references in README.md and setup.sh to use 'renew.sh' instead of 'cert-renew.sh' for the certificate renewal script. This improves consistency and simplifies the script name.
Changed SSL certificate and key storage from ~/cert to /etc/xray/cert in both README.md and setup.sh for improved consistency and system-wide accessibility. Updated related script and config references to reflect the new directory.
Eliminated installation steps for Docker and Open WebUI from setup.sh to streamline the setup process. Also uncommented the nginx server block for port 8888 and removed installation of ca-certificates and curl.