Switch from Ubuntu to Windows Server instructions: winget for Git/Node, Visual Studio Build Tools for better-sqlite3 native compilation, PM2 with pm2-windows-startup for persistence, and Windows Firewall rules. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
149 lines
2.9 KiB
Markdown
149 lines
2.9 KiB
Markdown
# 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://<your-vps-ip>: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 <your-ip> -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
|
|
```
|