diff --git a/ct/headers/sync-in b/ct/headers/sync-in new file mode 100644 index 000000000..f5ae41c66 --- /dev/null +++ b/ct/headers/sync-in @@ -0,0 +1,6 @@ + _____ _ + / ___/__ ______ _____ (_)___ + \__ \/ / / / __ \/ ___/_____/ / __ \ + ___/ / /_/ / / / / /__/_____/ / / / / +/____/\__, /_/ /_/\___/ /_/_/ /_/ + /____/ diff --git a/ct/sync-in.sh b/ct/sync-in.sh new file mode 100644 index 000000000..4b43c6dd4 --- /dev/null +++ b/ct/sync-in.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2026 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/Sync-in/server + +APP="Sync-in" +var_tags="${var_tags:-files;sync;collaboration}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-20}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +var_arm64="${var_arm64:-yes}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -d /opt/sync-in/node_modules/@sync-in ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "sync-in" "Sync-in/server"; then + msg_info "Stopping Service" + systemctl stop sync-in + msg_ok "Stopped Service" + + msg_info "Updating Sync-in" + $STD npm install --prefix /opt/sync-in "@sync-in/server@${CHECK_UPDATE_RELEASE#v}" + msg_ok "Updated Sync-in" + + msg_info "Running Database Migrations" + cd /opt/sync-in + $STD npx sync-in-server migrate-db + msg_ok "Ran Database Migrations" + + VERSION=$(node -pe "require('/opt/sync-in/node_modules/@sync-in/server/package.json').version" 2>/dev/null || echo "") + [[ -n "$VERSION" ]] && echo "$VERSION" >~/.sync-in + + msg_info "Starting Service" + systemctl start sync-in + msg_ok "Started Service" + msg_ok "Updated successfully!" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW}Access it using the following URL:${CL}" +echo -e "${GATEWAY}${BGN}http://${IP}:8080${CL}" diff --git a/install/sync-in-install.sh b/install/sync-in-install.sh new file mode 100644 index 000000000..0550fecca --- /dev/null +++ b/install/sync-in-install.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/Sync-in/server + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +NODE_VERSION="22" setup_nodejs +setup_mariadb +MARIADB_DB_NAME="sync_in" MARIADB_DB_USER="sync_in" setup_mariadb_db + +msg_info "Installing Sync-in" +mkdir -p /opt/sync-in/data +$STD npm install --prefix /opt/sync-in @sync-in/server +msg_ok "Installed Sync-in" + +msg_info "Configuring Sync-in" +ENCRYPT_KEY=$(openssl rand -hex 32) +ACCESS_SECRET=$(openssl rand -hex 32) +REFRESH_SECRET=$(openssl rand -hex 32) +cat </opt/sync-in/environment.yaml +server: + port: 8080 +mysql: + url: 'mysql://${MARIADB_DB_USER}:${MARIADB_DB_PASS}@localhost:3306/${MARIADB_DB_NAME}' +auth: + encryptionKey: '${ENCRYPT_KEY}' + token: + access: + secret: '${ACCESS_SECRET}' + refresh: + secret: '${REFRESH_SECRET}' +applications: + files: + dataPath: '/opt/sync-in/data' +EOF +msg_ok "Configured Sync-in" + +msg_info "Running Database Migrations" +cd /opt/sync-in +$STD npx sync-in-server migrate-db +msg_ok "Ran Database Migrations" + +msg_info "Creating Admin User" +cd /opt/sync-in +$STD npx sync-in-server create-user +msg_ok "Created Admin User" + +VERSION=$(node -pe "require('/opt/sync-in/node_modules/@sync-in/server/package.json').version" 2>/dev/null || echo "") +[[ -n "$VERSION" ]] && echo "$VERSION" >~/.sync-in + +msg_info "Creating Service" +cat </etc/systemd/system/sync-in.service +[Unit] +Description=Sync-in Server +After=network.target mariadb.service + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/sync-in +ExecStart=/opt/sync-in/node_modules/.bin/sync-in-server start +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now sync-in +msg_ok "Created Service" + +motd_ssh +customize +cleanup_lxc