# AutoFirmer Automated futures trading dashboard for prop firm accounts via Tradovate. --- ## VPS Setup (Windows Server 2019 / 2022) All commands are run in **PowerShell** (run as Administrator). ### 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+ ```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 Windows Build Tools (required for better-sqlite3) `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 ```powershell git clone https://github.com/Senofy/autofirmer.git cd autofirmer ``` ### 5. Install dependencies ```powershell npm install ``` ### 6. Build ```powershell npm run build ``` ### 7. Run **Development (with hot reload):** ```powershell npm run dev ``` **Production:** ```powershell npm start ``` The app runs on **port 3000**. Access it at `http://:3000`. --- ## First-time setup On first run, the SQLite database (`autotrader.sqlite`) is created automatically in the project root. No migrations need to be run manually. Open the app in your browser and add your firms through the UI: 1. Click **+ Add Firm** on the main page 2. Enter the firm name, Tradovate username, and password 3. Go to the firm's **Settings** page to configure account types (prefix, profit target, consistency %, etc.) 4. Return to the main page — accounts will populate once the firm connects to Tradovate --- ## Keeping it running (PM2) 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 install ``` To restart after pulling updates: ```powershell cd C:\path\to\autofirmer git pull npm install npm run build pm2 restart autofirmer ``` --- ## Firewall To restrict port 3000 to a specific trusted IP only: ```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 ```powershell cd C:\path\to\autofirmer git pull npm install # only needed if dependencies changed npm run build pm2 restart autofirmer ```