Skip to content

Installing the system

What the whole install looks like, start to finish, before you begin any of it. Time to read: 3 minutes. Time to install: about an hour.

Before you start

  • Hosting that meets the requirements — see Which hosting do I need?
  • Your domain, pointed at that hosting
  • The files we supplied, and the .sql database file that came with them

There is no installer to run

You do not run any commands to install this. The database arrives ready-made — you import it, tell the system where it is, and it starts.

There is one command-like step, and it is unavoidable: a single cron job. Your hosting panel adds it with a form, no terminal needed. It is covered on its own page because everything that happens automatically depends on it.

The five steps

Full walkthrough: Installing on shared hosting.

StepWhat you doWhere
1Upload and extract the files into your web folderHosting file manager
2Create a MySQL database, then import the supplied .sql fileHosting panel → databases
3Copy .env.install.example to .env and fill in six valuesFile manager
4Add one cron jobHosting panel → cron jobs
5Log in, change the default passwordYour new site

On shared hosting there is nothing to "point" anywhere

You may have read that Laravel systems need the domain aimed at a public folder. Not here. The files include a .htaccess that sends visitors to the right place automatically.

Upload everything into your normal web folder — public_html on hPanel and cPanel — and your domain works as it is.

VPS users on Nginx: this does not apply to you

That automatic redirect is an Apache feature. Nginx ignores it completely. On a VPS running Nginx you must set the site root to the public folder, or you will get a blank page or a download prompt instead of the site.

Do not copy .env.example

The file named .env.example is the developer default. Copying it will put your live site into debug mode (showing your database details to anyone who triggers an error), point it at the wrong kind of database, and write every email to a log file instead of sending it.

Always start from .env.install.example. It is the one written for you, with safe settings already in place and only six lines to change.

What you must change in .env

Everything else in the template is already correct. These are the only lines that need your details:

LineWhat to putExample
APP_KEYAlready filled in for you — but replace it before going livebase64:...
APP_URLYour real address, including https://https://erp.stmarys.edu.in
DB_DATABASEDatabase name from your panelu123456_school
DB_USERNAMEDatabase user from your panelu123456_admin
DB_PASSWORDThat user's password
MAIL_*Your email sending detailssee the email setup page

APP_URL must match how people actually reach the site

If people open https://erp.school.com but APP_URL says http://erp.school.com, logins and links behave strangely and payment gateways reject their return address. Include https:// and no trailing slash.

Your installation checks itself

Once you can log in, the system will tell you what is still wrong. Go to:

Sidebar → Server & Health → Server Health

It checks your hosting against what the system needs and reports in plain language — PHP version, missing extensions, folder permissions, whether uploaded files are reachable, and whether the cron job is set up. Work through anything it flags before you add your first school.

Two things there save real time:

  • Media Storage Link — if it says Not linked, press Create Storage Link Now. That is the fix; there is no command to run.
  • Scheduled Tasks (Cron) — shows the exact cron command for your server, ready to copy. See The cron job.

After it is running

  1. Log in and change the default password immediately
  2. Set up email — nothing else works properly until email sends
  3. Set up SMS and your payment gateway
  4. Create your first school

If something goes wrong

Work through it in this order — it is almost always one of these:

What you seeAlmost always means
Blank white page, or the browser downloads a fileOn shared hosting: the .htaccess file did not upload — it starts with a dot, and some file managers hide those. On an Nginx VPS: the site root is not set to public
"No application encryption key"APP_KEY is empty in .env
Database connection errorWrong DB_ details, or the .sql file was never imported
Site loads but no email, no SMS, no reminders everThe cron job is missing — see The cron job
Logos and uploaded files show as brokenThe storage link is missing — fix it with the button on the Server Health page, above
Student documents, certificates or ID cards return "not found" on a VPSYour web server is serving private files directly instead of letting the system check permission first. The Server Health page gives you the exact Nginx or Apache block to add — this affects VPS installs only, not shared hosting