Last updated:
Install Paymenter
Open-source billing for hosting providers on your own server or with Docker – step by step.
Paymenter is open-source billing and shop software for hosting providers, digital products and services. This guide covers installing it on your own Linux server – classic bare metal or with Docker – and the steps that matter afterwards for secure operation. The official Paymenter docs are always authoritative.
Requirements
- A Linux server, for example Ubuntu 24.04 or Debian 12, with root or sudo access
- A domain pointing to the server (for HTTPS)
- PHP 8.3 or 8.4 with the usual Laravel extensions, MariaDB or MySQL, Redis, Nginx and Composer
- About 30 minutes
Option A: bare-metal installation
1. Install packages. Install PHP 8.3 or 8.4 with its extensions, MariaDB, Redis, Nginx and Composer. The exact package list for your distribution is in the official Paymenter documentation.
2. Create the database. Create a database and a dedicated user with rights on that database only:
CREATE DATABASE paymenter;
CREATE USER 'paymenter'@'127.0.0.1' IDENTIFIED BY 'a-strong-password';
GRANT ALL PRIVILEGES ON paymenter.* TO 'paymenter'@'127.0.0.1';
FLUSH PRIVILEGES;
3. Download Paymenter. Download the latest release to /var/www/paymenter and set write permissions:
mkdir -p /var/www/paymenter && cd /var/www/paymenter
curl -Lo paymenter.tar.gz https://github.com/paymenter/paymenter/releases/latest/download/paymenter.tar.gz
tar -xzvf paymenter.tar.gz && rm paymenter.tar.gz
chmod -R 755 storage/* bootstrap/cache/
4. Configure. Create the environment file, install dependencies, generate the key:
cp .env.example .env
composer install --no-dev --optimize-autoloader
php artisan key:generate --force
php artisan storage:link
Then enter the database credentials in .env (DB_DATABASE, DB_USERNAME, DB_PASSWORD).
Important: Back up the
APP_KEYfrom.envin a second place. It encrypts sensitive data – if it is lost, that data cannot be recovered even from a database backup.
5. Set up and initialise the database.
php artisan migrate --force --seed
php artisan app:init
php artisan app:user:create
app:init asks for your company name and URL, app:user:create creates your admin account.
6. Background services. Paymenter needs a cron job for scheduled tasks and a queue worker for emails and provisioning:
# crontab -e (as root)
* * * * * php /var/www/paymenter/artisan schedule:run >> /dev/null 2>&1
Set up the queue worker as a systemd service (php artisan queue:work, user www-data, Restart=always) and enable it with systemctl enable --now.
7. Web server and HTTPS. Create an Nginx server block with document root /var/www/paymenter/public and get a certificate, for example with Certbot. Finally set the owner: chown -R www-data:www-data /var/www/paymenter/*.
Option B: Docker
Paymenter provides official containers and a compose file. The process:
- Take the compose file and
.envfrom the official documentation and set passwords. - Start the containers:
docker compose up -d. - Initialise once:
docker compose exec paymenter php artisan app:initanddocker compose exec paymenter php artisan app:user:create. - Put a reverse proxy (such as Traefik or Nginx) with HTTPS in front.
Docker separates Paymenter cleanly from the host and makes updates easier. Custom themes are built inside the container, not on the host – keep that in mind for extensions such as Tindra.
After installation: the five most important steps
- Backups: back up the database,
.envandstorage/regularly – to a separate system. - Updates: keep Paymenter and the operating system current; take a backup before every update.
- Email: configure and test SMTP, otherwise invoices and password links never arrive.
- Payment gateways: enable at least one gateway and run a test order.
- Legal pages: publish imprint, privacy policy and terms before the shop goes public.
How Holzmodem can help
Tindra lets you design the home page and shop without code, AuthentikSSO adds single sign-on and Faktora creates EN 16931 e-invoices. And if you would rather not run Paymenter yourself, we set up your shop and run it with managed self-hosting.
Related
Frequently asked questions
Yes. Paymenter is open source under the MIT licence. You only pay for servers and, optionally, commercial extensions.
Paymenter 1.5 runs on PHP 8.3 or 8.4 with the usual Laravel extensions. PHP 8.5 is not supported yet.
Docker isolates Paymenter cleanly and simplifies updates. Bare metal is easier to understand and saves resources. If you already know Docker, it is usually the faster route.
About 30 minutes with a prepared server and domain. Payment gateways, email and legal pages come after.
Would you rather not handle this yourself?
Have it set up for you