# Features — evolve-infra

Evidence date: 2026-10-15. Source: `git@bitbucket.org:overdrive/evolve-infra.git`, `master` at `35effc1` (2019-03-15).

"Current" means present at that revision. Nothing here was executed.

## Current features

### Local Magus web stack

| Feature | Where | Notes |
|---|---|---|
| nginx on host port 8080 | `docker-compose.yml` service `http` | Image `nginx:stable-alpine`. Site file replaces `/etc/nginx/conf.d/default.conf` |
| Document root `public/` | `nginx-site.conf` | `root /code/public`. Code comes from the `magus-core` bind mount |
| Front controller | `nginx-site.conf` | `try_files $uri $uri/ /index.php` |
| PHP FastCGI | `nginx-site.conf` | `fastcgi_pass php:9000` |
| Deny `.htaccess` | `nginx-site.conf` | `location ~ \.htaccess { deny all; }` |
| Custom PHP image | `php/Dockerfile`, service `php` | Tag `php:fpm-evolve`. Extensions `pdo_mysql` and `gd` |
| `APPLICATION_ENV=development` | service `php` | Selects the Magus `[development]` INI section when that file is present |
| MariaDB | service `database` | Image `mariadb`, no tag. Database name `magus_dev`. Root password `root` |
| SQL init file | service `database` volumes | `magus-core/admin_magus.sql` mounted as `/docker-entrypoint-initdb.d/dump.sql` |
| phpMyAdmin | service `phpmyadmin` | Host port 8081. `PMA_USER` / `PMA_PASSWORD` are `root`. Link alias `db` |
| Shared source mount | services `http` and `php` | `./magus-core:/code` |
| Submodule pin | `.gitmodules`, gitlink `magus-core` | URL `git@github.com:EvolveAV/magus-core.git`, branch `master`, gitlink `9b5b3e2` |
| Operator README | `Readme.md` | Launch steps, MySQL `docker exec`, phpMyAdmin URL |

### Diagnostic script (present, not wired)

`php-test/public/index.php` opens a `mysqli` connection to host `database`, database `magus_dev`, user `root`, password `root`, runs one `SELECT` against `users` for a hardcoded email, prints the row, then calls `phpinfo()`.

Compose does not mount `php-test`. The image at `35effc1` does not install `mysqli`. Provenance: **Implemented** file, **not** part of the running stack described by Compose.

The email address is personal data in a test script. It is not copied into this document.

## Incomplete or stub features

| Item | Evidence | Reading |
|---|---|---|
| `nginx.conf` | Full nginx main config in the repo root. No Compose volume references it | Unused by the stack as written. **Inferred** |
| `php-test` | See above | Left behind after the extension change in `3b4de76` |
| README "deployment" | First paragraph | No deploy manifest other than local Compose |
| README plural "Evolve Applications" | First paragraph | Only Magus is named in the rest of the README and in Compose |
| Service startup order | `links` only, no `depends_on` or healthcheck | PHP and nginx can start before MariaDB accepts connections. **Inferred** from the file. Not executed |
| Database persistence | No data volume | **Inferred** ephemeral data directory inside the container |

## Planned features

No roadmap, issue list, TODO, or second Compose file. Nothing in git after 2019-03-15 describes further work. Provenance: **Unknown** whether anyone intended a production stack. The files do not say so.

## Recently changed

The whole history is one day. Relative to the first commit `a5b8870`:

| Change | Commit | What moved |
|---|---|---|
| PHP image added; official `php:fpm-alpine` replaced as the `php` service image | `2cf321b` | `php/Dockerfile` installs `mysqli` and `gd`. Compose sets `image: php:fpm-evolve` and `build: ./php` |
| `php-test` moved under `public/` and gained a MySQL query | `2cf321b` | Replaces a two-line `phpinfo()` script |
| `mysqli` swapped for `pdo_mysql` | `3b4de76` | Dockerfile only. `php-test` still calls `mysqli` |
| Submodule pin moved from `d5d0227` to `9b5b3e2` | `3b4de76` | `9b5b3e2` is the Magus commit whose `[development]` database settings match this Compose file |
| Submodule tracks `master` | `dda9d6e` | `.gitmodules` `branch = master` |
| README added | `fc79c98` | Launch steps. Typo `docker-compuse` in this commit |
| phpMyAdmin service and README section | `35effc1` | Port 8081. Launch typo corrected. "troubelshoot" remains |

## Deprecated or removed

| Item | Evidence | Reading |
|---|---|---|
| `mysqli` in the PHP image | Present only in `2cf321b`, removed in `3b4de76` | Removed the same day. The test script was not updated |
| Direct use of image `php:fpm-alpine` as the `php` service | `a5b8870` Compose file | Replaced by the locally built tag in `2cf321b`. The Dockerfile still uses `php:fpm-alpine` as its base |
| Submodule pin `d5d0227` | `a5b8870` gitlink | Superseded by `9b5b3e2` |
| README command `docker-compuse up` | `fc79c98` | Corrected in `35effc1` |

`nginx.conf` has been in the tree since `a5b8870` and has never been mounted. It was not removed. It is unused, not deprecated by a later commit message.

## Scan-host files that are not features in git

`sonar-project.properties` and `sonarqube_scan.bat` were listed at the repository root when the onboarding task was created. They are not in `master`. They are not documented as product features.

## Not in this repository

Application screens, roles, permits, email, and schema rules are features of `magus-core`. They are not re-listed here.
