Installing
Before you start
Section titled “Before you start”Have these three things ready. Your hosting control panel provides all of them.
- FTP, SFTP or file manager access to your web space.
- An empty MySQL database, plus a username and password with full rights on it. Write down the database name, username, password, and the database host (usually
localhost). - Confirmation that your account runs PHP 8.2 or newer. See Requirements.
The installation
Section titled “The installation”-
Upload the application
Section titled “Upload the application”Open the download and find the
Main Filesfolder. Upload the contents of that folder — not the folder itself — to where you want the site to live.To run it at
https://example.com/, upload intopublic_html(orhtdocs, orwww, depending on your host). To run it athttps://example.com/crm/, create acrmfolder inside that and upload into it. Both work equally well.When the upload finishes you should see
index.php,init.php,cron.phpand theincludesfolder sitting at the top level of the destination. -
Check the folder permissions
Section titled “Check the folder permissions”PHP needs to be able to write to
includes/andtemp/. On most hosting this is already true. If the next step complains, set those two folders to permission755, and only use777if755is not enough —777lets any account on the server write to them. -
Open the site in a browser
Section titled “Open the site in a browser”Go to the address you uploaded to. Because there is no database yet, the application knows it is not installed and sends you to the setup wizard automatically.
The wizard begins by checking the server: PHP version, the extensions it wants, and whether the folders it needs are writable. If everything passes, it moves straight on to the database screen and you will not see this check at all.
If something fails you get a Setup Error screen listing what it found, with two buttons: Try Again and Ignore Errors. Fix anything about permissions or PHP version before continuing. A complaint about
includes/config.phpbeing writable, or about the IMAP extension, can safely be ignored — see Requirements for why. -
Enter your database details
Section titled “Enter your database details”Five fields:
Field What to enter Database Host Almost always localhost. If your host gave you a different server name, use that. You can append a port ashostname:3306.Database Prefix Prepended to every table name. The default ucm_is fine. Change it only if you are sharing one database with another application.Database Name The empty database you created. Database Username The user with rights on it. Database Password That user’s password. Press continue. The wizard makes a real connection with what you typed, so if the details are wrong you are told immediately, with the error the database server gave.
When the connection succeeds, the wizard writes your settings to
includes/config.local.phpand generates a random secret value for your installation, which is stored in the same file. -
Let it build the database
Section titled “Let it build the database”The next screen creates the tables. It works through every plugin in turn, printing each name and whether it succeeded, which is why the list is long. Nothing is asked of you.
At the end you get Database Installation Success and a link to continue. If any plugin reports a failure you get a Retry link instead — retrying is safe and usually clears a transient problem. A failure that persists is nearly always the database user lacking a privilege; see Troubleshooting.
-
Skip or enter your purchase code
Section titled “Skip or enter your purchase code”You are now logged in as the administrator automatically, and the site is already usable.
This screen offers to check for updates, which needs the purchase code from your CodeCanyon downloads page. This step is optional. If you do not want to enter it now, click Skip this step and carry on — nothing in the product is locked behind it. Entering the code does not activate anything or contact a licence server; it is stored so the update check knows which item you own.
-
Set up email
Section titled “Set up email”This screen configures outgoing mail. You can leave it entirely alone and click through: with nothing set, the application uses the server’s own mail function, which works on a lot of hosts.
If your host blocks that, or your mail ends up in spam folders, tick Use SMTP and fill in the hostname, username, password and encryption type. Choose TLS for most providers, including Google. There is a test message sender on the same screen — use it before you move on, because mail problems are much easier to diagnose here than later.
These settings are stored in the database and can be changed at any time under Settings → Email.
-
Finish
Section titled “Finish”The last screen confirms you are done and offers a link into the main settings area. Follow it, because there are two things to do immediately.
Do these two things now
Section titled “Do these two things now”Then set up your own details
Section titled “Then set up your own details”The sample data is there to show you the shape of things. Work through these when you are ready:
- Settings → System Settings — your company name, address, currency, date format and timezone. Do this first; it affects how everything else is displayed and what appears on invoices.
- Settings → Payments — see Payment methods.
- Delete the sample customers — Bobs Printing Service and Richards Roof Repairs. Delete the two sample contacts (
user1@example.comanduser2@example.com) at the same time, since they belong to those customers. - Settings → Templates — the wording of the emails your customers receive.
Installing without the wizard
Section titled “Installing without the wizard”If you are deploying from a script, or to a platform where writing a config file is awkward, the database settings can come from environment variables instead and the wizard will not need to write anything. Set UCM_DB_SERVER, UCM_DB_NAME, UCM_DB_USER, UCM_DB_PASS, UCM_DB_PREFIX and UCM_SECRET before the first request.
You still visit the site in a browser to let the wizard build the tables. It will show the database screen pre-filled from the environment, and the settings file will not be written. More detail is in Configuration.