11#! /usr/bin/env bash
22set -euo pipefail
33
4- PORT=" ${RSTUDIO_PORT:- 8787 } "
4+ PORT=" ${RSTUDIO_PORT:- 8080 } "
55ADDRESS=" ${RSTUDIO_ADDRESS:- 0.0.0.0} "
6+ USER_NAME=" $( id -un) "
7+ WORKDIR=" ${RSTUDIO_TMPDIR:- $HOME / .rstudio-server-run} "
68
7- if [ " $( id -u) " -eq 0 ]; then
8- # --- Docker path: running as root, use rocker's built-in init ---
9- # rocker/rstudio ships /init which sets up the rstudio user and launches rserver.
10- # Honor a password if provided, otherwise disable auth (only safe behind a tunnel).
11- export PASSWORD=" ${PASSWORD:- } "
12- if [ -z " $PASSWORD " ]; then
13- export DISABLE_AUTH=true
14- fi
15- exec /init
9+ mkdir -p " $WORKDIR " /{run,lib,log,tmp}
1610
17- else
18- # --- Apptainer path: rootless, everything must live under $HOME ---
19- USER_NAME=" $( id -un) "
20- USER_ID=" $( id -u) "
21- WORKDIR=" ${RSTUDIO_TMPDIR:- $HOME / .rstudio-server-run} "
22- mkdir -p " $WORKDIR " /{run,lib,log,tmp}
23-
24- COOKIE_KEY=" $WORKDIR /secure-cookie-key"
25- if [ ! -s " $COOKIE_KEY " ]; then
26- uuidgen > " $COOKIE_KEY "
27- chmod 0600 " $COOKIE_KEY "
28- fi
11+ # Generate a password if not supplied
12+ if [ -z " ${PASSWORD:- } " ]; then
13+ PASSWORD=$( openssl rand -base64 15)
14+ echo " =================================================="
15+ echo " RStudio login:"
16+ echo " User: $USER_NAME "
17+ echo " Password: $PASSWORD "
18+ echo " =================================================="
19+ fi
20+ export PASSWORD
2921
30- cat > " $WORKDIR /database.conf" << EOF
22+ # rserver wants this in a .conf file too
23+ cat > " $WORKDIR /database.conf" << EOF
3124provider=sqlite
3225directory=$WORKDIR /lib
3326EOF
3427
35- cat > " $WORKDIR /rserver.conf" << EOF
36- www-port=$PORT
37- www-address=$ADDRESS
38- www-verify-user-agent=0
39- auth-none=1
40- auth-minimum-user-id=$USER_ID
41- server-user=$USER_NAME
42- server-data-dir=$WORKDIR /run
43- secure-cookie-key-file=$COOKIE_KEY
44- database-config-file=$WORKDIR /database.conf
45- server-daemonize=0
46- EOF
47-
48- exec /usr/lib/rstudio-server/bin/rserver --config-file=" $WORKDIR /rserver.conf"
49- fi
28+ exec /usr/lib/rstudio-server/bin/rserver \
29+ --www-port=" $PORT " \
30+ --www-address=" $ADDRESS " \
31+ --www-verify-user-agent=0 \
32+ --auth-none=0 \
33+ --auth-pam-helper-path=pam-helper \
34+ --auth-stay-signed-in-days=30 \
35+ --auth-timeout-minutes=0 \
36+ --server-user=" $USER_NAME " \
37+ --server-data-dir=" $WORKDIR /run" \
38+ --database-config-file=" $WORKDIR /database.conf" \
39+ --secure-cookie-key-file=" $WORKDIR /secure-cookie-key" \
40+ --server-daemonize=0
0 commit comments