diff --git a/README.md b/README.md index cfa8e6f..ac4f9e4 100644 --- a/README.md +++ b/README.md @@ -4,60 +4,77 @@ Automated futures trading dashboard for prop firm accounts via Tradovate. --- -## VPS Setup (Ubuntu 22.04 / 24.04) +## VPS Setup (Windows Server 2019 / 2022) -### 1. Update the system +All commands are run in **PowerShell** (run as Administrator). -```bash -apt update && apt upgrade -y +### 1. Install Git + +Download and install from https://git-scm.com/download/win, or via winget: + +```powershell +winget install --id Git.Git -e --source winget ``` +Restart PowerShell after installing so `git` is on the PATH. + ### 2. Install Node.js 22+ -```bash -curl -fsSL https://deb.nodesource.com/setup_22.x | bash - -apt install -y nodejs +```powershell +winget install --id OpenJS.NodeJS.LTS -e --source winget +``` + +Restart PowerShell, then verify: + +```powershell node --version # should be v22.x or higher +npm --version ``` -### 3. Install build tools (required for better-sqlite3 native module) +### 3. Install Windows Build Tools (required for better-sqlite3) -```bash -apt install -y build-essential python3 +`better-sqlite3` compiles a native C++ module and needs the Visual Studio build tools: + +```powershell +npm install -g windows-build-tools ``` +If that fails on newer Node, install manually: +- Download **Build Tools for Visual Studio** from https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022 +- During install, select **"Desktop development with C++"** + ### 4. Clone the repo -```bash +```powershell git clone https://github.com/Senofy/autofirmer.git cd autofirmer ``` ### 5. Install dependencies -```bash +```powershell npm install ``` ### 6. Build -```bash +```powershell npm run build ``` ### 7. Run **Development (with hot reload):** -```bash +```powershell npm run dev ``` **Production:** -```bash +```powershell npm start ``` -The app runs on **port 3000** by default. Access it at `http://:3000`. +The app runs on **port 3000**. Access it at `http://:3000`. --- @@ -76,15 +93,26 @@ Open the app in your browser and add your firms through the UI: ## Keeping it running (PM2) -```bash +Install PM2 globally: + +```powershell npm install -g pm2 +npm install -g pm2-windows-startup +``` + +Start the app and save the process list: + +```powershell +cd C:\path\to\autofirmer pm2 start "npm start" --name autofirmer pm2 save -pm2 startup # follow the printed command to enable on reboot +pm2-startup install ``` To restart after pulling updates: -```bash + +```powershell +cd C:\path\to\autofirmer git pull npm install npm run build @@ -95,19 +123,24 @@ pm2 restart autofirmer ## Firewall -If you only need local/trusted access, restrict port 3000: +To restrict port 3000 to a specific trusted IP only: -```bash -ufw allow ssh -ufw allow from to any port 3000 -ufw enable +```powershell +New-NetFirewallRule -DisplayName "AutoFirmer" -Direction Inbound -Protocol TCP -LocalPort 3000 -RemoteAddress -Action Allow +``` + +Or open it to all inbound (less secure): + +```powershell +New-NetFirewallRule -DisplayName "AutoFirmer" -Direction Inbound -Protocol TCP -LocalPort 3000 -Action Allow ``` --- ## Updating -```bash +```powershell +cd C:\path\to\autofirmer git pull npm install # only needed if dependencies changed npm run build