Skip to content

Creating a new application

A new BraDypUS application can be created through the web UI, or from the command line (see below) for unattended provisioning.

Prerequisites

The server must have BRADYPUS_ALLOW_NEW_APP=1 set as an environment variable. In the Docker Compose setup this is already set in docker-compose.yml.

Security notice

BRADYPUS_ALLOW_NEW_APP=1 should be enabled only during initial setup or when intentionally creating new applications. On a shared server, disable it after creation to prevent unauthorised app creation.

Creating the first application

The Create new application link on the login page appears only while BRADYPUS_ALLOW_NEW_APP=1 is set — including for the very first application. Set the flag, create the app, then set it back to 0. (Before v5.4.7 the link also appeared whenever projects/ was empty, regardless of the flag.)

Click the link to open the creation form.

Login page with the 'Create new application' link visible

The creation form

New application form with all fields filled in

FieldDescription
Application nameUnique identifier — see naming rules
Application descriptionShort description of the database
Your emailWill be your login email as the initial super-admin user
Your passwordWill be your login password
Database enginesqlite (no extra config), mysql, or pgsql

For MySQL and PostgreSQL, additional connection fields appear: host, port, database name, username, password.

SQLite for development

SQLite requires no external database service and is the recommended engine for development and single-user deployments.

From the command line

For unattended provisioning there is a gate-free CLI that does not need BRADYPUS_ALLOW_NEW_APP, an HTTP request, or a container restart:

bash
docker compose exec api php bin/create-app.php \
  --name <slug> --engine sqlite|pgsql|mysql --email <admin> --password-stdin

For pgsql/mysql the target database must already exist. The repo-root helper add-app.sh <instance-dir> --name … --engine … --email … wraps it end to end (reads the instance .env, creates the Postgres database and an isolated per-app role if missing, then runs the CLI inside the api container).

After creation

On success, you are redirected to the login page. Log in with the email and password you entered. The application starts empty — proceed to Setup to create your first data tables.

See App anatomy for what gets created on disk.