Skip to content
Paybob

Installation

After installing

Where your files live, everyday commands, email, cron and the checks to run on a new installation.

Paybob is running. This page covers what's on your server, the commands you'll use day to day, and the things to set up before you take real payments.

What's on your server

Everything Paybob needs lives in one folder, /opt/paybob:

PathWhat it holds
.envInstallation settings: version, ports, which services run
app.envPaybob's own configuration, including your address (APP_URL)
secrets/Generated database passwords. Never share these.
data/storage/Uploaded files (logos, images) and logs
data/gateways/, data/themes/, data/addons/Installed gateway, theme and addon packages
data/mariadb/The bundled database, if you use it
data/caddy/HTTPS certificates
backups/Backups taken before each upgrade
logs/Installer and upgrade logs

Paybob runs as a set of Docker containers: the application, a scheduler for background tasks, the database (if bundled) and the HTTPS proxy (unless you brought your own).

Everyday commands

Run these from /opt/paybob:

Terminal
cd /opt/paybob

docker compose ps                                  # are all services running?
docker compose logs -f app                         # follow the application log
docker compose exec app artisan paybob:health      # run the health check
docker compose restart                             # restart Paybob

Always use the artisan wrapper

Inside the container, run commands as docker compose exec app artisan …, never php artisan as root. The wrapper runs them as the web server's user; files created by root would stop Paybob from writing its logs.

Check the installation

paybob:health checks the application key, debug mode, that storage folders are writable, the database connection and pending database changes:

Terminal
docker compose exec app artisan paybob:health

Add --scheduler to also check that background tasks ran in the last few minutes, or --license to check that the license server answers and your license status.

Activate your license

Sign in as an administrator. Until a license is active, the panel opens on System Settings → License and the other pages stay locked, and Paybob can't take new payments. Enter your license key and click Activate. See License.

Set up email

A new installation doesn't send email: messages are written to the log instead. Email is handled by the bundled SMTP - Pro addon, set up separately for each Brand:

Enable the addon

Open System Settings → Addons and make sure SMTP - Pro is enabled. See Addons.

Configure the Brand's mail

Open System Settings → SMTP - Pro, turn on Enable SMTP - Pro, choose a Mail Driver (SMTP, Sendmail, Mailgun, Amazon SES, Postmark, Resend or MailerSend), and fill in its details and the From Name and From Address.

Choose which emails customers get

Under Notifications, turn on the emails you want sent automatically: when a transaction completes, when it's refunded, and when an invoice is marked paid.

Send a test

Click Send Test Email to check the settings before you rely on them.

Background tasks

Paybob's scheduler container runs background tasks for you: matching payment SMS every minute, delivering webhooks every minute, and syncing exchange rates, checking for updates and validating your license on a slower schedule. There's no cron job to add. System Settings → Cron Job shows when the tasks last ran. See Cron jobs.

Back up your data

Paybob takes a full backup automatically before every upgrade, and keeps the last five. It doesn't take scheduled backups, so set up your own. A complete backup is the database plus the data folder and configuration:

Terminal
cd /opt/paybob
mkdir -p /root/paybob-backups
day=$(date +%F)

# The database
docker compose run --rm --no-deps -T --entrypoint paybob-db app dump | gzip > /root/paybob-backups/db-$day.sql.gz

# Files and configuration (the bundled database folder is covered by the dump above)
tar -czf /root/paybob-backups/files-$day.tar.gz --exclude=data/mariadb data .env app.env secrets

Copy the backups to another machine or to off-site storage: a backup on the same server doesn't protect you if the server is lost.

Keep app.env safe

app.env contains Paybob's application key. Stored secrets, such as gateway credentials and your license activation, are encrypted with it. A database backup can't be fully restored without the matching app.env.

Behind Cloudflare or another proxy

If you installed with --no-proxy and run your own proxy, or Cloudflare connects to Paybob's port directly, Paybob needs to know which addresses to trust so it sees your visitors' real IP addresses. Set TRUSTED_PROXIES in /opt/paybob/app.env to a comma-separated list of the proxy's IP addresses or ranges, then restart:

Config
TRUSTED_PROXIES=203.0.113.10,198.51.100.0/24
Terminal
docker compose restart app scheduler

With the built-in proxy, this is already set for you. Leave the existing entry for Paybob's own Docker network (172.28.0.0/16) in the list.

Next steps