* feat(install): add one-line Ubuntu installer with CI test and docs
- Add scripts/install-ubuntu.sh: installs Apache/MariaDB/PHP, downloads the
latest stable release, configures the DB + Apache, and optionally sets up
Let's Encrypt SSL (interactive or via env vars).
- Add .github/workflows/install-script-test.yml: runs the installer in a fresh
Ubuntu container and sanity-checks the result.
- Document the installer in INSTALL.md.
- Harden the script: identifier-safe DB_NAME, quote/pipe rejection in
passwords, correct 'Candidate: (none)' PPA detection, keep unix_socket root
auth when no root password is set, select the .zip release asset, and use the
SSL domain as the public hostname for allowedHostnames.
* docs: move BUILD.md, INSTALL.md, UPGRADE.md into docs/
Closes#4751
- Move the three detailed guides from the repo root into docs/
- Update all links in README.md, .github/ISSUE_TEMPLATE.md,
docker-compose.yml, and cross-references within the moved guides
- Add docs/**/* to the gulp compress task so release archives
include the guides under their new docs/ path
- README now links to all three guides
- Root-level files (README, CHANGELOG, LICENSE, SECURITY.md,
CODE_OF_CONDUCT.md, AGENTS.md) remain in place
* docs: add working-dir note and remove stale 'docs' .gitignore entry
- Add explicit note that Docker/install commands run from repo root
- Remove stale 'docs' line from .gitignore (leftover from old ApiGen
output) so tracked files under docs/ can be modified normally