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
| Betriebssystem | Linux, empfohlen Debian 12/13 oder Ubuntu 22.04/24.04 |
|---|---|
| PHP | 8.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 |
| Datenbank | MariaDB 10.6+ oder MySQL 8.0+ |
| Webserver | nginx (empfohlen) oder Apache, HTTPS mit gültigem Zertifikat (z. B. Let’s Encrypt) |
| Werkzeuge | Composer 2, Node.js 20+ und npm (nur zum Bauen der Oberfläche) |
| Server | ab 2 vCPU, 2 GB RAM, 10 GB Speicher; ausgehende HTTPS-Verbindungen zu Zahlungsanbietern, Panels und dem Lizenzserver |
| Domain | Eine 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
-
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 -
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;" -
Dateien entpacken und konfigurieren
Entpacke das Paket nach
/var/www/provomaticund 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_URList die Adresse mithttps://, unter der Shop und Kundenbereich erreichbar sind.APP_ENV=productionundAPP_DEBUG=falsesetzen. -
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/cachekey:generateerzeugt 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. -
Ersten Admin anlegen
php artisan provomatic:create-admin --name="Dein Name" --email=admin@deinhosting.deDas Passwort wird abgefragt. Bei der ersten Anmeldung unter
/adminrichtest 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:
- Firma: Name, Anschrift, Kontakt, Bankverbindung – erscheint auf Rechnungen und im Impressum.
- Steuern: Regelbesteuerung oder Kleinunternehmer, USt-IdNr., Steuernummer, OSS.
- Rechnungen: Nummernkreise, Zahlungsziel, Design und Fußzeile.
- 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.