For the complete documentation index, see llms.txt. This page is also available as Markdown.

Raspberry Pi

OpenAlgo on Raspberry Pi: Setup Guide

This guide helps you install and configure OpenAlgo on Raspberry Pi models 3, 4, or 5 (4GB+ RAM), preferably running Ubuntu 24.04+ server edition.

Hardware & OS Recommendations

  • Raspberry Pi Model: 3, 4, or 5 (minimum 4GB RAM)

  • SD Card: Recommended 128GB; minimum 64GB

  • Operating System: Ubuntu 24.04+ Server edition (preferred)

  • RPi official power adapter: Recommended to buy for stable power supply and avoid RPi abrupt shutdowns and restarts. Get Ubuntu images for Raspberry Pi

Initial System Preparation

1. Flash OS to SD Card

  • Use Raspberry Pi Imager to prepare your SD card.

  • Configure initial user, password, Wi-Fi details, etc.

2. First Boot & Access

  • Insert SD card, power on Raspberry Pi.

  • Connect HDMI to monitor/TV and USB keyboard or get the private IP from your router/AP and SSH to RPi instance :

3. Setup Swap

  • Recommend swap size: max 4GB, min 2GB

OpenAlgo Installation

Option 1: Using Official Install Script

  • Follow the script prompts. (Typically involves downloading, running the script, and entering your details.)

1. Install Docker (Ubuntu/ARM)

Docker Ubuntu install guide

2. Install Docker Buildx for ARM

docker buildx version

If not present, follow: https://docs.docker.com/buildx/working-with-buildx/#install-buildx

3. Get nginx Docker Image (reverse proxy)

docker pull nginx:latest

4. Clone the OpenAlgo Repo

5. Build OpenAlgo Docker Image

docker build -t openalgo:latest .

6. Configure Environment

  • Copy .sample.env as .env and fill in broker API key, secret, and client ID

7. Use docker-compose.yaml

  • Edit/verify docker-compose.yaml inside /openalgo

  • If you have built the docker image in the previous step, you can comment the build: block and its nested keys (using #) in docker-compose.yaml.

  • Launch services:

    Use the docker compose subcommand (Compose v2). The standalone docker-compose v1 binary is end of life and is not installed by the get-docker.sh script above.

8. Configure Nginx Reverse Proxy

  • Typical location blocks for nginx. OpenAlgo publishes two ports, so you need both: the Flask app on 5000 and the WebSocket proxy on 8765. Without the /ws block the dashboard loads but live prices never update.

  • Do not add Upgrade / Connection "upgrade" headers to the location / { block. Doing so sends every ordinary request upstream with a bogus upgrade header, which breaks HTTP/1.1 keep-alive to Gunicorn and shows up as intermittent failures. Only the /ws, /ws/ and /socket.io/ blocks need them.

  • Then set the matching values in .env so the browser is told the right address, and so OpenAlgo trusts the forwarded client IP:

    Leave ZMQ_HOST on 127.0.0.1. It is the unauthenticated internal tick bus and must never be reachable off the host.

  • Adapt your domain/server settings accordingly.

I prefer to separate out the runtime files and folders from the github cloned folder and keep them separate. So if you build the docker image as in above step #5, you can very well take the docker-compose.yaml in a separate working folder structure and have your own versions of .env file.

  • Create and mount volumes under /work for logs, keys, strategies, etc.

  • Update docker-compose.yaml example. The application lives at /app inside the container, so the container-side path of every bind mount must start with /app:

    Mounting to /openalgo/... writes to a directory the application never reads, so nothing persists. The shipped docker-compose.yaml uses named volumes for these same five paths; replace them with bind mounts only if you want the files visible on the host filesystem.

Securing your setup

A. Basic Server Protection (iptables, fail2ban)

1. Install iptables

2. Install fail2ban

B. Using Cloudflare for Reverse Proxy & Security

  • Register at Cloudflare.

  • Add Your Domain:

    • Point your domain's DNS to Cloudflare's nameservers.

    • Set up proxy status for your domain so Cloudflare sits between users and your Pi.

  • HTTPS and SSL:

    • Use Cloudflare’s “Flexible SSL” or, for end-to-end encryption, generate origin certificates on Cloudflare and install them behind Nginx.

  • Firewall Rules & Monitoring:

  • Analytics & DDoS Protection:

    • Monitor connection health and traffic patterns through Cloudflare Analytics.


Useful References

OpenAlgo is now ready on your Raspberry Pi! Start building and deploying your trading strategies.

Last updated