User Guide

Install CoreInto on a Linux VPS

On your own server you set up PHP, the database and the web server yourself. These are the pieces CoreInto needs.

Quick install on a Linux VPSLatest: 0.54.3
  1. Get a licence key and the files from the store (or the free trial): the download is on your service page.
  2. Upload and unpack the files on a (sub)domain such as billing.example.com, and create an empty MySQL or MariaDB database.
  3. Open the address in a browser: the web installer checks PHP, writes the settings file and creates your administrator.
  4. Add the cron job, every 5 minutes:
curl -fsSL https://get.coreinto.com/intopanel.sh | bash -s -- --key IP-XXXXX-XXXXX-XXXXX-XXXXX

Use the full path to cron.php on your account; the installer's last page shows the exact line. Then enter the licence key under Utilities > CoreInto Licence. More about the cron job.

1. Packages#

Install a web server (Nginx or Apache), PHP 8.2 or 8.3 with FPM and the extensions pdo_mysql, openssl, mbstring, curl, gd, intl and zip, and MariaDB 10.6 or newer. Your distribution's packages are fine. Get an SSL certificate for the billing domain, for example with Let's Encrypt.

2. Files and permissions#

Unpack CoreInto into a folder such as /var/www/billing, owned by a user of its own. The PHP-FPM pool must run as a user that can write to storage/ and its subfolders, and only there.

3. Database#

CREATE DATABASE coreinto CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'coreinto'@'localhost' IDENTIFIED BY 'a-long-random-password';
GRANT ALL PRIVILEGES ON coreinto.* TO 'coreinto'@'localhost';

4. Web server rules#

On Apache or LiteSpeed the .htaccess files that ship with CoreInto do everything: short addresses, the API path and refusing private files. Allow overrides for the folder.

On Nginx, CoreInto ships no configuration of its own. Pass unknown addresses to index.php, send the API to api/index.php and refuse private files and folders:

server {
    server_name billing.example.com;
    root /var/www/billing;
    index index.php;

    location ~ ^/(app|storage|tests|docs|tools)/ { deny all; }
    location ~ (configuration\.php|cli\.php|\.sql|\.log|\.md|\.bak)$ { deny all; }
    location ~ /\. { deny all; }

    location ^~ /api/v1/ { try_files $uri /api/index.php?$query_string; }
    location / { try_files $uri $uri/ /index.php?$query_string; }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
}

Without such rules, choose the basic address style in the installer; everything works with addresses like index.php?r=/client.

5. Installer, cron and sign-in#

Open the site and run the installer. Add the cron job for the PHP-FPM user:

*/5 * * * * php -q /var/www/billing/cron.php

Then sign in at /admin/, turn on two-step sign-in and keep a copy of configuration.php off the server.