Skip to content
Snippets Groups Projects
Commit e0099168 authored by Patrick James Pascual's avatar Patrick James Pascual
Browse files

bugfix: added environment variables to config.sh to force CryoSPARC socket...

bugfix: added environment variables to config.sh to force CryoSPARC socket files to . Changed Firefox autostart to a clickable desktop icon to launch CryoSPARC in browser.
parent 8c380981
No related branches found
No related tags found
No related merge requests found
...@@ -3,21 +3,26 @@ FROM slaclab/x11-desktop:20231115.0 ...@@ -3,21 +3,26 @@ FROM slaclab/x11-desktop:20231115.0
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
#RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \ COPY mozilla.pin /etc/apt/preferences.d/mozilla
#WORKDIR /etc/apt/keyrings RUN curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-6.0-keyring.gpg \
RUN curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add -\ && echo "deb [ arch=amd64,arch64 signed-by=/usr/share/keyrings/mongodb-6.0-keyring.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list \
&& echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list \ && apt-get update \
&& wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O /usr/share/keyrings/packages.mozilla.org.asc \
&& echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/packages.mozilla.org.asc ] https://packages.mozilla.org/apt mozilla main" > /etc/apt/sources.list.d/mozilla.list \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
firefox \
zip unzip \ zip unzip \
python3 python3-dev python3-setuptools python3-pip \ python3 python3-dev python3-setuptools python3-pip \
libtiff5 \ libtiff5 \
ed jq \ ed jq \
curl \
sudo \ sudo \
less \
netbase iputils-ping net-tools \ netbase iputils-ping net-tools \
nodejs \ nodejs \
mongodb-mongosh mongodb-database-tools \ mongodb-mongosh mongodb-database-tools \
&& apt-get remove chromium \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3 && ln -s /usr/lib/x86_64-linux-gnu/libtiff.so.5 /usr/lib/x86_64-linux-gnu/libtiff.so.3
...@@ -55,7 +60,7 @@ RUN --mount=type=secret,id=cryosparc_license_id \ ...@@ -55,7 +60,7 @@ RUN --mount=type=secret,id=cryosparc_license_id \
curl -L https://get.cryosparc.com/download/worker-v${CRYOSPARC_VERSION}/$(cat /run/secrets/cryosparc_license_id) | tar -xz \ curl -L https://get.cryosparc.com/download/worker-v${CRYOSPARC_VERSION}/$(cat /run/secrets/cryosparc_license_id) | tar -xz \
&& cd ${CRYOSPARC_WORKER_DIR} \ && cd ${CRYOSPARC_WORKER_DIR} \
&& bash ./install.sh --license "$(cat /run/secrets/cryosparc_license_id)" --yes \ && bash ./install.sh --license "$(cat /run/secrets/cryosparc_license_id)" --yes \
&& sed -i 's/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=TBD/g' ${CRYOSPARC_WORKER_DIR}/config.sh && sed -i 's/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=TBD/g' ${CRYOSPARC_WORKER_DIR}/config.sh
# update patches # update patches
RUN if [ ! -z "${CRYOSPARC_PATCH}" ]; then wget https://get.cryosparc.com/patch_get/v${CRYOSPARC_VERSION}+${CRYOSPARC_PATCH}/worker -O ${CRYOSPARC_ROOT_DIR}/cryosparc_worker_patch.tar.gz \ RUN if [ ! -z "${CRYOSPARC_PATCH}" ]; then wget https://get.cryosparc.com/patch_get/v${CRYOSPARC_VERSION}+${CRYOSPARC_PATCH}/worker -O ${CRYOSPARC_ROOT_DIR}/cryosparc_worker_patch.tar.gz \
...@@ -65,39 +70,25 @@ RUN if [ ! -z "${CRYOSPARC_PATCH}" ]; then wget https://get.cryosparc.com/patch_ ...@@ -65,39 +70,25 @@ RUN if [ ! -z "${CRYOSPARC_PATCH}" ]; then wget https://get.cryosparc.com/patch_
# compile libtiff # compile libtiff
RUN ${CRYOSPARC_MASTER_DIR}/deps/anaconda/envs/cryosparc_master_env/bin/python3 ${CRYOSPARC_MASTER_DIR}/cryosparc_compute/blobio/tiff.py \ RUN ${CRYOSPARC_MASTER_DIR}/deps/anaconda/envs/cryosparc_master_env/bin/python3 ${CRYOSPARC_MASTER_DIR}/cryosparc_compute/blobio/tiff.py \
&& ${CRYOSPARC_WORKER_DIR}/deps/anaconda/envs/cryosparc_worker_env/bin/python3 ${CRYOSPARC_WORKER_DIR}/cryosparc_compute/blobio/tiff.py && ${CRYOSPARC_WORKER_DIR}/deps/anaconda/envs/cryosparc_worker_env/bin/python3 ${CRYOSPARC_WORKER_DIR}/cryosparc_compute/blobio/tiff.py
# install cryosparc live
ARG CRYOSPARC_LIVE
RUN --mount=type=secret,id=cryosparc_license_id \
if [ ! -z $CRYOSPARC_LIVE ]; then cd ${CRYOSPARC_MASTER_DIR} \
curl -L "https://get.cryosparc.com/download/master-${CRYOSPARC_LIVE}/$(cat /run/secrets/cryosparc_license_id)" | tar -xz --overwrite --strip-components=1 --directory . \
&& ${CRYOSPARC_MASTER_DIR}/bin/cryosparcm deps \
&& sed -i 's/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=TBD/g' ${CRYOSPARC_MASTER_DIR}/config.sh; \
fi
RUN --mount=type=secret,id=cryosparc_license_id \
if [ ! -z $CRYOSPARC_LIVE ]; then cd ${CRYOSPARC_WORKER_DIR} \
curl -L "https://get.cryosparc.com/download/worker-${CRYOSPARC_LIVE}/$(cat /run/secrets/cryosparc_license_id)" | tar -xz --overwrite --strip-components=1 --directory . \
&& ${CRYOSPARC_WORKER_DIR}/bin/cryosparcw deps \
&& sed -i 's/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=TBD/g' ${CRYOSPARC_WORKER_DIR}/config.sh; \
fi
#### ####
## install motioncor ## install motioncor
#### ####
ARG MOTIONCOR2_VERSION=1.6.3 ARG MOTIONCOR2_VERSION=1.4.5
ENV MOTIONCOR2_VERSION=${MOTIONCOR2_VERSION} ENV MOTIONCOR2_VERSION=${MOTIONCOR2_VERSION}
ENV CUDA_TOOLKIT_VERSION="Cuda100-10-22-2021"
RUN cd /usr/local/bin \ RUN cd /usr/local/bin \
&& curl -L 'https://drive.google.com/uc?export=download&id=1bzbk4Cl9dDDOZu01RKDuLsNtbiJytUMK' > MotionCor2_${MOTIONCOR2_VERSION}.zip \ && curl -L 'https://drive.google.com/uc?export=download&id=1-Ub5lBBmel8U8U0uibORiH6wfxp9I1kn' > MotionCor2_${MOTIONCOR2_VERSION}.zip \
&& unzip MotionCor2_${MOTIONCOR2_VERSION}.zip \ && unzip MotionCor2_${MOTIONCOR2_VERSION}.zip \
&& rm -f MotionCor2_${MOTIONCOR2_VERSION}.zip \ && rm -f MotionCor2_${MOTIONCOR2_VERSION}.zip \
&& ln -sf MotionCor2_${MOTIONCOR2_VERSION}-Cuda100 MotionCor2 && ln -sf MotionCor2_${MOTIONCOR2_VERSION}-${CUDA_TOOLKIT_VERSION} MotionCor2
### ###
# install topaz # install topaz
### ###
ARG TOPAZ_VERSION=0.2.5 ARG TOPAZ_VERSION=0.2.5
ENV TOPAZ_VERSION=${TOPAZ_VERSION} ENV TOPAZ_VERSION=${TOPAZ_VERSION}
RUN /app/cryosparc_worker/deps/anaconda/bin/conda install topaz=${TOPAZ_VERSION} cudatoolkit=10.1 -c tbepler -c pytorch ENV TOPAZ_CUDA_TOOLKIT_VERSION=12.2.0
RUN /app/cryosparc_worker/deps/anaconda/bin/conda install topaz=${TOPAZ_VERSION} cuda-libraries-dev cuda-nvcc cuda-nvtx cuda-cupti -c nvidia/label/cuda-${TOPAZ_CUDA_TOOLKIT_VERSION} -c tbepler -c pytorch
### ###
# #
...@@ -107,7 +98,7 @@ COPY cryosparc.sh /cryosparc.sh ...@@ -107,7 +98,7 @@ COPY cryosparc.sh /cryosparc.sh
COPY cryosparc-server.sh ${CRYOSPARC_MASTER_DIR}/bin/cryosparc-server.sh COPY cryosparc-server.sh ${CRYOSPARC_MASTER_DIR}/bin/cryosparc-server.sh
# autostart stuff # autostart stuff
COPY firefox.autostart /etc/xdg/autostart/firefox.desktop COPY cryosparc.desktop /cryosparc.desktop
RUN rm -f /etc/xdg/autostart/xscreensaver.desktop /etc/xdg/autostart/blueman.desktop /etc/xdg/autostart/mate-screensaver.desktop /etc/xdg/autostart/print-applet.desktop /etc/xdg/autostart/xfce4-power-manager.desktop /etc/xdg/autostart/mate-power-manager.desktop RUN rm -f /etc/xdg/autostart/xscreensaver.desktop /etc/xdg/autostart/blueman.desktop /etc/xdg/autostart/mate-screensaver.desktop /etc/xdg/autostart/print-applet.desktop /etc/xdg/autostart/xfce4-power-manager.desktop /etc/xdg/autostart/mate-power-manager.desktop
EXPOSE 39000 EXPOSE 39000
......
CRYOSPARC_VERSION ?= 4.4.0 CRYOSPARC_VERSION ?= 4.4.1
CRYOSPARC_PATCH ?= 231114 CRYOSPARC_PATCH ?= 240110
CRYOSPARC_RELEASE ?= 0 CRYOSPARC_RELEASE ?= 3
CONTAINER_RUNTIME ?= docker CONTAINER_RUNTIME ?= docker
IMAGE ?= slaclab/cryosparc-desktop IMAGE ?= slaclab/cryosparc-desktop
......
#!/bin/bash -xe #!/bin/bash -xe
# ensure we have a cryosparc directory under home # ensure we have a cryosparc directory under home
export CRYOSPARC_DATADIR=${HOME}/cryosparc-v2 export CRYOSPARC_DATADIR=${HOME}/cryosparc
echo "Creating cryosparc datadir ${CRYOSPARC_DATADIR}..." echo "Creating cryosparc datadir ${CRYOSPARC_DATADIR}..."
mkdir -p ${CRYOSPARC_DATADIR} mkdir -p ${CRYOSPARC_DATADIR}
mkdir -p ${CRYOSPARC_DATADIR}/run mkdir -p ${CRYOSPARC_DATADIR}/run
mkdir -p ${CRYOSPARC_DATADIR}/cryosparc2_database mkdir -p ${CRYOSPARC_DATADIR}/cryosparc_database
export PATH=${CRYOSPARC_MASTER_DIR}/bin:${CRYOSPARC_WORKER_DIR}/bin:${CRYOSPARC_MASTER_DIR}/deps/anaconda/bin/:$PATH export PATH=${CRYOSPARC_MASTER_DIR}/bin:${CRYOSPARC_WORKER_DIR}/bin:${CRYOSPARC_MASTER_DIR}/deps/anaconda/bin/:$PATH
...@@ -27,7 +27,7 @@ cd ${CRYOSPARC_MASTER_DIR} ...@@ -27,7 +27,7 @@ cd ${CRYOSPARC_MASTER_DIR}
# modify configuration # modify configuration
printf "%s\n" "1,\$s/^export CRYOSPARC_MASTER_HOSTNAME=.*$/export CRYOSPARC_MASTER_HOSTNAME=${CRYOSPARC_MASTER_HOSTNAME}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh printf "%s\n" "1,\$s/^export CRYOSPARC_MASTER_HOSTNAME=.*$/export CRYOSPARC_MASTER_HOSTNAME=${CRYOSPARC_MASTER_HOSTNAME}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
printf "%s\n" "1,\$s/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=${CRYOSPARC_LICENSE_ID}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh printf "%s\n" "1,\$s/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=${CRYOSPARC_LICENSE_ID}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
printf "%s\n" "1,\$s|^export CRYOSPARC_DB_PATH=.*$|export CRYOSPARC_DB_PATH=${CRYOSPARC_DATADIR}/cryosparc2_database|g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh printf "%s\n" "1,\$s|^export CRYOSPARC_DB_PATH=.*$|export CRYOSPARC_DB_PATH=${CRYOSPARC_DATADIR}/cryosparc_database|g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
printf "%s\n" "1,\$s/^export CRYOSPARC_BASE_PORT=.*$/export CRYOSPARC_BASE_PORT=${CRYOSPARC_BASE_PORT}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh printf "%s\n" "1,\$s/^export CRYOSPARC_BASE_PORT=.*$/export CRYOSPARC_BASE_PORT=${CRYOSPARC_BASE_PORT}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
echo '=====' echo '====='
cat ${CRYOSPARC_MASTER_DIR}/config.sh cat ${CRYOSPARC_MASTER_DIR}/config.sh
...@@ -36,7 +36,7 @@ echo '=====' ...@@ -36,7 +36,7 @@ echo '====='
# envs # envs
THIS_USER=$(whoami) THIS_USER=$(whoami)
THIS_USER_SUFFIX=${USER_SUFFIX:-'@slac.stanford.edu'} THIS_USER_SUFFIX=${USER_SUFFIX:-'@slac.stanford.edu'}
echo "Starting cryoSPARC in ${CRYOSPARC_MASTER_DIR} as ${THIS_USER}${THIS_USER_SUFFIx} with..." echo "Starting cryoSPARC in ${CRYOSPARC_MASTER_DIR} as ${THIS_USER}${THIS_USER_SUFFIX} with..."
SOCK_FILE=$(cryosparcm env | grep CRYOSPARC_SUPERVISOR_SOCK_FILE | sed 's/^.*CRYOSPARC_SUPERVISOR_SOCK_FILE=//' | sed 's/"//g') SOCK_FILE=$(cryosparcm env | grep CRYOSPARC_SUPERVISOR_SOCK_FILE | sed 's/^.*CRYOSPARC_SUPERVISOR_SOCK_FILE=//' | sed 's/"//g')
rm -f "${SOCK_FILE}" || true rm -f "${SOCK_FILE}" || true
cryosparcm restart cryosparcm restart
...@@ -50,11 +50,11 @@ cryosparcm restart ...@@ -50,11 +50,11 @@ cryosparcm restart
# remove all existing lanes and register standard lanes # remove all existing lanes and register standard lanes
echo "Registering job lanes..." echo "Registering job lanes..."
/app/cryosparc2_master/bin/cryosparcm cli 'get_scheduler_targets()' | python -c "import sys, ast, json; print( json.dumps(ast.literal_eval(sys.stdin.readline())) )" | jq '.[].name' | sed 's:"::g' | xargs -n1 -I \{\} /app/cryosparc2_master/bin/cryosparcm cli 'remove_scheduler_target_node("'{}'")' /app/cryosparc_master/bin/cryosparcm cli 'get_scheduler_targets()' | python -c "import sys, ast, json; print( json.dumps(ast.literal_eval(sys.stdin.readline())) )" | jq '.[].name' | sed 's:"::g' | xargs -n1 -I \{\} /app/cryosparc_master/bin/cryosparcm cli 'remove_scheduler_target_node("'{}'")'
# add slurm lanes # add slurm lanes
for i in `ls -1 /app/slurm/`; do for i in `ls -1 /app/slurm/`; do
cd /app/slurm/$i cd /app/slurm/$i
/app/cryosparc2_master/bin/cryosparcm cluster connect /app/cryosparc_master/bin/cryosparcm cluster connect
done done
cd ${CRYOSPARC_MASTER_DIR} cd ${CRYOSPARC_MASTER_DIR}
...@@ -73,9 +73,9 @@ cd ${CRYOSPARC_WORKER_DIR} ...@@ -73,9 +73,9 @@ cd ${CRYOSPARC_WORKER_DIR}
#printf "%s\n" "1,\$s/^export CRYOSPARC_MASTER_HOSTNAME=.*$/export CRYOSPARC_MASTER_HOSTNAME=${CRYOSPARC_MASTER_HOSTNAME}/g" wq | ed -s ${CRYOSPARC_WORKER_DIR}/config.sh #printf "%s\n" "1,\$s/^export CRYOSPARC_MASTER_HOSTNAME=.*$/export CRYOSPARC_MASTER_HOSTNAME=${CRYOSPARC_MASTER_HOSTNAME}/g" wq | ed -s ${CRYOSPARC_WORKER_DIR}/config.sh
# start worker # start worker
#/app/cryosparc2_worker/bin/cryosparcw connect --worker localhost --master cryosparc-api-$(whoami) --ssdpath $TMPDIR/ #/app/cryosparc_worker/bin/cryosparcw connect --worker localhost --master cryosparc-api-$(whoami) --ssdpath $TMPDIR/
#TODO: delete existing workers first...? #TODO: delete existing workers first...?
/app/cryosparc2_worker/bin/cryosparcw connect --worker ${CRYOSPARC_MASTER_HOSTNAME} --master ${CRYOSPARC_MASTER_HOSTNAME} --ssdpath $TMPDIR/ /app/cryosparc_worker/bin/cryosparcw connect --worker ${CRYOSPARC_MASTER_HOSTNAME} --master ${CRYOSPARC_MASTER_HOSTNAME} --ssdpath $TMPDIR/
### ###
# monitor forever # monitor forever
......
[Desktop Entry]
Type=Application
Exec=sh ./cryosparc_launcher.sh
Hidden=false
X-GNOME-Autostart-enabled=true
Name=CryoSPARC Web App
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
export PATH=${CRYOSPARC_MASTER_DIR}/bin:${CRYOSPARC_WORKER_DIR}/bin:${CRYOSPARC_MASTER_DIR}/deps/anaconda/bin/:$PATH export PATH=${CRYOSPARC_MASTER_DIR}/bin:${CRYOSPARC_WORKER_DIR}/bin:${CRYOSPARC_MASTER_DIR}/deps/anaconda/bin/:$PATH
export HOME=${HOME:-$USER_HOMEDIR} export HOME=${HOME:-$USER_HOMEDIR}
export LSCRATCH=${LSCRATCH:-/lscratch/$USER}
### ###
# master initiation # master initiation
...@@ -22,6 +23,7 @@ if [ -z "${CRYOSPARC_LICENSE_ID##*,*}" ]; then ...@@ -22,6 +23,7 @@ if [ -z "${CRYOSPARC_LICENSE_ID##*,*}" ]; then
fi fi
CRYOSPARC_BASE_PORT=${CRYOSPARC_BASE_PORT:-"39000"} CRYOSPARC_BASE_PORT=${CRYOSPARC_BASE_PORT:-"39000"}
export CRYOSPARC_SUPERVISOR_SOCK_FILE="${LSCRATCH}/cryosparc-supervisor.sock"
echo "Starting cryosparc master..." echo "Starting cryosparc master..."
cd ${CRYOSPARC_MASTER_DIR} cd ${CRYOSPARC_MASTER_DIR}
...@@ -30,6 +32,10 @@ printf "%s\n" "1,\$s/^export CRYOSPARC_MASTER_HOSTNAME=.*$/export CRYOSPARC_MAST ...@@ -30,6 +32,10 @@ printf "%s\n" "1,\$s/^export CRYOSPARC_MASTER_HOSTNAME=.*$/export CRYOSPARC_MAST
printf "%s\n" "1,\$s/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=${CRYOSPARC_LICENSE_ID}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh printf "%s\n" "1,\$s/^export CRYOSPARC_LICENSE_ID=.*$/export CRYOSPARC_LICENSE_ID=${CRYOSPARC_LICENSE_ID}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
printf "%s\n" "1,\$s|^export CRYOSPARC_DB_PATH=.*$|export CRYOSPARC_DB_PATH=${CRYOSPARC_DATADIR}/cryosparc_database|g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh printf "%s\n" "1,\$s|^export CRYOSPARC_DB_PATH=.*$|export CRYOSPARC_DB_PATH=${CRYOSPARC_DATADIR}/cryosparc_database|g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
printf "%s\n" "1,\$s/^export CRYOSPARC_BASE_PORT=.*$/export CRYOSPARC_BASE_PORT=${CRYOSPARC_BASE_PORT}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh printf "%s\n" "1,\$s/^export CRYOSPARC_BASE_PORT=.*$/export CRYOSPARC_BASE_PORT=${CRYOSPARC_BASE_PORT}/g" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
#printf "%s\n" "export CRYOSPARC_SUPERVISOR_SOCK_FILE=${CRYOSPARC_SUPERVISOR_SOCK_FILE}" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
#printf "%s\n" "export CRYOSPARC_MONGO_EXTRA_FLAGS=\" --unixSocketPrefix=${LSCRATCH}\"" wq | ed -s ${CRYOSPARC_MASTER_DIR}/config.sh
echo "export CRYOSPARC_SUPERVISOR_SOCK_FILE=${CRYOSPARC_SUPERVISOR_SOCK_FILE}" >> ${CRYOSPARC_MASTER_DIR}/config.sh
echo "export CRYOSPARC_MONGO_EXTRA_FLAGS=\" --unixSocketPrefix=${LSCRATCH}\"" >> ${CRYOSPARC_MASTER_DIR}/config.sh
if ! grep -q 'CRYOSPARC_FORCE_HOSTNAME=true' ${CRYOSPARC_MASTER_DIR}/config.sh; then if ! grep -q 'CRYOSPARC_FORCE_HOSTNAME=true' ${CRYOSPARC_MASTER_DIR}/config.sh; then
echo 'export CRYOSPARC_FORCE_HOSTNAME=true' >> ${CRYOSPARC_MASTER_DIR}/config.sh echo 'export CRYOSPARC_FORCE_HOSTNAME=true' >> ${CRYOSPARC_MASTER_DIR}/config.sh
fi fi
...@@ -41,19 +47,19 @@ echo '=====' ...@@ -41,19 +47,19 @@ echo '====='
#sed -i 's|MONGO_URL="mongodb://%(ENV_CRYOSPARC_MASTER_HOSTNAME)s:%(ENV_CRYOSPARC_MONGO_PORT)s|MONGO_URL=mongodb://cryosparc-fpoitevi:%(ENV_CRYOSPARC_MONGO_PORT)s|g' ${CRYOSPARC_MASTER_DIR}/supervisord.conf #sed -i 's|MONGO_URL="mongodb://%(ENV_CRYOSPARC_MASTER_HOSTNAME)s:%(ENV_CRYOSPARC_MONGO_PORT)s|MONGO_URL=mongodb://cryosparc-fpoitevi:%(ENV_CRYOSPARC_MONGO_PORT)s|g' ${CRYOSPARC_MASTER_DIR}/supervisord.conf
#sed -i 's|MONGO_OPLOG_URL="mongodb://%(ENV_CRYOSPARC_MASTER_HOSTNAME)s:%(ENV_CRYOSPARC_MONGO_PORT)s|MONGO_OPLOG_URL="mongodb://cryosparc-fpoitevi:%(ENV_CRYOSPARC_MONGO_PORT)s|g' ${CRYOSPARC_MASTER_DIR}/supervisord.conf #sed -i 's|MONGO_OPLOG_URL="mongodb://%(ENV_CRYOSPARC_MASTER_HOSTNAME)s:%(ENV_CRYOSPARC_MONGO_PORT)s|MONGO_OPLOG_URL="mongodb://cryosparc-fpoitevi:%(ENV_CRYOSPARC_MONGO_PORT)s|g' ${CRYOSPARC_MASTER_DIR}/supervisord.conf
#sed -i 's|ROOT_URL="http://%(ENV_CRYOSPARC_MASTER_HOSTNAME)s:|ROOT_URL="http://cryosparc-fpoitevi:|g' ${CRYOSPARC_MASTER_DIR}/supervisord.conf #sed -i 's|ROOT_URL="http://%(ENV_CRYOSPARC_MASTER_HOSTNAME)s:|ROOT_URL="http://cryosparc-fpoitevi:|g' ${CRYOSPARC_MASTER_DIR}/supervisord.conf
#sed -i 's|file=%(ENV_CRYOSPARC_SUPERVISOR_SOCK_FILE)s|file=/lscratch/%(ENV_CRYOSPARC_SUPERVISOR_SOCK_FILE)s|g' ${CRYOSPARC_MASTER_DIR}/supervisord.conf
# envs # envs
THIS_USER=$(whoami) THIS_USER=$(whoami)
THIS_USER_SUFFIX=${USER_SUFFIX:-'slac.stanford.edu'} THIS_USER_SUFFIX=${USER_SUFFIX:-'slac.stanford.edu'}
ACCOUNT="${THIS_USER}@${THIS_USER_SUFFIX}" ACCOUNT="${THIS_USER}@${THIS_USER_SUFFIX}"
echo "Starting cryoSPARC in ${CRYOSPARC_MASTER_DIR} as ${THIS_USER}${THIS_USER_SUFFIx} with..."
SOCK_FILE=$(cryosparcm env | grep CRYOSPARC_SUPERVISOR_SOCK_FILE | sed 's/^.*CRYOSPARC_SUPERVISOR_SOCK_FILE=//' | sed 's/"//g')
rm -f "${SOCK_FILE}" || true rm -f "${SOCK_FILE}" || true
cryosparcm restart cryosparcm restart
# ensure that the mongo replset is correct # ensure that the mongo replset is correct
MONGO_PORT=$(( $CRYOSPARC_BASE_PORT + 1 )) MONGO_PORT=$(( $CRYOSPARC_BASE_PORT + 1 ))
mongo localhost:$MONGO_PORT <<EOF export CRYOSPARC_MONGO_EXTRA_FLAGS=" --unixSocketPrefix ${LSCRATCH}"
mongosh localhost:$MONGO_PORT <<EOF
cfg = rs.conf() cfg = rs.conf()
cfg.members[0].host = "localhost:$MONGO_PORT" cfg.members[0].host = "localhost:$MONGO_PORT"
rs.reconfig(cfg, { force: true } ) rs.reconfig(cfg, { force: true } )
...@@ -121,4 +127,12 @@ if [ "$CRYOSPARC_TAIL_LOGS" == "1" ]; then ...@@ -121,4 +127,12 @@ if [ "$CRYOSPARC_TAIL_LOGS" == "1" ]; then
done done
fi fi
###
# create firefox startup
###
export CRYOSPARC_BASE_PORT=$(cat $HOME/cryosparc/config.sh | awk '/CRYOSPARC_BASE_PORT/{ split($2,a,"="); print a[2] }')
echo "/usr/bin/firefox http://localhost:${CRYOSPARC_BASE_PORT}" > ${LSCRATCH}/cryosparc_launcher.sh
cp /cryosparc.desktop ${LSCRATCH}/cryosparc.desktop
chmod +x ${LSCRATCH}/cryosparc.desktop
cd ${HOME}/Desktop
ln -s ${LSCRATCH}/cryosparc.desktop "Launch CryoSPARC"
...@@ -149,11 +149,11 @@ fi ...@@ -149,11 +149,11 @@ fi
# ensure we have a cryosparc directory under home # ensure we have a cryosparc directory under home
export CRYOSPARC_DATADIR=${USER_HOMEDIR}/cryosparc-v2 export CRYOSPARC_DATADIR=${USER_HOMEDIR}/cryosparc
echo "Creating cryosparc datadir ${CRYOSPARC_DATADIR}..." echo "Creating cryosparc datadir ${CRYOSPARC_DATADIR}..."
mkdir -p ${CRYOSPARC_DATADIR} mkdir -p ${CRYOSPARC_DATADIR}
mkdir -p ${CRYOSPARC_DATADIR}/run mkdir -p ${CRYOSPARC_DATADIR}/run
mkdir -p ${CRYOSPARC_DATADIR}/cryosparc2_database mkdir -p ${CRYOSPARC_DATADIR}/cryosparc_database
if [[ ! -e "${CRYOSPARC_DATADIR}/config.sh" ]]; then if [[ ! -e "${CRYOSPARC_DATADIR}/config.sh" ]]; then
# copy config # copy config
...@@ -179,11 +179,11 @@ chown ${U_NAME} ${CRYOSPARC_WORKER_DIR}/ ...@@ -179,11 +179,11 @@ chown ${U_NAME} ${CRYOSPARC_WORKER_DIR}/
ls -lah ${CRYOSPARC_MASTER_DIR} ls -lah ${CRYOSPARC_MASTER_DIR}
# change code # change code
#sed -i 's: disk_has_space=.*: disk_has_space="true":g' /app/cryosparc2_master/bin/cryosparcm #sed -i 's: disk_has_space=.*: disk_has_space="true":g' /app/cryosparc_master/bin/cryosparcm
# gui changes # gui changes
#sed -i 's|"url": "/fonts/woff|"url": "/user/ytl/proxy/absolute/39000/fonts/woff/|g' /app/cryosparc2_master/cryosparc2_webapp/bundle/programs/web.browser/program.json #sed -i 's|"url": "/fonts/woff|"url": "/user/ytl/proxy/absolute/39000/fonts/woff/|g' /app/cryosparc_master/cryosparc_webapp/bundle/programs/web.browser/program.json
#chmod -R ugo+rwx /app/cryosparc2_master/cryosparc2_webapp/bundle/ #chmod -R ugo+rwx /app/cryosparc_master/cryosparc_webapp/bundle/
# down privs to user # down privs to user
exec ${sudo} /cryosparc.sh exec ${sudo} /cryosparc.sh
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
Exec=/usr/bin/firefox http://localhost:$(cat $HOME/cryosparc-v2/config.sh | awk '/CRYOSPARC_BASE_PORT/{ split($2,a,"="); print a[2] }') Exec=sh /tmp/cryosparc_launcher.sh
Hidden=false Hidden=false
X-GNOME-Autostart-enabled=true X-GNOME-Autostart-enabled=true
Name[en_US]=Firefox Name=CryoSPARC Launcher
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment