Skip to content

Commit 8c7f4a6

Browse files
committed
docs: update DEPLOYMENT.md — self-contained build, dep locking, architecture diagram
1 parent cf102e8 commit 8c7f4a6

1 file changed

Lines changed: 47 additions & 2 deletions

File tree

DEPLOYMENT.md

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
### Development
2020

2121
```bash
22-
git clone <repo-url> && cd predomics_suite/predomicsapp
22+
git clone https://github.com/predomics/predomicsapp.git && cd predomicsapp
2323
docker compose up -d --build
2424
```
2525

@@ -66,12 +66,57 @@ All settings use the `PREDOMICS_` prefix (via pydantic-settings).
6666
| `PREDOMICS_DATA_DIR` | `data` | Root directory for all persistent data. |
6767
| `PREDOMICS_UPLOAD_DIR` | `data/uploads` | Directory for uploaded dataset files. |
6868
| `PREDOMICS_PROJECT_DIR` | `data/projects` | Directory for project/job result files. |
69-
| `PREDOMICS_SAMPLE_DIR` | `data/qin2014_cirrhosis` | Demo dataset directory. |
69+
| `PREDOMICS_SAMPLES_DIR` | `samples` | Bundled demo datasets directory (baked in image). |
70+
| `PREDOMICS_SAMPLE_DIR` | `samples/qin2014_cirrhosis` | Default demo dataset for backward compatibility. |
7071
| `PREDOMICS_DEBUG` | `false` | Enable debug logging. |
7172
| `PREDOMICS_CORS_ORIGINS` | `["http://localhost:5173"]` | Allowed CORS origins (JSON array). |
7273
| `PREDOMICS_ACCESS_TOKEN_EXPIRE_MINUTES` | `1440` | JWT token expiry (24 hours). |
7374
| `PREDOMICS_DEFAULT_THREAD_NUMBER` | `4` | Default thread count for gpredomics. |
7475

76+
77+
### Docker Build Arguments
78+
79+
| Argument | Default | Description |
80+
|----------|---------|-------------|
81+
| `GPREDOMICS_REF` | `main` | Git ref (tag/branch) for gpredomics. Use `v1.0.0` for pinned releases. |
82+
| `GPREDOMICSPY_REF` | `main` | Git ref for gpredomicspy Python bindings. |
83+
84+
```bash
85+
# Build with pinned versions
86+
docker compose build --build-arg GPREDOMICS_REF=v1.0.0 --build-arg GPREDOMICSPY_REF=main
87+
```
88+
89+
### Dependency Locking
90+
91+
| Layer | Loose deps | Lock file | How to update |
92+
|-------|-----------|-----------|---------------|
93+
| **Rust** | `Cargo.toml` | `Cargo.lock` | `cargo update` |
94+
| **Python** | `pyproject.toml` | `requirements.lock` | `pip freeze > requirements.lock` |
95+
| **JS** | `package.json` | `package-lock.json` | `npm update` |
96+
| **Rust toolchain** || Pinned to `1.84.0` | Update in Dockerfile + CI |
97+
| **Python runtime** || Pinned to `3.11` | Update Dockerfile base image |
98+
99+
### Architecture
100+
101+
```
102+
predomicsapp/ ← self-contained, no parent directory needed
103+
├── Dockerfile ← multi-stage: frontend + rust-builder + runtime
104+
├── docker-compose.yml ← production (context: .)
105+
├── docker-compose.dev.yml ← development with hot-reload
106+
├── backend/ ← FastAPI + gpredomicspy
107+
├── frontend/ ← Vue.js 3
108+
├── samples/ ← bundled demo datasets (baked in image, read-only)
109+
│ ├── qin2014_cirrhosis/
110+
│ ├── derosa2025_ici/
111+
│ └── wetlab_protocol/
112+
└── data/ ← user workspace (persistent volume mount)
113+
├── projects/
114+
├── datasets/
115+
└── uploads/
116+
```
117+
118+
gpredomics and gpredomicspy are **cloned from GitHub during Docker build** — no sibling directories needed.
119+
75120
---
76121

77122
## NGINX Reverse Proxy

0 commit comments

Comments
 (0)