Install CryptoByPlan on Raspberry Pi

CryptoByPlan logoCryptoByPlanBITVAVO TRADING CO-PILOT

Raspberry Pi / Linux ARM64

Install on Raspberry Pi

Run CryptoByPlan on a Raspberry Pi that you manage. The bot and its databases stay on the device; systemd can keep it running after a reboot.

Release status: The Raspberry Pi guide is available for planning, but the bundle has not passed physical-device acceptance. No public download is available yet; a verified package and checksum will be added after Pi testing.

What you need

  • Raspberry Pi 4 with at least 2 GB RAM, a high-endurance 32 GB microSD card or USB SSD, and a stable network connection. Ethernet is preferred.
  • Ubuntu Server 24.04 LTS, ARM64. This image includes the required Python 3.12 packages. Raspberry Pi OS Lite 64-bit may be used only if you independently verify Python 3.12.
  • A separate Telegram bot token and Bitvavo API key for this installation. Disable withdrawals on the API key. Do not run another CryptoByPlan instance against the same Bitvavo account at the same time; a separate API key does not isolate exchange orders. For independent testing, use a separate Bitvavo account.

1. Prepare the Pi

On another computer, install the official Raspberry Pi Imager. Select Raspberry Pi 4, then choose the Ubuntu Server 24.04 LTS ARM64 image. In OS customisation, set a hostname, create a normal user, configure Wi-Fi or Ethernet, set the Europe/Amsterdam time zone, and enable SSH.

After the first boot, connect by keyboard or SSH and install the prerequisites:

sudo apt update
sudo apt install python3.12 python3.12-venv ca-certificates
python3.12 --version
uname -m

Confirm Python reports 3.12.x and architecture reports aarch64. Stop if either check does not match.

2. Download, verify, and set up

When the public beta opens, copy the Raspberry Pi archive and its matching .sha256 file to the Pi. Keep them together and verify the checksum before extracting:

sha256sum -c CryptoByPlan-RaspberryPi-v3.25.10.tar.gz.sha256
tar -xzf CryptoByPlan-RaspberryPi-v3.25.10.tar.gz
cd CryptoByPlan-RaspberryPi-v3.25.10
./scripts/setup_linux.sh

Continue only if the checksum says OK. Replace the sample version in the commands with the exact release version. Setup creates the virtual environment, pinned dependencies, and starter files. It installs the systemd unit but does not start or enable it and does not place orders.

If setup reports that a cyclepilot.service unit already exists, stop and inspect that installation. Do not overwrite another bot’s service file.

3. Create your Telegram bot and configure .env

  1. In Telegram, open @BotFather, send /newbot, and follow its prompts.
  2. On the Pi, from the installation folder, edit .env with nano .env. Put the token on the existing TELEGRAM_TOKEN= line, save, and send /start to your new bot.
  3. Retrieve the numeric chat ID using only the token line from .env:
TELEGRAM_TOKEN="$(sed -n 's/^TELEGRAM_TOKEN=//p' .env)"
curl --fail --silent "https://api.telegram.org/bot${TELEGRAM_TOKEN}/getUpdates"
unset TELEGRAM_TOKEN

Copy the digits in chat.id into the existing TELEGRAM_CHAT_ID= line. If the result list is empty, send the bot another message and repeat. Do not share the token or response, and do not source the incomplete .env file.

Complete all remaining values using the exact .env instructions. Use your own Bitvavo key with trading access and withdrawals disabled. The CoinMarketCap key is optional and does not affect orders.

4. Run a foreground check

Review config.yaml, then start one foreground instance:

./venv/bin/python bot.py

In your own Telegram chat, check /start, /status, /balances, /orders, and /help. These checks are read-only; do not create a DCA plan or order during this check. Stop the process with Control+C in the SSH terminal. Only one running instance may use a Telegram bot token.

Optional: start at system boot

Do this only after the foreground check passes. The installed systemd service is named cyclepilot. It starts at boot without an interactive login and restarts after a failure with a 10-second delay. Enabling it starts the bot immediately too:

sudo systemctl enable --now cyclepilot
sudo systemctl status cyclepilot
journalctl -u cyclepilot -n 100 --no-pager

To stop the bot and disable boot startup:

sudo systemctl disable --now cyclepilot

Do not start a foreground copy while systemd is active. Stopping or restarting the service does not cancel open Bitvavo orders.

← Back to installation overview

Desktop Linux x86_64 is not included. This Pi guide is available for planning; a public package will follow physical-device acceptance.

CryptoByPlanIndependent project · Not affiliated with or endorsed by BitvavoTrading involves risk. This site is informational and is not financial advice.