diff --git a/install/tracktor-install.sh b/install/tracktor-install.sh new file mode 100644 index 000000000..1111a698d --- /dev/null +++ b/install/tracktor-install.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash + +# Copyright (c) 2025 Community Scripts ORG +# Author: CrazyWolf13 +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://tracktor.bytedge.in + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +setup_nodejs +fetch_and_deploy_gh_release "tracktor" "javedh-dev/tracktor" "tarball" "latest" "/opt/tracktor" + +msg_info "Configuring Tracktor" +cd /opt/tracktor +$STD npm install +$STD npm run build +mkdir -p /opt/tracktor-data/uploads +mkdir -p /opt/tracktor-data/logs +HOST_IP=$(hostname -I | awk '{print $1}') +cat </opt/tracktor.env +NODE_ENV=production +DB_PATH=/opt/tracktor-data/tracktor.db +UPLOADS_DIR="/opt/tracktor-data/uploads" +LOG_DIR="/opt/tracktor-data/logs" +# If server host is not set by default it will run on all interfaces - `0.0.0.0` +SERVER_HOST="" +SERVER_PORT=3000 +PORT=3000 +# CORS_ORIGINS="*" // Set this if you want to secure your endpoints otherwise default will be "*" +# PUBLIC_API_BASE_URL="" // Set this if you are using backend and frontend separately. For lxc installation this is not needed +LOG_REQUESTS=true +LOG_LEVEL="info" +AUTH_PIN=123456 +# PUBLIC_DEMO_MODE=false +# FORCE_DATA_SEED=false +EOF +msg_ok "Configured Tracktor" + +msg_info "Creating service" +cat </etc/systemd/system/tracktor.service +[Unit] +Description=Tracktor Service +After=network.target + +[Service] +Type=simple +WorkingDirectory=/opt/tracktor +EnvironmentFile=/opt/tracktor.env +ExecStart=/usr/bin/npm start + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now tracktor +msg_ok "Created service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt -y autoremove +$STD apt -y autoclean +$STD apt -y clean +msg_ok "Cleaned"