Get started
This documentation will get you through the installation of the product and some of the available configuration options.
The steps are straight forward and does not require any special or out of the ordinary task, but minimum overall web related knowledge is required.
Support is exclusively handled through email. Ensure to attach proof of purchase when requesting support.
Requirements
Ensure your server meets the specified requirements prior to installation or purchase.
PHP | PHP 8.0 - 8.3 |
Extensions | cURL, OpenSSL, mbstring, MySQLi |
Database | MySQL 5.7.3+ or MariaDB equivalent |
Server | Apache or Nginx |
Installation Services
I also offer quality installation services at a low cost if you do not want to bother with the installation process.
Software installation - $35
- Uploading the product files on your server (requires a fully configured and ready to go server).
- Creating and configuring the database that is going to be used.
- Full installation of the product.
Server configuration & software installation - $69
- Setting up a new server (Ubuntu OS) on one of those platforms: Cloudways, Vultr, DigitalOcean
- Setting up the domain for the server
- Free SSL Certificate Installation (Let's Encrypt)
- Installation of Apache, MySQL with MySQLi, PHP
- Installation and configuration of PHP's necessary modules / extensions
- Full installation of the product
Product Update - $30
- Backup of the files & database (upon request).
- Update of the product to the latest version (no matter which version are you currently on).
- Update of all the plugins you own (if any).
Installation
This installation typically requires approximately 10 minutes for completion when followed accurately.
Watch a video tutorial on how you can install the product a shared web host with cPanel.
Prepare the database
- Create a new Database User for the upcoming new database (optional)
- Create a new Database
- Prepare the Database Host, Name, Username and Password for the upcoming steps.
Upload the product
Upload the content of the product/
folder on your webhost.
The product can be uploaded either on a subdomain, domain or subfolder, depending on your needs.
Start the installation process
- Access the product on your website and access the
domain.com/install
path. - You need to set the permissions (CHMOD) of the files / folders mentioned in the installation process to either 755, 775, or 777 which will depend on your actual server.
- Follow the steps in the installation process.
- If the installation is successful, you will see the admin login credentials.
Cron job setup
The cron job must be set up as it is responsible for handling background tasks.
- Make sure to login and go to the Admin Panel -> Website Settings -> Cron tab
- Create a new cron job with each cron job commands that you see in there.
- The process varies based on your web host provider; refer to their documentation for Cron job setup instructions.
Update
This section guides you through updating your current installation to newer releases.
Watch a video tutorial on how you can update the product a shared web host with cPanel.
Backup
Prior to initiating the update process, ensure to create a backup to facilitate restoration in case of any issues.
- Backup your database
- Backup your files
Files update
- Download & unzip the latest version of the product.
- Navigate to the `
product
` folder, copy all files and folders, and upload them to your server where the product is installed. - Do not upload/overwrite the
config.php
file.
Database update
- Go to your website and access the
/update
path, just like the following format:https://domain.com/update
. - Follow all the steps inside of the updating process.
- After you are finished, make sure to delete the
update
folder as you do not need it anymore.
NGINX Setup
Use the following NGINX rewrite rule to ensure proper functionality of the URLs:
if (!-e $request_filename){
rewrite ^\/(.+)$ /index.php?altum=$1 last;
}
This command should be added in your domain.conf nginx file in the location / { ... } field.
Captchas
These are the steps to integrate more advanced and powerful captcha codes for your system.
Cloudflare Turnstile
- Go to your Admin Panel -> Website settings -> Captcha page.
- Set the captcha type to Cloudflare Turnstile.
- Go to Cloudflare Dashboard and Login to your account.
- Go to the Turnstile page on Cloudflare & click on Add Site.
- Fill in the details in the form and submit.
- Copy the Site Key and Secret Key and paste them in the Admin Panel.
- Save your new settings in the admin panel.
Google Recaptcha
- Go to your Admin Panel -> Website settings -> Captcha page.
- Set the captcha type to Google ReCaptcha v2 checkbox.
- Go to Recaptcha Admin Panel and Login to your Google account.
- Make sure to select the reCAPTCHA v2 type
- Fill in the other needed details from the form.
- Copy the Site Key and Secret Key and paste them in the Admin Panel.
- Save your new settings in the admin panel.
hCaptcha
- Go to your Admin Panel -> Website settings -> Captcha page.
- Set the captcha type to hCaptcha.
- Go to hCaptcha and create/login to your account.
- Go to Add New Site and fill in the required details.
- After submitting your new site, go to the sites page, select the newly added site and click on Settings.
- Copy the Site key and paste it in the Admin Panel.
- Go to hCaptcha settings.
- Copy the Secret key and paste it in the Admin Panel.
- Save your new settings in the admin panel.
Payment processors
These are the steps to connect the available payment processors with your system. Only available for extended license holders.
PayPal
The PayPal integration gives your users the ability to pay via PayPal on your website.
- Go to PayPal Developer Console and Login to your account after clicking the Log into Dashboard button
- Go to REST API apps section and click the Create App button.
- Add your own details for the new app and create it.
- Switch to Live by clicking the button near your new App's Name.
- Copy the Client ID and Secret
- Go to your product installation Admin Panel -> Website Settings -> Paypal Tab and enter the Client ID and Secret keys.
- Make sure to also switch the Mode to Live and Submit the new settings.
- Go to the newly created App in the Paypal Developer Console and click on the Add Webhook button.
- In the Webhook Url field, add your website's URL in this format:
https://yourdomain.com/webhook-paypal
(replaceyourdomain.com
with your own domain name). - In the Event types field, check the Payment sale completed, Checkout order approved events and submit the Webhook.
Stripe
The Stripe integration gives your users the ability to pay via Stripe on your website.
- Go to Stripe Dashboard and Login to your account.
- Go to Stripe API Keys page.
- Make sure your API keys are set to Live Mode so that you can accept real payments.
- Copy the Publishable key and Secret key.
- Go to your product installation Admin Panel -> Website Settings -> Stripe Tab and enter the Publishable key and Secret Key.
- From the sidebar, under Developers click on Webhooks link.
- Click on the Add endpoint button
- In the Endpoint URL field, add your website's URL in this format:
https://yourdomain.com/webhook-stripe
(replaceyourdomain.com
with your own domain name). - In the Events to send field, select the
checkout.session.completed
,invoice.paid
,invoice.upcoming
and click the Add endpoint button. - Copy the Signing secret key and paste it in the product's Webhook Secret field in the admin panel.
Offline payments
The offline payments integration gives your users the ability to pay offline (bank transfer, for example), give you the proof of payment and receive what the customer paid for when the payment is approved.
- As an admin you can enable the offline payments system from the Admin Panel -> Website Settings -> Offline payment tab.
- In the Instructions field you can write details for the user on where to send an offline payment.
- The customer will have the ability to choose the offline payment method when checking out.
- The customer will see the Instructions for the payment and also be required to upload a proof of payment.
- When the customer checks out, the admin will need to go in the Admin Panel -> Payments page and review the proof of purchase and then, approve it.
- After the approval, the customer will get the plan that was chosen
- If the proof of payment is not correct and the payment is fake, simply delete the payment from the list.
Coinbase
The Coinbase integration gives your users the ability to pay with crypto via the Coinbase payment gateway.
- Go to Coinbase Dashboard and Login to your account.
- Go to Coinbase Settings page.
- Scroll down to the API Keys section and copy the API key.
- Go to your product installation Admin Panel -> Website Settings -> Coinbase Tab and enter the API Key.
- Scroll down to the Webhook subscriptions section, click on the Add an endpoint button.
- In the field, add your website's URL in this format:
https://yourdomain.com/webhook-coinbase
(replaceyourdomain.com
with your own domain name) and save it. - Copy the Shared secret webhook secret key and paste it in the Webhook Secret field in the admin panel.
Crypto.com
The Crypto.com integration gives your users the ability to pay with crypto via the Crypto.com payment gateway.
- Go to Crypto.com Merchant and Login to your account.
- Go to Developers page.
- Copy the Publishable key and Secret Key.
- Go to your product installation Admin Panel -> Website Settings -> Crypto.com Tab and enter the Keys.
- Go to the Webhooks tab and click on the Add webhook button.
- In the field, add your website's URL in this format:
https://yourdomain.com/webhook-crypto-com
(replaceyourdomain.com
with your own domain name) and save it. - Copy the Signature secret webhook secret key and paste it in the Webhook Secret field in the admin panel.
PayU
The PayU integration gives your users the ability to pay with via the PayU payment gateway for one time purchases.
- Go to PayU and Login to your account.
- Create a new shop, fill in all the details.
- Go to your product installation Admin Panel -> Website Settings -> PayU Tab and enter the given API Keys.
Iyzico
The Iyzico integration gives your users the ability to pay with via the Iyzico payment gateway for one time purchases.
- Go to Iyzico and Login to your account.
- Go to Merchant settings page.
- Copy the API Key and Secret Key.
- Go to your product installation Admin Panel -> Website Settings -> Iyzico Tab and enter the given API Keys.
- Scroll down in the Iyzico page until you find Merchant notifications section.
- In the field, add your website's URL in this format:
https://yourdomain.com/webhook-iyzico
(replaceyourdomain.com
with your own domain name) and save it.
Paystack
The Paystack integration gives your users the ability to pay with via the Paystack payment gateway for one time & recurring purchases.
- Go to Paystack and Login to your account.
- Go to the Settings page -> API Keys & Webhooks tab on Paystack.
- Go to your product installation Admin Panel -> Website Settings -> Paystack Tab and enter the given API Keys.
- Add your website's URL in this format:
https://yourdomain.com/webhook-paystack
(replaceyourdomain.com
with your own domain name) in the Webhook URL field & save the changes.
Razorpay
The Razorpay integration gives your users the ability to pay with via the Razorpay payment gateway for one time & recurring purchases.
- Go to Razorpay and Login to your account.
- Go to the Settings page -> API Keys tab on Razorpay & generate your API keys.
- Go to your product installation Admin Panel -> Website Settings -> Razorpay Tab and enter the given API Keys.
- Go to the Settings page on Razorpay & generate your API keys.
- Go to the Settings page -> Webhooks tab on Razorpay & Add a new Webhook.
- Add your website's URL in this format:
https://yourdomain.com/webhook-razorpay
(replaceyourdomain.com
with your own domain name). - Add a new Secret (like a password) & check the
subscription.charged
andpayment_link.paid
& save the webhook. - Go to your product installation Admin Panel -> Website Settings -> Razorpay Tab and enter the set webhook secret.
Mollie
The Mollie integration gives your users the ability to pay with via the Mollie payment gateway for one time & recurring purchases.
- Go to Mollie and Login to your account.
- Go to the Developers -> API Keys page on Mollie get your API key.
- Go to your product installation Admin Panel -> Website Settings -> Mollie Tab and enter the given API Key.
- Make sure to activate your allowed payment methods via your Mollie account.
Yookassa
The Yookassa integration gives your users the ability to pay with via the Yookassa payment gateway for one time purchases.
- Go to Yookassa and Login to your account.
- Go to the Developers -> API Keys page on Mollie get your API key.
- Go to your product installation Admin Panel -> Website Settings -> Yookassa Tab and enter your Yookassa required API keys.
- Go to Yokassa Integration - HTTP Notifications and add a new Webhook.
- Add your website's URL in this format:
https://yourdomain.com/webhook-yookassa
(replaceyourdomain.com
with your own domain name). - Make sure your Yookassa account has receipts/invoices enabled on your account.
Paddle
The Paddle integration gives your users the ability to pay with via the Paddle payment gateway for one time purchases.
- Go to Vendors Paddle and Login to your account.
- Go to the Developers Tools -> Authentication page to get your Vendor ID and API Key.
- Go to your product installation Admin Panel -> Website Settings -> Paddle Tab and enter your the Vendor ID and API Key .
- Go to Paddle Developers Tools -> Public Key and copy that as well into the product installation Public Key field.
Midtrans
The Midtrans integration gives your users the ability to pay with via the Midtrans payment gateway for one time purchases.
- Go to Midtrans Dashboard and Login to your account.
- Go to the Settings -> Access Keys page to get your Server Key.
- Go to your product installation Admin Panel -> Website Settings -> Midtrans Tab and enter your the Server Key.
Flutterwave
The Flutterwave integration gives your users the ability to pay with via the Flutterwave payment gateway for one time purchases.
- Go to Flutterwave Dashboard and Login to your account.
- Go to the Settings -> API keys page to get your Secret Key.
- Go to your product installation Admin Panel -> Website Settings -> Flutterwave Tab and enter your the Secret Key.
- Go to Flutterwave Webhooks page.
- Add your website's URL in this format:
https://yourdomain.com/webhook-flutterwave
(replaceyourdomain.com
with your own domain name).
Taxes & Billing
Our tax system allows you to seamlessly integrate tax charges into user transactions. You can create and tailor taxes according to your requirements and link them with any specific plan.
- Activate the Taxes & Billing system via Admin Panel -> Website Settings -> Payment tab.
- This feature enables users to input their billing information at checkout and allows you to attach taxes to paid plans.
- Access the system through Admin Panel -> Taxes.
- Create a new tax by selecting the Create Tax button.
- After creating a tax, visit Admin Panel -> Plans, choose a paid plan, and apply the desired tax.
Multicurrency
Our multicurrency feature enables users to select from various currencies you provide. Configure this option in the Admin Panel -> Website Settings -> Payment tab.
Set distinct prices for each currency of a plan by modifying it through the Admin Panel -> Plans page.
Enable or disable specific currencies for each payment processor by adjusting the settings in the Admin Panel -> Website Settings page.
For multiple currency usage, obtain an API key from FreeCurrencyAPI.com and integrate it into your Admin Panel -> Website Settings -> Payment tab.
While the API key is optional, it's recommended for automatically converting transactions into the default currency, ensuring precise and consistent statistics for administrative analysis.
Additional global domains
Setting up additional custom domains will give you and your users the ability to use the additional domain to create pages on the new domain.
Watch a video tutorial on how you can set up Custom Domains on a shared web host with cPanel.
To add multiple domains, go to the Admin Panel and navigate to the Domains page. Insert the extra domains to which you have access.
I am on a shared webhost
If your website is hosted on a shared webhost with panels like cPanel, visit the Addon Domain page in your cPanel and add the extra domain you intend to use. Ensure that the Root Directory of the new domain is set to the same directory as the already existing Product Installation.
I am on a VPS / Dedicated Server
In this case, ensure that your extra domain is set up properly and attached to your server. Make sure that the Root Directory of the new domain is set to the same directory as the already existing Product Installation.
Configuration for Apache Servers domains is usually found in the /etc/apache2/sites-enabled/
folder for each of your existing domains on your server.
Configuration of this feature is not offered in support as this setup is based on your host provider / server.
Custom domains
Setting up custom domains for users will give your users the ability to add their own custom domains to their account to create pages on the new domain.
To enable this feature for users, navigate to the Admin Panel -> Website Settings -> Links tab and ensure that Custom Domains system is enabled.
Additionally, allow users to have this feature based on their plans, configurable from the Admin panel -> Plans section.
A user will need to connect his custom domain to your own before submitting it. Admin approval is required after setup to accept the custom domain.
I am on a shared webhost
If your website is hosted on a shared webhost with panels like cPanel, go to the Addon Domain page inside your cPanel and add all the domains that your users will add to their accounts. Make sure that the Root Directory of the new domain is set to the same directory as the already existing Product Installation.
I am on a VPS
In this case, you will need to make sure that all the extra domains from your users are added and configured on your server. Ensure that the Root Directory of the new domain is set to the same directory as the already existing Product Installation.
Configuration for Apache Servers domains is usually found in the /etc/apache2/sites-enabled/
folder for each of your existing domains on your server.
A good and simple solution that works in most cases would be to edit the 000-default.conf file and point the DocumentRoot and Directory to the already existing Product Installation. This way, all the domains that will be added will automatically be linked to the original installation.
Configuration of this feature is not offered in support as this setup is based on your host provider/server.
Notification handlers
Twilio notification handler (SMS & Call)
This is the setup tutorial for the Twilio notification handler implementation.
- Go to Twilio Console and make sure to login to your account.
- Get a phone number from Twilio and then scroll down in the Console Dashboard to see the Account info section.
- Go to your product installation -> Admin panel -> Settings -> Notification handlers page.
- Enable the Twilio notification handler while also copying the Account SID, Account token & Phone number from Twilio and pasting it their respective fields.
- To enable different regions for Twilio SMS, go to Twilio Console -> Messaging -> Settings -> Geo Permissions page.
- To enable different regions for Twilio calling, go to Voice Geographic Permissions page.
Whatsapp notification handler (Whatsapp message)
This is the setup tutorial for the Whatsapp API notification handler implementation.
- Go to Facebook Developers page.
- Make sure to login to your Facebook account.
- Click on the My Apps menu dropdown and click on Create app.
- Select the Other use case and continue.
- Select the Business app type and continue.
- Fill the other needed fields and continue (Make sure to attach your Business Account).
- After finishing it up, choose Add Product from the sidebar of your dashboard.
- Make sure you add the WhatsApp product to your app.
- After that, go to WhatsApp -> API Setup page.
- Add your own business From phone number and confirm it.
- Copy your Phone number ID and paste it into the product installation -> Admin panel -> Settings -> Notification handlers page.
- Open the Auth token documentation from Facebook and get your Permanent Access token, so that you can paste it into the same page in your installation as above.
- After that, go to WhatsApp -> Quickstart page -> Message templates page.
- Now you must create a template for each type of notification you will send out, do it as per the data below.
Name | transfer_downloaded |
Language | English |
Category | Utility |
Content |
Your '{{1}}' ( {{2}} ) transfer has been downloaded. |
Sample {{1}} | Example |
Sample {{2}} | https://YOUR_DOMAIN_HERE/transfer/1 |
Hosting & Domains
VPS Hosting
(Intermediate, Advanced)For seamless VPS server management without complications, consider Cloudways.
If you're comfortable managing your VPS and don't need managed cloud hosting, explore Vultr.
Shared Hosting
(Beginner)For beginners with limited knowledge, a shared web hosting plan is recommended.
Benefits include a free domain (in some cases), cPanel, support, documentation, and custom domain email.
Domains
Consider NameCheap for domain registration, offering better deals, competitive prices, and a user-friendly interface.
Frequently asked questions
app/languages/english#en.php
file for the frontend part. The admin panel translations are found in the app/languages/admin/english#en.php
file.
app/languages/english#en.php
file, rename the duplicated file to your actual language name and start editing the newly created file. The same process needs to happen for the admin panel translations, app/languages/admin/english#en.php
.
If you want to keep the main language to English, but you still want to edit the already existing English strings, then the best way would be to create a new language pack and only translate the strings you wish to change.
After that, make sure to disable the original English language pack.
This way, when you update the product, you get all the latest English strings which come from the latest update, and you get to keep your custom changes (since you run the custom language pack).
The default English language pack will always be used as fallback. So if you did not translate certain strings, they will fallback to the orignal English file.
In the vast majority of cases, this is caused by either one of those cases:
- You do not have the
.htaccess
file uploaded. - Your web host provider does not have
mod_rewrite
enabled for Apache. - The
.htaccess
file exists, but the content is not the same as the original file from my product. - You run on Nginx and you have not configured the rewrite rules.
Please, triple check these.
- If you run a server which supports
.htaccess
, some servers might not accept the first line of the.htaccess
file. Try to delete the first line on the.htaccess
file. - If you get this error when submitting a form, this means that your webhost blocked the request. Try to disable
mod_security
, as it may trigger a false-positive, or contact your webhost provider.
Please, triple check these.
Spam registrations can not ever be fully prevented. No website can do fully get rid of spam. My products offer a lot of spam protection measures, so you would simply have to use them.
- Email confirmation - Set from the Admin panel -> Website Settings -> Users section.
- Captcha - Set from the Admin panel -> Website Settings -> Captcha section.
- Country block - Set from the Admin panel -> Website Settings -> Users section.
- Email domain block - Set from the Admin panel -> Website Settings -> Users section.
- Auto delete unconfirmed / old users - Set from the Admin panel -> Website Settings -> Users section.
- Bulk deletion of users - Set from the Admin panel -> Users page. In case you want to delete a lot of users in bulk.
/sitemap
path on the website.
This can be done in multiple ways. You can either edit the actual content by editing the themes/altum/views/index/index.php
file, editing the language file for text changes, or the themes/altum/assets/images/
folder for changing any images.
The second way would be to have a fully custom landing page, and redirecting (disabling) the default landing page, by editing & pasting the new landing page URL in the Custom landing page URL field in the Admin panel -> Website settings -> Custom landing page URL field.
This can be done in multiple ways, depending on your actual CSS/SCSS knowledge.
- Easiest way: You can edit the theme colors directly Admin panel -> Website settings -> Theme page.
- You can write your own custom css, that overwrites the already existing rules, and paste that in the Admin panel -> Website settings -> Custom CSS field.
- You can manually replace the colors via the bootstrap CSS files in the
themes/altum/assets/css/
folder. - You can also fully modify the theme, by editing the bootstrap SCSS files in the
themes/altum/assets/css/
folder, recompile them back to CSS, and then overwrite the original CSS bootstrap files (advanced).
Keep in mind: Support for any kind of customizations is not included, so this is fully up to you.
users
table, find your admin account and set the password to $2y$10$uFNO0pQKEHSFcus1zSFlveiPCB3EvG9ZlES7XKgJFTAl5JbRGFCWy
which equals to admin
as the password. Now you need to find the uploads/cache/
from the product installation files and delete the folder you see inside.
In this case, you'd need to access your database manager (such as phpMyAdmin), select the database of the installed product, go to the settings
table, find the captcha
key and modify the value
as following:
Find the "login_is_enabled":true
part of the text and edit that to "login_is_enabled":false
.
Now you need to find the uploads/cache/
from the product installation files and delete the folder you see inside.
config.php
file and make sure all the details inside are still correct.
Make sure you check all the following steps if the custom domains that you added do not show up:
- Go in the Admin panel -> Plans -> Update plan and make sure to select the additional domains that you wish to enable.
- Important: If you are on a custom plan, you must edit that from the User update page in the Admin panel
- Go to the Admin panel -> Website settings -> Transfers page and make sure you have the Custom domains / Additional domains feature enabled.
- Go to the Admin panel -> Website settings -> Cache page and make sure you clear the cache.
Social logins
These are the steps to integrate additional login methods through social networks.
Facebook Login
The Facebook Login integration gives your users the ability to skip normal registration and login directly with their Facebook account.
Watch a video tutorial on how you can setup Facebook Login.
https://yourdomain.com/login/facebook
(replaceyourdomain.com
with your own domain name).Google Login
The Google Login integration gives your users the ability to skip normal registration and login directly with their Google account.
Watch a video tutorial on how you can setup Google Login.
https://yourdomain.com/login/google
(replaceyourdomain.com
with your own domain name).Twitter Login
The Twitter Login integration gives your users the ability to skip normal registration and login directly with their Twitter account.
https://yourdomain.com/login/twitter
(replaceyourdomain.com
with your own domain name).Discord Login
The Discord Login integration gives your users the ability to skip normal registration and login directly with their Discord account.
Watch a video tutorial on how you can setup Discord Login.
https://yourdomain.com/login/discord
(replaceyourdomain.com
with your own domain name).LinkedIn Login
The LinkedIn Login integration gives your users the ability to skip normal registration and login directly with their LinkedIn account.
https://yourdomain.com/login/linkedin
(replaceyourdomain.com
with your own domain name).Microsoft Login
The Microsoft Login integration gives your users the ability to skip normal registration and login directly with their Microsoft account.
https://yourdomain.com/login/microsoft
(replaceyourdomain.com
with your own domain name)