#!/usr/bin/env bash # Copyright (c) 2021-2026 community-scripts ORG # Author: Slaviša Arežina (tremor021) # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://joplinapp.org/ source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color verb_ip6 catch_errors setting_up_container network_check update_os msg_info "Installing Dependencies" $STD apt install -y \ git \ rsync msg_ok "Installed Dependencies" PG_VERSION="17" setup_postgresql PG_DB_NAME="joplin" PG_DB_USER="joplin" setup_postgresql_db NODE_VERSION=24 NODE_MODULE="yarn,npm,pm2" setup_nodejs mkdir -p /opt/pm2 export PM2_HOME=/opt/pm2 $STD pm2 install pm2-logrotate $STD pm2 set pm2-logrotate:max_size 100MB $STD pm2 set pm2-logrotate:retain 5 $STD pm2 set pm2-logrotate:compress tr fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" import_local_ip msg_info "Setting up Joplin Server (Patience)" cd /opt/joplin-server/packages/server sed -i "/onenote-converter/d" /opt/joplin-server/packages/lib/package.json $STD yarn config set --home enableTelemetry 0 $STD yarn install $STD yarn build cat </opt/joplin-server/.env PM2_HOME=/opt/pm2 NODE_ENV=production APP_BASE_URL=http://$LOCAL_IP:22300 APP_PORT=22300 DB_CLIENT=pg POSTGRES_PASSWORD=$PG_DB_PASS POSTGRES_DATABASE=$PG_DB_NAME POSTGRES_PORT=5432 POSTGRES_HOST=localhost EOF msg_ok "Setup Joplin Server" msg_info "Setting up Service" cat </etc/systemd/system/joplin-server.service [Unit] Description=Joplin Server Service After=network.target [Service] Type=simple WorkingDirectory=/opt/joplin-server/packages/server EnvironmentFile=/opt/joplin-server/.env ExecStart=/usr/bin/yarn start-prod Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF systemctl enable -q --now joplin-server msg_ok "Service Setup" motd_ssh customize cleanup_lxc