================================================================================ TSN Digital Academy — cPanel shared hosting deploy guide ================================================================================ WHAT TO UPLOAD -------------- Upload everything INSIDE the "Main Files/" folder into your Python App root (the folder that contains manage.py after upload). Do NOT upload: venv/, .env, db.sqlite3, or this ZIP's Documentation/ folder into the app root (Documentation is for you to read offline). BEFORE YOU START ---------------- 1) Create a MySQL database + user in cPanel → MySQL® Databases (All Privileges). Write down: DB name, user, password, host (usually localhost). 2) cPanel → Setup Python App → Create: - Python 3.10+ (prefer 3.11/3.12) - Application root = e.g. academy - Application URL = your domain/subdomain - Startup file = passenger_wsgi.py - Entry point = application INSTALL PACKAGES ---------------- Copy the "Enter to the virtual environment" command from Setup Python App, open Terminal/SSH, then: cd ~/academy # your application root pip install -r requirements.txt python manage.py collectstatic --noinput Restart the Python App in cPanel. WEB INSTALLER ------------- Open: https://YOUR-DOMAIN/install/ Choose MySQL, enter DB credentials, set academy name + admin login. The installer writes .env, runs migrations, and creates your admin. AFTER INSTALL ------------- 1) Log in → open Admin Guide from the dashboard sidebar 2) Academy Settings → Branding, Payments, Email/SMTP (send a test email) 3) Manage Courses → create/publish courses 4) Import verified questions (needed for exams + Free skill check) 5) Toggle "Enable Free skill check" per course under Growth & marketing PERMISSIONS ----------- These folders must be writable by the app: media/ logs/ storage/ staticfiles/ STATIC & MEDIA -------------- - Static CSS/JS: WhiteNoise serves them after collectstatic - Media uploads: Django serves /media/ by default (SERVE_MEDIA=True in .env) COMMON PROBLEMS --------------- - 500 error after deploy → restart app; check passenger_wsgi.py + pip install - CSS missing → run collectstatic --noinput and restart - /install/ loops or blocked → delete storage/installed only if you intend to reinstall (also reset DB if needed) - Skill check error "need 12 verified questions" → import & verify questions SUPPORT FILES IN THIS ZIP ------------------------- START-HERE.html — visual quick start (open in browser) Documentation/index.html — product documentation Documentation/admin-guide.html — full admin how-to (every module) Main Files/ — application source ================================================================================