Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ab82746
Update .gitignore
lferreira86 Apr 22, 2026
71f8522
SQLite deployment
lferreira86 Apr 22, 2026
2fc4a90
Merge remote-tracking branch 'origin/main' into lf-sqlite-test
MarShaikh May 22, 2026
67dd66e
removed `postgres` erroneous artifact file
MarShaikh May 26, 2026
b93a883
added config unit tests for sqlite
MarShaikh May 26, 2026
0bf0e07
fixed pyright errors
MarShaikh May 26, 2026
f05cd9b
ignoring overly restrictive pyright error with type annotation
MarShaikh May 26, 2026
80055d5
validate Auth0 config values are non-empty strings, not just str type
MarShaikh May 26, 2026
15ae385
fix: prevent -> being parsed as redirection operator in port regex
MarShaikh May 28, 2026
ade9a22
Merge remote-tracking branch 'origin/main' into lf-sqlite-test
MarShaikh Jun 22, 2026
f99d2fa
fix: prevent -> being parsed as redirection operator in port regex
MarShaikh Jun 22, 2026
2b07e49
updated refs to `docker-compose.yml` per suggestion as both files wer…
MarShaikh Jun 22, 2026
67ecd68
deleted `docker-local.yml`
MarShaikh Jun 22, 2026
f0edc37
fix: match Docker's bare-IPv6 port form in deploy port detection
MarShaikh Jun 22, 2026
9544613
make .env optional in docker-compose so deploys work without a bare .env
MarShaikh Jun 22, 2026
c0955de
fix: handle Windows CRLF line endings in .env file sourcing
lferreira86 Jun 26, 2026
5f0802a
feat: add multi-instance SQLite deployment configuration with docker-…
lferreira86 Jul 3, 2026
c0563bf
Merge remote-tracking branch 'origin/main' into lf-sqlite-test
MarShaikh Jul 7, 2026
912aed4
Merge branch 'lf-sqlite-test' of github.com:Taylor-CCB-Group/MDV into…
MarShaikh Jul 7, 2026
d049640
updating feature branch to be latest updates in remote main
MarShaikh Jul 16, 2026
6a11df4
perf: fetch Auth0 admin members once in sync_users_to_db (#526)
MarShaikh Jul 16, 2026
a97f02e
add `--permissions-file` flag; on Auth0 deploys, sync users (and app…
MarShaikh Jul 17, 2026
39d4f7a
add `sync` subcommand (Auth0->DB sync only, no per-user assignment) s…
MarShaikh Jul 17, 2026
dd9a06f
add admin-only `/refresh_cache` endpoint to reload the user/project c…
MarShaikh Jul 17, 2026
85328c0
revert `run_permission_sync` and add `RUN_AUTH0_SYNC_ON_START` env var
MarShaikh Jul 17, 2026
752fcae
run the optimised auth0 sync on start
MarShaikh Jul 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,7 @@ tests_playwright/test-data/temp/
/scripts/schemas/datasources-array-schema.json
/python/mdvtools/llm/structured_schemas.py
/scripts/python/mdvtools/llm/structured_schemas.py

# Deployment-generated files
.env.*
.docker-deploy.*.override.yml
56 changes: 56 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,59 @@ For front-end development, a vite dev-server can be started with `npm run dev` f
### Alternative steps for running locally

If you prefer to manage tools differently - for a lighter-weight environment, non VSCode-based editors, or integration into other workflows etc, this is also possible. Further documentation can be found on the [MDV documentation website](https://mdv.ndm.ox.ac.uk/)

## Deployment Scripts (Local Docker)

The repository includes three deployment entrypoints:

- `deploy.sh`
- `deploy.bat`
- `deploy_gui.sh`

All three support:

- database backend selection (`sqlite` default, `postgres` optional)
- deployment mode (`new` or `replace`)
- deployment name (Compose project name)
- custom app host port
- automatic suggested host port (next free from `5055`)

### Backend behavior

- **sqlite (default)**:
- runs `mdv_app` without `mdv_db`
- uses `SQLITE_DB_PATH` (default `/app/mdv/mdv.sqlite3`)
- **postgres**:
- runs `mdv_app` + `mdv_db`
- postgres container is pinned to `mdv-db` for easier reuse detection across deployments
- uses `DB_USER`, `DB_PASSWORD`, `DB_HOST`
- uses a shared database name `mdv` by default
- sets `DB_SCHEMA` to the deployment name by default
- can also run in **reuse** mode (app only), where `mdv_db` is not started and `DB_HOST` points to an existing Postgres instance
- deploy scripts auto-detect running Postgres containers and default to `reuse` mode when found

At startup, application logs will include the selected backend (for example `Database backend selected: sqlite (...)`).

### Running multiple deployments side-by-side

To keep multiple instances without replacing an existing one, use:

- mode: `new`
- a unique deployment name (for example `mdv_a`, `mdv_b`)
- different host ports (for example `5055`, `5056`)

Each deployment writes its own env file (`.env.<deployment_name>`) and runs under its own Compose project name.

### Local image vs Docker Hub image

Deploy scripts now prefer a local `mdvadmin/mdv:stable` image if it already exists, and skip pulling `mdv_app` in that case.

If no local image is available, scripts pull from Docker Hub as before.

To test local code changes:

```sh
docker compose -f docker-local.yml build mdv_app
```

Then run your deploy script and choose backend/settings as needed.
Loading
Loading