SETUP_KEY in config/env.php, and remove install/setup.php after first login setup.
1 Upload files
Upload all project files to your hosting document root (e.g. public_html) or a subfolder. Ensure .htaccess is included.
- PHP 8.0+ required
- Apache with
mod_rewriteenabled - Extensions: PDO, pdo_mysql, gd, fileinfo, mbstring
2 Create MySQL database
In cPanel → MySQL Databases, create a database and user. Grant ALL PRIVILEGES on that database to the user.
3 Configure environment
- Copy
config/database.example.php→config/database.phpand enter DB host, name, user, password. - Copy
config/env.example.php→config/env.php - If installed in a subfolder, set
APP_SUBPATH(e.g.'/certificates') and updateRewriteBasein.htaccess - Set
FORCE_HTTPStotruewhen SSL is active
4 Import database
Open phpMyAdmin, select your database, go to Import, and upload database/schema.sql.
Upgrading an existing install? Run migrations in database/migrations/ in order (002, 003, 004, 005).
5 Folder permissions
Set uploads/ and subfolders to 755 (writable by PHP). The app auto-creates subdirectories on first run.
6 Super admin setup
Run once via browser (replace key with your SETUP_KEY):
https://your-domain.com/install/setup.php?key=YOUR_SETUP_KEY
Default credentials after setup: admin@teklo.local / Admin@123 — change immediately in admin.
Or via SSH: php install/setup.php
7 Go live
- Log in at
/admin/login.php - Configure Settings (logo, certificate charge, homepage text)
- Delete
install/setup.php(blocked by .htaccess in production) - Review
DEPLOYMENT_CHECKLIST.mdin the project root