Installation¶
This page covers the web installer wizard reachable at /installer/start. The installer creates the application schema and the initial administrator account, then locks itself by writing installer/installer.json.
Before you begin¶
- An empty MariaDB / MySQL database with a user that has
CREATE,INSERT,SELECT,UPDATE,DELETE,ALTERprivileges. - The repository (or the release ZIP) deployed under your DocumentRoot.
.envpopulated withDB_DSN,DB_USER,DB_PASSWORD(recommended) or the same values placed inconfig.jsonunderdatabase.*..htaccessRewriteBaseadjusted to match the install path.
Walkthrough¶
- Open
/installer/startin a browser. The page does an environment self-check (PHP version, required extensions) before letting you proceed. - Confirm DB connectivity. The installer attempts the DSN you supplied. Failure messages show the underlying PDO error so you can correct credentials or grants.
- Create the schema. Tables are created via
installer/createTables.php. Existing tables are not dropped — re-running aborts safely. - Create the bootstrap administrator. Provide a display name, login id, and password.
- Login id constraints: 8–20 chars,
[0-9a-zA-Z_-]. - Password constraints: 8–20 chars, alphanumeric only.
- The password is stored using
password_hash(PASSWORD_ARGON2ID)(M1). - Lock the installer. A successful run writes
installer/installer.json; subsequent visits to/installer/*redirect to the login page.
After installation¶
- Visit
/auth/loginand sign in with the bootstrap admin. - Configure additional members from the admin panel (planned UI lands in M4 — until then, manage
Memberrows via Adminer or the SQL shell). - Apply security recommendations from the Security policy:
- Set
APP_HTTPS=truein.envonce TLS is provisioned at the web-server layer. - Restrict file permissions:
.envandconfig.jsonto0640.
Troubleshooting¶
| Symptom | Likely cause |
|---|---|
No such file or directory on the DSN test |
Wrong host / unix socket path. For Docker compose use host=db. |
Access denied for user |
Grants missing on the DB. Run GRANT ALL ON saso_db.* TO 'saso_user'@'%';. |
| Installer redirects straight to the login page | installer/installer.json already exists; delete it to re-run. |
| 500 Internal Server Error before any installer page renders | .htaccess not honored. Ensure AllowOverride All (Docker dev image already does this; on shared hosting check the host docs). |
Argon2id digest truncated after upgrade from pre-M1 |
Run migrations/M1_001_widen_password_column.sql. |
Next¶
- Configuration — environment variables and runtime tuning.
- Architecture overview — how the codebase is organized.