Skip to main content
How to run FaPost Core on your own infrastructure. These documents are the source of truth for deployment. Every step is written so it can be followed by hand; the scripts under deploy/ automate exactly what is described here and nothing more. If a script and a document disagree, the document is right and the script is a bug.

Choosing a method

Both are supported and neither is a lesser path. They differ in who provides the runtime, not in how the application is configured: after either one you run the same php artisan install, and the same services must be running. Read Requirements first regardless of method — it lists what the application needs from a host, including the two things most often missed: the pcntl/posix extensions and the CREATE privilege on the database.

The shape of an installation

Whatever the method, a working install has the same parts:
The pieces people forget are Horizon and the scheduler. Without them the site loads, the admin panel works, and nothing actually happens: messages arrive and are never answered. See Services.

Order of operations

  1. Prepare the host — Requirements
  2. Install the runtime — Docker Compose or bare metal
  3. Configure the application — php artisan install, covered in both guides
  4. Start the long-lived services — Services
  5. Optionally put the Go gateway in front of webhooks — Webhook gateway
  6. Verify — each guide ends with the checks worth running

Upgrades

See Upgrading and rollback. The short version: migrations are additive, tenant schemas migrate separately from the landlord schema, and queue workers must be restarted after a deploy because they hold the old code in memory.

Not covered here

  • Local development — see Local setup
  • Extension development — see the developer portal
  • High availability and multi-node setups. Nothing prevents them, but nothing has been tested or documented, so treat it as unexplored rather than supported.