Installation
Provomatic runs on your own server. With some Linux experience the installation takes about 20 minutes.
About the beta: this guide describes the installation for beta participants. Version 1.0 comes as a ready package with built files and an updater in the admin area; steps 2 to 4 will then be shorter.
Requirements
| Operating system | Linux, recommended Debian 12/13 or Ubuntu 22.04/24.04 |
|---|---|
| PHP | 8.3 or newer (8.4 recommended) with the extensions bcmath, ctype, curl, dom, fileinfo, gd, intl, mbstring, openssl, pdo_mysql, sodium, tokenizer, xml and zip |
| Database | MariaDB 10.6+ or MySQL 8.0+ |
| Web server | nginx (recommended) or Apache, HTTPS with a valid certificate (for example Let’s Encrypt) |
| Tools | Composer 2, Node.js 20+ and npm (only to build the interface) |
| Server | 2 vCPU, 2 GB RAM, 10 GB disk or more; outgoing HTTPS to payment providers, panels and the licence server |
| Domain | Your own domain or subdomain, for example shop.yourhosting.com – the licence covers exactly one domain |
Run Provomatic on its own server or VM, not on the same server as your game panel.
Installation
-
Install packages
Example for Debian 13 with PHP 8.4:
apt update apt install -y nginx mariadb-server composer nodejs npm unzip \ php8.4-fpm php8.4-bcmath php8.4-curl php8.4-gd php8.4-intl php8.4-mbstring \ php8.4-mysql php8.4-xml php8.4-zip -
Create the database
mariadb -e "CREATE DATABASE provomatic CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER provomatic@localhost IDENTIFIED BY 'A-LONG-PASSWORD'; GRANT ALL ON provomatic.* TO provomatic@localhost;" -
Unpack and configure
Unpack the package to
/var/www/provomaticand create the configuration:cd /var/www/provomatic cp .env.example .env nano .env # APP_URL, DB_DATABASE, DB_USERNAME, DB_PASSWORD, MAIL_*Important:
APP_URLis thehttps://address where shop and customer area are reachable. SetAPP_ENV=productionandAPP_DEBUG=false. -
Dependencies and database
composer install --no-dev --optimize-autoloader npm ci && npm run build php artisan key:generate --force php artisan migrate --force php artisan provomatic:sync-permissions php artisan provomatic:sync-themes php artisan storage:link php artisan optimize chown -R www-data:www-data storage bootstrap/cachekey:generatecreates the key Provomatic uses to encrypt credentials. Back up the.envfile – without this key, stored API keys can no longer be read. -
Create the first admin
php artisan provomatic:create-admin --name="Your Name" --email=admin@yourhosting.comYou will be asked for the password. On the first sign-in at
/adminyou set up two-factor sign-in.
Web server
Example for nginx. The document root is always the public folder:
server {
listen 80;
listen [::]:80;
server_name shop.yourhosting.com;
root /var/www/provomatic/public;
index index.php;
client_max_body_size 32m;
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
location ~ /\.(?!well-known) { deny all; }
}
Then set up HTTPS, for example with certbot --nginx -d shop.yourhosting.com.
Cron job and queue
Provomatic handles provisioning, webhooks and scheduled tasks in the background. This needs a cron job and a permanently running queue worker.
Cron job (/etc/cron.d/provomatic):
* * * * * www-data cd /var/www/provomatic && php artisan schedule:run >> /dev/null 2>&1
Queue worker as a systemd service (/etc/systemd/system/provomatic-queue.service):
[Unit]
Description=Provomatic queue worker
After=network.target mariadb.service
[Service]
User=www-data
WorkingDirectory=/var/www/provomatic
ExecStart=/usr/bin/php /var/www/provomatic/artisan queue:work --sleep=3 --tries=1 --max-time=3600
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now provomatic-queue
Setup in the admin area
After signing in, the setup wizard guides you through the basics:
- Company: name, address, contact, bank account – shown on invoices and in the legal notice.
- Taxes: standard taxation or small business, VAT ID, tax number, OSS.
- Invoices: number ranges, payment term, design and footer.
- General: language, currency, theme.
Then add your panel under Infrastructure → Servers, product groups and products under Catalogue, your payment providers under Settings → Payments (see setting up payments) and legal notice, terms, privacy policy and withdrawal notice under Website → Legal texts.
Licence
Enter your licence key on the Licence page in the admin area. It covers exactly one domain. Provomatic confirms the licence regularly with the licence server, sending the licence key, domain and version – no customer or revenue data. Without a licence Provomatic runs in test mode.
Updates
Until the updater arrives with version 1.0, install updates like this:
cd /var/www/provomatic
php artisan down
# unpack the new files (.env and storage/ stay)
composer install --no-dev --optimize-autoloader
npm ci && npm run build
php artisan migrate --force
php artisan provomatic:sync-permissions
php artisan provomatic:sync-themes
php artisan optimize
php artisan queue:restart
php artisan up
Before every update, back up the database and the storage/ folder. Finalised invoices live in storage/app and must be kept for 10 years.
Interested in the beta?
Provomatic is in development. Write to us if you would like to try it with your hosting company before the launch.