Scope Request
Documentation

The documentation site is being written

Rather than put up an empty page, here is the part people ask about first: what the software needs, and the order to install it in. The full documentation will live at docs.scoperequest.com and will be built from the same source as the application, so a page cannot go missing without the build failing.

Will it run on my hosting?

Almost certainly, if you can run a current PHP application on it. The one thing worth checking before you start is the PDO extension.

On cPanel with CloudLinux the PHP Selector decides the extension set for the whole account, not the per-domain version. An account that has only ever run WordPress often has no PDO at all, because WordPress uses mysqli, and every page then answers 500 with Class "PDO" not found. Enable pdo and nd_pdo_mysql for the version the account has selected, not the one the vhost names.

Requirements

Ordinary shared hosting is enough

There is no Redis, no Node, no queue daemon and no search service. The scheduler is a cron line, the queue runs from the same line, and search uses the database's own full-text index.

PHP
8.3 or later, with pdo_mysql, mbstring, intl, sodium, bcmath, gd, dom, fileinfo, curl and openssl.
Database
MySQL 8, or MariaDB 10.6 and later.
Web server
Anything that can point a document root at public/.
Cron
One line, every minute.
Installing

Seven steps, in this order

This is the outline. Each step has a page of its own in the documentation, and the install notes that ship with the download are the authority rather than this summary.

1

Files

The document root is public/ and the rest of the tree must sit outside it. If the application directory can be served by another site on the same account, then the environment file is a public URL. Put the board somewhere the other sites cannot reach.

2

Database and environment

Set the application URL, the environment, debug off and the database details, then generate a key and run the migrations. Nothing an operator would ever want to change lives in that file: every setting has a screen and lives in the database.

3

The first staff account

Open the first-run page. It creates the owner and then closes for good, because it is reachable only while no staff account exists at all. A provisioning script does the same thing without the screens and refuses to do anything twice.

4

Products

One product per thing you take requests about, each with its own hostname. The hostname decides which product a visitor sees. Creating a product seeds its five statuses and its first board.

5

The licence

Enter the key on the licence screen. The install checks in once, stores a signed answer and refreshes nightly. Until a key is entered it runs as a seven-day evaluation copy and says so on every page.

6

Cron and mail

One cron line a minute does everything scheduled. Mail safe mode is on until you turn it off on the mail screen, so a fresh install, and any copy of one, can email nobody. Set the transport and the from address, then add the addresses that may be written to or switch safe mode off.

7

Behind a proxy or a CDN

A licence check-in is a bare POST with no browser behind it, so browser integrity checks and bot rules are aimed straight at it. Let the licence path and the board's own outbound traffic through, and keep the ACME challenge path open to everyone or certificates stop renewing with nothing to show for it.

Something missing from this page

Ask for it on our own board, which runs on Scope Request, so you can see what the software does while you are asking.