STEP 01

Create Your VPS Server

Your bot needs a server that runs 24/7. DigitalOcean offers a $6/month cloud server (called a Droplet) that is perfect for Xiznit Bot.

1.1 — Create a DigitalOcean Account

Go to digitalocean.com and sign up. You can use a credit card or PayPal.

1.2 — Create a Droplet

  • Click Create in the top right → select Droplets
  • Choose the region closest to you
  • Under image, select Ubuntu 24.04 LTS
  • Under size, choose Basic → $6/month (1GB RAM)
  • Under authentication, choose Password and set a strong password
  • Click Create Droplet and wait ~60 seconds
  • Copy your Droplet's IP address — you'll need it shortly

1.3 — Connect to Your Server

Click the Console button in DigitalOcean to open a browser terminal. Log in with username root and the password you set.

💡

Tip: Save your IP address and root password somewhere safe. You'll need these every time you log in to manage the bot.

STEP 02

Run the Installer

One command installs everything automatically — Docker, the bot, and all dependencies. Replace YOUR_LICENSE_KEY with the key from your purchase email.

Paste this single command into your server terminal

bash
bash <(curl -s https://xiznit-bot.com/install-bot.sh) YOUR_LICENSE_KEY

The installer will: validate your license key, install Docker automatically if needed, download the bot image, and start it — all in one shot. Takes about 2 minutes.

When complete you'll see your Webhook URL printed on screen. Your bot is now running 24/7 and will auto-update whenever we release new versions.

Verify it's running (optional)

bash
docker ps

You should see xiznit-bot listed with status Up.

STEP 03

Set Up Broker API Keys

Choose your broker below. You only need to set up one. Both are supported — Alpaca for stocks & crypto, Tradier for stocks, options & futures.

📌

Alpaca supports stocks and crypto. Paper trading is completely free with no deposit required — perfect for testing.

  • Go to alpaca.markets and create a free account
  • Click Paper Trading in the left sidebar
  • Click Your API Keys on the right side
  • Click Generate New Key
  • Copy your API Key ID and Secret Key — save them somewhere safe, the secret is only shown once
  • For live trading, switch to Live Trading and repeat
📌

Tradier supports stocks, options, and futures. Free API access — no monthly fee for the API itself.

  • Go to tradier.com and create a free account
  • Complete identity verification (takes 1 business day)
  • Once approved, log in and go to Settings → API Access
  • Copy your Access Token — this is your TRADIER_TOKEN
  • Copy your Account ID from the top of your account page
  • For paper trading, use the Sandbox Token instead

⚠ Futures: Futures trading on Tradier requires a separate Tradier Futures account in addition to the standard brokerage account.

STEP 04

Add Your Broker API Keys

The installer created your config file at /opt/xiznit-bot/config.env. Open it and add your broker API keys, then restart the bot.

4.1 — Open the config file

bash
nano /opt/xiznit-bot/config.env

4.2 — Fill in your broker details

config.env
# Choose broker: tradovate, alpaca, or tradier BROKER=tradovate # demo = prop firms/sim, live = real money, paper = testing TRADING_MODE=demo # Alpaca keys (if using Alpaca) ALPACA_API_KEY=YOUR_ALPACA_API_KEY ALPACA_SECRET_KEY=YOUR_ALPACA_SECRET_KEY # Tradier keys (if using Tradier) TRADIER_TOKEN=YOUR_TRADIER_TOKEN TRADIER_ACCOUNT_ID=YOUR_ACCOUNT_ID

Save with Ctrl+X → Y → Enter

📌

Using Tradovate? Leave the API keys blank. After the bot starts, connect your Tradovate account via the dashboard at http://YOUR_SERVER_IP:8000.

4.3 — Restart the bot to apply changes

bash
docker compose -f /opt/xiznit-bot/docker-compose.yml restart

Your bot is now configured and running 24/7. It will auto-update whenever we release new versions — no action needed on your end.

STEP 05

Set Up TradingView Alerts

Configure TradingView to fire your strategy signals directly to your bot's webhook URL. This is where automation happens.

5.1 — Your Webhook URL

url
http://YOUR_SERVER_IP:8000/webhook

Replace YOUR_SERVER_IP with your DigitalOcean Droplet's IP address.

5.2 — Create a TradingView Alert

  • Open TradingView and load your strategy on a chart
  • Click the Alert button (clock icon) in the top toolbar
  • Set the Condition to your strategy signal
  • Under Actions, check Webhook URL
  • Paste your webhook URL into the field
  • Under Message, paste the JSON payload (see examples below)
  • Click Create

5.3 — Example Payloads

Basic buy order:

json
{ "ticker": "{{ticker}}", "action": "buy", "qty": 1 }

Full bracket order with TP and SL:

json
{ "ticker": "{{ticker}}", "action": "buy", "price": {{close}}, "qty": {{strategy.order.contracts}}, "sl": {{plot("Stop Loss")}}, "tp": "TP1", "strategy": "MyStrategy" }

Close all positions (EOD flatten):

json
{ "ticker": "{{ticker}}", "action": "close_all", "reason": "eod_flatten" }
STEP 06

Verify & Test

6.1 — Check Bot Health

Open a browser and go to:

url
http://YOUR_SERVER_IP:8000/health

You should see: {"status":"online","bot":"Xiznit-Trading-Bot"} — this confirms your bot is live.

6.2 — Send a Test Webhook

bash
curl -X POST http://YOUR_SERVER_IP:8000/webhook \ -H 'Content-Type: application/json' \ -d '{"ticker":"AAPL","action":"buy","price":150,"qty":1}'

You should get back: {"status":"received","broker_response":{...}}

6.3 — View Live Logs

bash
docker logs xiznit-bot -f
REF

JSON Field Reference

Only "ticker" and "action" are required. All other fields are optional.

Field Type Required Description
"ticker"stringYESTrading symbol (e.g. BTCUSDT, AAPL, MNQ1!)
"action"stringYESTrade action: buy, sell, close, close_all, exit, update_sl
"price"numberoptionalCurrent price. Use {{close}} in TradingView. Logged only.
"qty"numberoptionalNumber of shares/contracts. Defaults to bot preset if omitted.
"lots"numberoptionalAlternative to qty. Some strategies use "lots" instead.
"sl"numberoptionalStop loss price. Used with update_sl action.
"tp"stringoptionalTake profit level: "TP1", "TP2", or "TP3". Used with exit action.
"reason"stringoptionalClose reason: eod_flatten, sl, max_duration, weekend_gap, blackout
"side"stringoptionalExplicit side override: "buy" or "sell"
"comment"stringoptionalStrategy label. Logged but not acted on.
"strategy"stringoptionalStrategy name for logging purposes.
"interval"stringoptionalTimeframe label (e.g. "15m", "1h"). Logged only.
REF

Commands Reference

docker ps
Check if bot is running
docker logs xiznit-bot
View bot activity log
docker logs xiznit-bot -f
Watch live bot activity
docker-compose restart
Restart the bot
docker-compose down
Stop the bot
docker-compose up -d
Start the bot
docker-compose pull
Update to latest version
docker-compose up -d --force-recreate
Force restart with latest image
REF

Troubleshooting

Bot won't start

Check your license key is correct in config.env. Run docker logs xiznit-bot to see the error message.

Orders not executing

Check your API keys are correct. Make sure TRADING_MODE matches your account type (paper vs live). Verify your broker account is active and funded if using live mode.

TradingView alerts not firing

Make sure your webhook URL is correct and includes the correct IP address. Check that port 8000 is open on your server. Verify your JSON payload is valid using a JSON validator.

Invalid license key error

Email support@xiznit-bot.com with your license key and order confirmation and we'll verify it within 24 hours.

Bot stopped unexpectedly

Run docker-compose up -d to restart. The restart: always setting means this should happen automatically after server reboots.

Download the PDF Guide

Prefer a printable version? Download the complete setup guide as a PDF.

↓ Download PDF Guide
💬
Support