Provomatic

Installation

Provomatic läuft auf deinem eigenen Server. Die Installation dauert mit etwas Linux-Erfahrung etwa 20 Minuten.

Hinweis zur Beta: Diese Anleitung beschreibt die Installation für Beta-Teilnehmer. Zur Version 1.0 kommt ein fertiges Paket mit gebauten Dateien und einem Updater im Admin; die Schritte 2 bis 4 werden dann kürzer.

Voraussetzungen

BetriebssystemLinux, empfohlen Debian 12/13 oder Ubuntu 22.04/24.04
PHP8.3 oder neuer (empfohlen 8.4) mit den Erweiterungen bcmath, ctype, curl, dom, fileinfo, gd, intl, mbstring, openssl, pdo_mysql, sodium, tokenizer, xml und zip
DatenbankMariaDB 10.6+ oder MySQL 8.0+
Webservernginx (empfohlen) oder Apache, HTTPS mit gültigem Zertifikat (z. B. Let’s Encrypt)
WerkzeugeComposer 2, Node.js 20+ und npm (nur zum Bauen der Oberfläche)
Serverab 2 vCPU, 2 GB RAM, 10 GB Speicher; ausgehende HTTPS-Verbindungen zu Zahlungsanbietern, Panels und dem Lizenzserver
DomainEine eigene Domain oder Subdomain, z. B. shop.deinhosting.de – die Lizenz gilt für genau eine Domain

Provomatic sollte auf einem eigenen Server oder einer eigenen VM laufen, nicht auf demselben Server wie dein Game-Panel.

Installation

  1. Pakete installieren

    Beispiel für Debian 13 mit 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
  2. Datenbank anlegen

    mariadb -e "CREATE DATABASE provomatic CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
      CREATE USER provomatic@localhost IDENTIFIED BY 'EIN-LANGES-PASSWORT';
      GRANT ALL ON provomatic.* TO provomatic@localhost;"
  3. Dateien entpacken und konfigurieren

    Entpacke das Paket nach /var/www/provomatic und lege die Konfiguration an:

    cd /var/www/provomatic
    cp .env.example .env
    nano .env    # APP_URL, DB_DATABASE, DB_USERNAME, DB_PASSWORD, MAIL_*

    Wichtig: APP_URL ist die Adresse mit https://, unter der Shop und Kundenbereich erreichbar sind. APP_ENV=production und APP_DEBUG=false setzen.

  4. Abhängigkeiten und Datenbank

    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/cache

    key:generate erzeugt den Schlüssel, mit dem Provomatic Zugangsdaten verschlüsselt. Sichere die Datei .env – ohne diesen Schlüssel lassen sich gespeicherte API-Schlüssel nicht mehr lesen.

  5. Ersten Admin anlegen

    php artisan provomatic:create-admin --name="Dein Name" --email=admin@deinhosting.de

    Das Passwort wird abgefragt. Bei der ersten Anmeldung unter /admin richtest du die Zwei-Faktor-Anmeldung ein.

Webserver

Beispiel für nginx. Das Wurzelverzeichnis ist immer der Ordner public:

server {
    listen 80;
    listen [::]:80;
    server_name shop.deinhosting.de;
    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; }
}

Danach HTTPS einrichten, z. B. mit certbot --nginx -d shop.deinhosting.de.

Cronjob und Queue

Provomatic erledigt Bereitstellung, Webhooks und geplante Aufgaben im Hintergrund. Dafür braucht es einen Cronjob und einen dauerhaft laufenden Queue-Worker.

Cronjob (/etc/cron.d/provomatic):

* * * * * www-data cd /var/www/provomatic && php artisan schedule:run >> /dev/null 2>&1

Queue-Worker als systemd-Dienst (/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

Einrichtung im Admin

Nach der Anmeldung führt dich der Einrichtungsassistent durch die Grundeinstellungen:

  1. Firma: Name, Anschrift, Kontakt, Bankverbindung – erscheint auf Rechnungen und im Impressum.
  2. Steuern: Regelbesteuerung oder Kleinunternehmer, USt-IdNr., Steuernummer, OSS.
  3. Rechnungen: Nummernkreise, Zahlungsziel, Design und Fußzeile.
  4. Allgemein: Sprache, Währung, Theme.

Danach legst du unter Infrastruktur → Server dein Panel an, unter Katalog Produktgruppen und Produkte, unter Einstellungen → Zahlungen deine Zahlungsanbieter (siehe Zahlungen einrichten) und unter Shop-Website → Rechtstexte Impressum, AGB, Datenschutz und Widerrufsbelehrung.

Lizenz

Den Lizenzschlüssel trägst du im Admin auf der Seite Lizenz ein. Er gilt für genau eine Domain. Provomatic bestätigt die Lizenz regelmäßig beim Lizenzserver; dabei werden Lizenzschlüssel, Domain und Version übertragen, keine Kunden- oder Umsatzdaten. Ohne Lizenz läuft Provomatic im Testmodus.

Updates

Bis zum Updater in Version 1.0 spielst du Updates so ein:

cd /var/www/provomatic
php artisan down
# neue Dateien entpacken (.env und storage/ bleiben erhalten)
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

Vor jedem Update: Datenbank und den Ordner storage/ sichern. Festgeschriebene Rechnungen liegen in storage/app und müssen 10 Jahre aufbewahrt werden.

Interesse an der Beta?

Provomatic ist in Entwicklung. Schreib uns, wenn du es vor dem Start mit deinem Hosting-Unternehmen testen möchtest.

Kontakt aufnehmen