diff --git a/ct/manyfold.sh b/ct/manyfold.sh index 88e67bb5e..1077ccb54 100644 --- a/ct/manyfold.sh +++ b/ct/manyfold.sh @@ -20,44 +20,44 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/manyfold ]]; then - msg_error "No ${APP} Installation Found!" - exit - fi + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/manyfold ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi - if check_for_gh_release "manyfold" "manyfold3d/manyfold"; then - msg_info "Stopping Services" - systemctl stop manyfold.target manyfold-rails.1 manyfold-default_worker.1 manyfold-performance_worker.1 - msg_ok "Stopped Services" + if check_for_gh_release "manyfold" "manyfold3d/manyfold"; then + msg_info "Stopping Services" + systemctl stop manyfold.target manyfold-rails.1 manyfold-default_worker.1 manyfold-performance_worker.1 + msg_ok "Stopped Services" - msg_info "Backing up Data" - CURRENT_VERSION=$(grep -oP 'APP_VERSION=\K[^ ]+' /opt/manyfold/.env || echo "unknown") - cp -r /opt/manyfold/app/storage /opt/manyfold_storage_backup 2>/dev/null || true - cp -r /opt/manyfold/app/tmp /opt/manyfold_tmp_backup 2>/dev/null || true - cp /opt/manyfold/app/config/credentials.yml.enc /opt/manyfold_credentials.yml.enc 2>/dev/null || true - cp /opt/manyfold/app/config/master.key /opt/manyfold_master.key 2>/dev/null || true - $STD tar -czf "/opt/manyfold_${CURRENT_VERSION}_backup.tar.gz" -C /opt/manyfold app - msg_ok "Backed up Data" + msg_info "Backing up Data" + CURRENT_VERSION=$(grep -oP 'APP_VERSION=\K[^ ]+' /opt/manyfold/.env || echo "unknown") + cp -r /opt/manyfold/app/storage /opt/manyfold_storage_backup 2>/dev/null || true + cp -r /opt/manyfold/app/tmp /opt/manyfold_tmp_backup 2>/dev/null || true + cp /opt/manyfold/app/config/credentials.yml.enc /opt/manyfold_credentials.yml.enc 2>/dev/null || true + cp /opt/manyfold/app/config/master.key /opt/manyfold_master.key 2>/dev/null || true + $STD tar -czf "/opt/manyfold_${CURRENT_VERSION}_backup.tar.gz" -C /opt/manyfold app + msg_ok "Backed up Data" - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "manyfold" "manyfold3d/manyfold" "tarball" "latest" "/opt/manyfold/app" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "manyfold" "manyfold3d/manyfold" "tarball" "latest" "/opt/manyfold/app" - msg_info "Configuring Manyfold" - RUBY_INSTALL_VERSION=$(cat /opt/manyfold/app/.ruby-version) - YARN_VERSION=$(grep '"packageManager":' /opt/manyfold/app/package.json | sed -E 's/.*"(yarn@[0-9\.]+)".*/\1/') - RELEASE=$(get_latest_github_release "manyfold3d/manyfold") - sed -i "s/^export APP_VERSION=.*/export APP_VERSION=$RELEASE/" "/opt/manyfold/.env" - msg_ok "Configured Manyfold" + msg_info "Configuring Manyfold" + RUBY_INSTALL_VERSION=$(cat /opt/manyfold/app/.ruby-version) + YARN_VERSION=$(grep '"packageManager":' /opt/manyfold/app/package.json | sed -E 's/.*"(yarn@[0-9\.]+)".*/\1/') + RELEASE=$(get_latest_github_release "manyfold3d/manyfold") + sed -i "s/^export APP_VERSION=.*/export APP_VERSION=$RELEASE/" "/opt/manyfold/.env" + msg_ok "Configured Manyfold" - RUBY_VERSION=${RUBY_INSTALL_VERSION} RUBY_INSTALL_RAILS="true" HOME=/home/manyfold setup_ruby + RUBY_VERSION=${RUBY_INSTALL_VERSION} RUBY_INSTALL_RAILS="true" HOME=/home/manyfold setup_ruby - msg_info "Installing Manyfold" - chown -R manyfold:manyfold /home/manyfold/.rbenv - chown -R manyfold:manyfold /opt/manyfold + msg_info "Installing Manyfold" + chown -R manyfold:manyfold {/home/manyfold,/opt/manyfold} + chown -R manyfold:manyfold /opt/manyfold - sudo -u manyfold bash -c ' + sudo -u manyfold bash -c ' source /opt/manyfold/.env export PATH="/home/manyfold/.rbenv/bin:$PATH" eval "$(/home/manyfold/.rbenv/bin/rbenv init - bash)" @@ -70,31 +70,31 @@ function update_script() { bin/rails db:migrate bin/rails assets:precompile ' - msg_ok "Installed Manyfold" + msg_ok "Installed Manyfold" - msg_info "Restoring Data" - rm -rf /opt/manyfold/app/{storage,tmp,config/credentials.yml.enc,config/master.key} - cp -r /opt/manyfold_storage_backup /opt/manyfold/app/storage 2>/dev/null || true - cp -r /opt/manyfold_tmp_backup /opt/manyfold/app/tmp 2>/dev/null || true - cp /opt/manyfold_credentials.yml.enc /opt/manyfold/app/config/credentials.yml.enc 2>/dev/null || true - cp /opt/manyfold_master.key /opt/manyfold/app/config/master.key 2>/dev/null || true - chown -R manyfold:manyfold /opt/manyfold/app/storage /opt/manyfold/app/tmp /opt/manyfold/app/config - rm -rf /opt/manyfold_storage_backup /opt/manyfold_tmp_backup /opt/manyfold_credentials.yml.enc /opt/manyfold_master.key - msg_ok "Restored Data" + msg_info "Restoring Data" + rm -rf /opt/manyfold/app/{storage,tmp,config/credentials.yml.enc,config/master.key} + cp -r /opt/manyfold_storage_backup /opt/manyfold/app/storage 2>/dev/null || true + cp -r /opt/manyfold_tmp_backup /opt/manyfold/app/tmp 2>/dev/null || true + cp /opt/manyfold_credentials.yml.enc /opt/manyfold/app/config/credentials.yml.enc 2>/dev/null || true + cp /opt/manyfold_master.key /opt/manyfold/app/config/master.key 2>/dev/null || true + chown -R manyfold:manyfold /opt/manyfold/app/storage /opt/manyfold/app/tmp /opt/manyfold/app/config + rm -rf /opt/manyfold_storage_backup /opt/manyfold_tmp_backup /opt/manyfold_credentials.yml.enc /opt/manyfold_master.key + msg_ok "Restored Data" - msg_info "Restarting Services" - source /opt/manyfold/.env - export PATH="/home/manyfold/.rbenv/shims:/home/manyfold/.rbenv/bin:$PATH" - $STD foreman export systemd /etc/systemd/system -a manyfold -u manyfold -f /opt/manyfold/app/Procfile - for f in /etc/systemd/system/manyfold-*.service; do - sed -i "s|/bin/bash -lc '|/bin/bash -lc 'source /opt/manyfold/.env \&\& |" "$f" - done - systemctl daemon-reload - systemctl enable -q --now manyfold.target manyfold-rails.1 manyfold-default_worker.1 manyfold-performance_worker.1 - msg_ok "Restarted Services" - msg_ok "Updated successfully!" - fi - exit + msg_info "Restarting Services" + source /opt/manyfold/.env + export PATH="/home/manyfold/.rbenv/shims:/home/manyfold/.rbenv/bin:$PATH" + $STD foreman export systemd /etc/systemd/system -a manyfold -u manyfold -f /opt/manyfold/app/Procfile + for f in /etc/systemd/system/manyfold-*.service; do + sed -i "s|/bin/bash -lc '|/bin/bash -lc 'source /opt/manyfold/.env \&\& |" "$f" + done + systemctl daemon-reload + systemctl enable -q --now manyfold.target manyfold-rails.1 manyfold-default_worker.1 manyfold-performance_worker.1 + msg_ok "Restarted Services" + msg_ok "Updated successfully!" + fi + exit } start diff --git a/install/manyfold-install.sh b/install/manyfold-install.sh index 5e6718e0b..0c59540e4 100644 --- a/install/manyfold-install.sh +++ b/install/manyfold-install.sh @@ -15,12 +15,12 @@ update_os msg_info "Installing Dependencies" $STD apt install -y \ - libarchive-dev \ - git \ - libmariadb-dev \ - redis-server \ - nginx \ - libassimp-dev + libarchive-dev \ + git \ + libmariadb-dev \ + redis-server \ + nginx \ + libassimp-dev msg_ok "Installed Dependencies" setup_imagemagick @@ -78,8 +78,7 @@ $STD mkdir -p /opt/manyfold_data msg_ok "Configured Manyfold" msg_info "Installing Manyfold" -chown -R manyfold:manyfold /home/manyfold/.rbenv -chown -R manyfold:manyfold /opt/manyfold +chown -R manyfold:manyfold {/home/manyfold,/opt/manyfold} chmod +x /opt/manyfold/user_setup.sh $STD npm install --global corepack $STD sudo -u manyfold bash /opt/manyfold/user_setup.sh @@ -91,7 +90,7 @@ source /opt/manyfold/.env export PATH="/home/manyfold/.rbenv/shims:/home/manyfold/.rbenv/bin:$PATH" $STD foreman export systemd /etc/systemd/system -a manyfold -u manyfold -f /opt/manyfold/app/Procfile for f in /etc/systemd/system/manyfold-*.service; do - sed -i "s|/bin/bash -lc '|/bin/bash -lc 'source /opt/manyfold/.env \&\& |" "$f" + sed -i "s|/bin/bash -lc '|/bin/bash -lc 'source /opt/manyfold/.env \&\& |" "$f" done systemctl enable -q --now manyfold.target manyfold-rails.1 manyfold-default_worker.1 manyfold-performance_worker.1 cat </etc/nginx/sites-available/manyfold.conf