# TSN Digital Academy — Deploy on cPanel

Follow these steps on shared hosting with cPanel Setup Python App.

ZIP contents

- `START-HERE.html` — this file
- `CPANEL-DEPLOY.txt` — same steps as plain text
- `Main Files/` — upload everything inside this folder
- `Documentation/` — docs + full Admin Guide (HTML)

## Step 1 — Create MySQL database (recommended)

1. cPanel → MySQL® Databases
2. Create a database (e.g. `academy`)
3. Create a MySQL user with a strong password
4. Add the user to the database with ALL PRIVILEGES
5. Note the full names (often `cpaneluser_dbname` / `cpaneluser_dbuser`)

## Step 2 — Create Python App

1. cPanel → Setup Python App → Create Application
2. Python version: 3.10+ (3.11 or 3.12 if available)
3. Application root: e.g. `academy` (folder where files will live)
4. Application URL: your domain or subdomain
5. Application startup file: `passenger_wsgi.py`
6. Application Entry point: `application`
7. Click Create

## Step 3 — Upload files

1. Open File Manager → go into the Application root folder
2. Upload all contents of `Main Files/` (not the folder name itself)
3. You should see `manage.py`, `passenger_wsgi.py`, `apps/`, `config/`, etc.
4. Do not upload a local `.env`, `venv/`, or `db.sqlite3`

## Step 4 — Install packages

1. In Setup Python App, copy the command under Enter to the virtual environment
2. Open Terminal (or SSH), paste that command, press Enter
3. Run:

       cd ~/academy
       pip install -r requirements.txt
       python manage.py collectstatic --noinput

   (Replace `~/academy` with your real application root.)

## Step 5 — Restart & install

1. Back in Setup Python App → Restart
2. Open `https://YOUR-DOMAIN/install/`
3. Complete the wizard (choose MySQL and enter the DB details from Step 1)
4. Log in with the admin account you created in the installer

After install

1. Dashboard → Admin Guide (full how-to for every module)
2. Academy Settings → branding, payments, Email/SMTP
3. Create a course → import questions → enable Free skill check if needed

If the site shows an error after upload

- Confirm `passenger_wsgi.py` is the startup file and Entry point is `application`
- Confirm `pip install -r requirements.txt` finished without errors
- Folders `media/`, `logs/`, `storage/`, `staticfiles/` must be writable (755/775)
- Restart the Python app again

More detail: CPANEL-DEPLOY.txt · Documentation · Admin Guide