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:
| Path | What it holds |
|---|---|
.env | Installation settings: version, ports, which services run |
app.env | Paybob'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:
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 PaybobAlways 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:
docker compose exec app artisan paybob:healthAdd --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:
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 secretsCopy 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:
TRUSTED_PROXIES=203.0.113.10,198.51.100.0/24docker compose restart app schedulerWith 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.