diff --git a/ct/jotty.sh b/ct/jotty.sh new file mode 100644 index 000000000..45f09f8ef --- /dev/null +++ b/ct/jotty.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: vhsdream +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/fccview/jotty + +APP="jotty" +var_tags="${var_tags:-tasks;notes}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-3072}" +var_disk="${var_disk:-6}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +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/jotty ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "jotty" "fccview/jotty"; then + msg_info "Stopping Service" + systemctl stop jotty + msg_ok "Stopped Service" + + msg_info "Backing up configuration & data" + cd /opt/jotty + cp ./.env /opt/app.env + $STD tar -cf /opt/data_config.tar ./data ./config + msg_ok "Backed up configuration & data" + + NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jotty" "fccview/jotty" "tarball" "latest" "/opt/jotty" + + msg_info "Updating app" + cd /opt/jotty + $STD yarn --frozen-lockfile + $STD yarn next telemetry disable + $STD yarn build + msg_ok "Updated app" + + msg_info "Restoring configuration & data" + mv /opt/app.env /opt/jotty/.env + $STD tar -xf /opt/data_config.tar + msg_ok "Restored configuration & data" + + msg_info "Restarting ${APP} service" + systemctl start jotty + msg_ok "Restarted ${APP} service" + rm /opt/data_config.tar + 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 "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/ct/rwmarkable.sh b/ct/rwmarkable.sh index 31f32aa53..e0cd7382d 100644 --- a/ct/rwmarkable.sh +++ b/ct/rwmarkable.sh @@ -29,38 +29,41 @@ function update_script() { exit fi - if check_for_gh_release "rwMarkable" "fccview/rwMarkable"; then - msg_info "Stopping Service" - systemctl stop rwmarkable - msg_ok "Stopped Service" + msg_info "Stopping service" + systemctl -q disable --now rwmarkable + msg_ok "Stopped Service" - msg_info "Backing up configuration & data" - cd /opt/rwmarkable - cp ./.env /opt/app.env - $STD tar -cf /opt/data_config.tar ./data ./config - msg_ok "Backed up configuration & data" + NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jotty" "fccview/jotty" "tarball" "latest" "/opt/jotty" - NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs - CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rwMarkable" "fccview/rwMarkable" "tarball" "latest" "/opt/rwmarkable" + msg_info "Updating app" + cd /opt/jotty + $STD yarn --frozen-lockfile + $STD yarn next telemetry disable + $STD yarn build + msg_ok "Updated app" - msg_info "Updating app" - cd /opt/rwmarkable - $STD yarn --frozen-lockfile - $STD yarn next telemetry disable - $STD yarn build - msg_ok "Updated app" + msg_info "Migrating configuration & data" + cp /opt/rwmarkable/.env /opt/jotty/.env + mkdir -p /opt/jotty/data + cp -r /opt/rwmarkable/data/* /opt/jotty/data + cp -r /opt/rwmarkable/config/* /opt/jotty/config + msg_ok "Migrated configuration & data" - msg_info "Restoring configuration & data" - mv /opt/app.env /opt/rwmarkable/.env - $STD tar -xf /opt/data_config.tar - msg_ok "Restored configuration & data" + msg_info "Patching systemd service file" + sed -i 's/rw[M|m]arkable/jotty/g' /etc/systemd/system/rwmarkable.service + mv /etc/systemd/system/rwmarkable.service /etc/systemd/system/jotty.service + systemctl daemon-reload + msg_ok "Patched systemd service file" - msg_info "Restarting ${APP} service" - systemctl start rwmarkable - msg_ok "Restarted ${APP} service" - rm /opt/data_config.tar - msg_ok "Updated Successfully" - fi + msg_info "Patching update script" + sed -i 's/rwmarkable/jotty/g' /usr/bin/update + msg_ok "Patched update script" + + msg_info "Starting jotty service" + systemctl -q enable --now jotty + msg_ok "Started jotty service" + msg_ok "Migrated Successfully!" exit } diff --git a/frontend/public/json/jotty.json b/frontend/public/json/jotty.json new file mode 100644 index 000000000..72022e693 --- /dev/null +++ b/frontend/public/json/jotty.json @@ -0,0 +1,40 @@ +{ + "name": "jotty", + "slug": "jotty", + "categories": [ + 12 + ], + "date_created": "2025-10-09", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/fccview/jotty/blob/main/README.md", + "website": "https://github.com/fccview/jotty", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/jotty.webp", + "config_path": "/opt/jotty/.env", + "description": "A simple, self-hosted app for your checklists and notes. Tired of bloated, cloud-based to-do apps? jotty is a lightweight alternative for managing your personal checklists and notes. It's built with Next.js 14, is easy to deploy, and keeps all your data on your own server.", + "install_methods": [ + { + "type": "default", + "script": "ct/jotty.sh", + "resources": { + "cpu": 2, + "ram": 3072, + "hdd": 6, + "os": "debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "jotty was previously named rwMarkable", + "type": "info" + } + ] +} diff --git a/frontend/public/json/rwmarkable.json b/frontend/public/json/rwmarkable.json deleted file mode 100644 index 5f724ce2d..000000000 --- a/frontend/public/json/rwmarkable.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "rwMarkable", - "slug": "rwmarkable", - "categories": [ - 12 - ], - "date_created": "2025-10-09", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/fccview/rwMarkable/blob/main/README.md", - "website": "https://github.com/fccview/rwMarkable", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/rwmarkable.webp", - "config_path": "/opt/rwmarkable/.env", - "description": "A simple, self-hosted app for your checklists and notes. Tired of bloated, cloud-based to-do apps? rwMarkable is a lightweight alternative for managing your personal checklists and notes. It's built with Next.js 14, is easy to deploy, and keeps all your data on your own server.", - "install_methods": [ - { - "type": "default", - "script": "ct/rwmarkable.sh", - "resources": { - "cpu": 2, - "ram": 3072, - "hdd": 6, - "os": "debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} diff --git a/install/rwmarkable-install.sh b/install/jotty-install.sh similarity index 76% rename from install/rwmarkable-install.sh rename to install/jotty-install.sh index afba71011..7f46ae4f1 100644 --- a/install/rwmarkable-install.sh +++ b/install/jotty-install.sh @@ -3,7 +3,7 @@ # Copyright (c) 2021-2025 community-scripts ORG # Author: vhsdream # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE -# Source: https://github.com/fccview/rwMarkable +# Source: https://github.com/fccview/jotty source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color @@ -14,16 +14,16 @@ network_check update_os NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs -fetch_and_deploy_gh_release "rwMarkable" "fccview/rwMarkable" "tarball" "latest" "/opt/rwmarkable" +fetch_and_deploy_gh_release "jotty" "fccview/jotty" "tarball" "latest" "/opt/jotty" msg_info "Installing ${APPLICATION}" -cd /opt/rwmarkable +cd /opt/jotty $STD yarn --frozen-lockfile $STD yarn next telemetry disable $STD yarn build mkdir -p data/{users,checklists,notes} -cat </opt/rwmarkable/.env +cat </opt/jotty/.env NODE_ENV=production # HTTPS=true @@ -39,21 +39,21 @@ EOF msg_ok "Installed ${APPLICATION}" msg_info "Creating Service" -cat </etc/systemd/system/rwmarkable.service +cat </etc/systemd/system/jotty.service [Unit] -Description=rwMarkable server +Description=jotty server After=network.target [Service] -WorkingDirectory=/opt/rwmarkable -EnvironmentFile=/opt/rwmarkable/.env +WorkingDirectory=/opt/jotty +EnvironmentFile=/opt/jotty/.env ExecStart=yarn start Restart=on-abnormal [Install] WantedBy=multi-user.target EOF -systemctl enable -q --now rwmarkable +systemctl enable -q --now jotty msg_ok "Created Service" motd_ssh