Compare commits
2 Commits
695e206157
...
61c5b322dd
| Author | SHA1 | Date | |
|---|---|---|---|
| 61c5b322dd | |||
| 3e95ad76f9 |
@@ -82,7 +82,8 @@ These flags work alongside any mode:
|
|||||||
|------|--------|
|
|------|--------|
|
||||||
| `--stop-server` | Stop the stack and remove student containers, then exit |
|
| `--stop-server` | Stop the stack and remove student containers, then exit |
|
||||||
| `--update-lectures` | Rebuild the course website only (no Docker stop/start) |
|
| `--update-lectures` | Rebuild the course website only (no Docker stop/start) |
|
||||||
| `--build-obidoc` | Force rebuild of the obidoc documentation |
|
| `--update-obidoc` | Rebuild the obidoc documentation only (no Docker stop/start) |
|
||||||
|
| `--build-obidoc` | Force rebuild of obidoc documentation on next full start |
|
||||||
|
|
||||||
## Installation and first run
|
## Installation and first run
|
||||||
|
|
||||||
@@ -156,6 +157,48 @@ Packages are cached in `jupyterhub_volumes/builder/R_packages/`:
|
|||||||
- **Non-CRAN packages**: packages installed via `remotes::install_git()` or `remotes::install_github()` in your `.qmd` files are detected and pre-installed automatically before rendering.
|
- **Non-CRAN packages**: packages installed via `remotes::install_git()` or `remotes::install_github()` in your `.qmd` files are detected and pre-installed automatically before rendering.
|
||||||
- **Clear the cache**: delete `jupyterhub_volumes/builder/R_packages/` to force a full reinstall.
|
- **Clear the cache**: delete `jupyterhub_volumes/builder/R_packages/` to force a full reinstall.
|
||||||
|
|
||||||
|
## OBITools documentation (obidoc)
|
||||||
|
|
||||||
|
The OBITools4 documentation is built from the [`obitools4-doc`](https://github.com/metabarcoding/obitools4-doc) repository using Hugo and served as a static site at `http://localhost:8888/obidoc/`.
|
||||||
|
|
||||||
|
### How it works
|
||||||
|
|
||||||
|
The builder container clones the repository (with all submodules), runs `hugo build`, and writes the generated HTML into `jupyterhub_volumes/web/obidoc/`. Caddy then serves these files directly — no special routing is needed.
|
||||||
|
|
||||||
|
### First installation
|
||||||
|
|
||||||
|
The documentation is built automatically on the first full start if `jupyterhub_volumes/web/obidoc/` is empty:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./start-jupyterhub.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
To force a build even if the directory is already populated, use `--build-obidoc` during a full start:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./start-jupyterhub.sh --build-obidoc
|
||||||
|
```
|
||||||
|
|
||||||
|
### Updating the documentation
|
||||||
|
|
||||||
|
To rebuild the documentation without stopping the running stack:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./start-jupyterhub.sh --update-obidoc
|
||||||
|
```
|
||||||
|
|
||||||
|
This pulls the latest version of the builder image (or uses the local one with `--local-build`), reclones the `obitools4-doc` repository, rebuilds the site, and replaces the contents of `jupyterhub_volumes/web/obidoc/`. The JupyterHub stack keeps running throughout.
|
||||||
|
|
||||||
|
### Removing the documentation
|
||||||
|
|
||||||
|
To remove the built documentation (e.g. to free disk space or force a clean rebuild):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rm -rf jupyterhub_volumes/web/obidoc/*
|
||||||
|
```
|
||||||
|
|
||||||
|
The next `./start-jupyterhub.sh` will rebuild it automatically.
|
||||||
|
|
||||||
## Managing course and student data
|
## Managing course and student data
|
||||||
|
|
||||||
Each student lands in `/home/jovyan/work/` with three areas:
|
Each student lands in `/home/jovyan/work/` with three areas:
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ RUN apt-get update \
|
|||||||
libtiff5-dev \
|
libtiff5-dev \
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libuv1-dev \
|
libuv1-dev \
|
||||||
|
golang-go \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
@@ -44,7 +45,7 @@ RUN mkdir -p ${R_LIBS_BUILDER} \
|
|||||||
|
|
||||||
# Install Hugo (extended version for SCSS support)
|
# Install Hugo (extended version for SCSS support)
|
||||||
# Detect architecture and download appropriate binary
|
# Detect architecture and download appropriate binary
|
||||||
ARG HUGO_VERSION=0.140.2
|
ARG HUGO_VERSION=0.159.2
|
||||||
RUN ARCH=$(dpkg --print-architecture) \
|
RUN ARCH=$(dpkg --print-architecture) \
|
||||||
&& case "$ARCH" in \
|
&& case "$ARCH" in \
|
||||||
amd64) HUGO_ARCH="amd64" ;; \
|
amd64) HUGO_ARCH="amd64" ;; \
|
||||||
|
|||||||
+18
-2
@@ -38,6 +38,7 @@ REBUILD_HUB=false
|
|||||||
# Actions
|
# Actions
|
||||||
STOP_SERVER=false
|
STOP_SERVER=false
|
||||||
UPDATE_LECTURES=false
|
UPDATE_LECTURES=false
|
||||||
|
UPDATE_OBIDOC=false
|
||||||
BUILD_OBIDOC=false
|
BUILD_OBIDOC=false
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
@@ -58,7 +59,8 @@ Build options (--local-build only):
|
|||||||
Actions:
|
Actions:
|
||||||
--stop-server Stop the stack and remove student containers, then exit
|
--stop-server Stop the stack and remove student containers, then exit
|
||||||
--update-lectures Rebuild the course website only (no Docker stop/start)
|
--update-lectures Rebuild the course website only (no Docker stop/start)
|
||||||
--build-obidoc Force rebuild of obidoc documentation
|
--update-obidoc Rebuild the obidoc documentation only (no Docker stop/start)
|
||||||
|
--build-obidoc Force rebuild of obidoc documentation on next full start
|
||||||
-h, --help Show this help
|
-h, --help Show this help
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@@ -76,6 +78,7 @@ while [[ $# -gt 0 ]]; do
|
|||||||
--rebuild-hub) REBUILD_HUB=true; LOCAL_BUILD=true ;;
|
--rebuild-hub) REBUILD_HUB=true; LOCAL_BUILD=true ;;
|
||||||
--stop-server) STOP_SERVER=true ;;
|
--stop-server) STOP_SERVER=true ;;
|
||||||
--update-lectures) UPDATE_LECTURES=true ;;
|
--update-lectures) UPDATE_LECTURES=true ;;
|
||||||
|
--update-obidoc) UPDATE_OBIDOC=true ;;
|
||||||
--build-obidoc) BUILD_OBIDOC=true ;;
|
--build-obidoc) BUILD_OBIDOC=true ;;
|
||||||
-h|--help) usage; exit 0 ;;
|
-h|--help) usage; exit 0 ;;
|
||||||
*) echo "Unknown option: $1" >&2; usage; exit 1 ;;
|
*) echo "Unknown option: $1" >&2; usage; exit 1 ;;
|
||||||
@@ -387,7 +390,7 @@ build_obidoc() {
|
|||||||
-j 8 \
|
-j 8 \
|
||||||
https://github.com/metabarcoding/obitools4-doc.git
|
https://github.com/metabarcoding/obitools4-doc.git
|
||||||
cd obitools4-doc
|
cd obitools4-doc
|
||||||
hugo -D build --baseURL "/obidoc/"
|
hugo --gc --minify --buildDrafts --baseURL "/obidoc/"
|
||||||
mkdir -p /workspace/jupyterhub_volumes/web/obidoc
|
mkdir -p /workspace/jupyterhub_volumes/web/obidoc
|
||||||
rm -rf /workspace/jupyterhub_volumes/web/obidoc/*
|
rm -rf /workspace/jupyterhub_volumes/web/obidoc/*
|
||||||
mv public/* /workspace/jupyterhub_volumes/web/obidoc/
|
mv public/* /workspace/jupyterhub_volumes/web/obidoc/
|
||||||
@@ -498,6 +501,19 @@ if $UPDATE_LECTURES; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if $UPDATE_OBIDOC; then
|
||||||
|
if $LOCAL_BUILD; then
|
||||||
|
build_builder_image
|
||||||
|
elif ! $NO_BUILD; then
|
||||||
|
docker pull "$BUILDER_IMAGE" 2>/dev/null \
|
||||||
|
|| echo -e "${YELLOW}Could not pull builder image, using local cache.${NC}"
|
||||||
|
fi
|
||||||
|
BUILD_OBIDOC=true
|
||||||
|
build_obidoc
|
||||||
|
popd >/dev/null
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
stop_stack
|
stop_stack
|
||||||
|
|
||||||
if $PUBLISH; then
|
if $PUBLISH; then
|
||||||
|
|||||||
Reference in New Issue
Block a user