Teklo Certificate System

Installation guide for cPanel / shared hosting (PHP 8+, MySQL 5.7+)

Security: Change default passwords, set a unique 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_rewrite enabled
  • 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

  1. Copy config/database.example.phpconfig/database.php and enter DB host, name, user, password.
  2. Copy config/env.example.phpconfig/env.php
  3. If installed in a subfolder, set APP_SUBPATH (e.g. '/certificates') and update RewriteBase in .htaccess
  4. Set FORCE_HTTPS to true when 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.md in the project root