# Environments ## Local development MariaDB is the standard. Start the isolated persistent service in `docker-compose.database.yml`, then run the API on 5202 and UI on 3000. Development settings use only loopback port33306 and development-only credentials. See [MariaDB setup](../database/mariadb-standardisation/README.md). Explicit SQLite selection is temporary for existing data and legacy test fixtures; it is never an automatic fallback. ## Tests Jest, Playwright, xUnit and Python use isolated fixtures. The MariaDB integration lane uses an actual disposable local server and creates only generated `jt_it_*` schemas. Never use an existing user or production database, mailbox, provider key or production URL. Legacy SQLite/InMemory tests remain explicitly labelled transition evidence and cannot substitute for MariaDB qualification. ## Production Production requires an explicit database provider, authentication key/configuration, AI service token, public base URL, proxy CIDRs, and external secret storage. Leave `NEXT_PUBLIC_API_BASE_URL` empty so nginx provides same-origin `/api` unless an intentional external API origin is required.