Guides

Self-Hosting Ionide

What the installer does, what it needs from you, and how to update or reconfigure it.

Ionide's bot only runs self-hosted. There's no hosted alternative. This page covers what the installer does and how to manage the container afterward. For the end-to-end walkthrough, start at Getting Started.

Requirements

  • A Linux host with Docker (the installer will offer to install Docker if it's missing).
  • A Discord bot application and token (see below if you don't have one yet).

Resource footprint

The bot is deliberately tiny, so a smallest-tier VPS is enough:

  • RAM: 128 MB. The container ships as a GraalVM native-image build with a fixed 96 MB heap. The rest covers native-image's own fixed overhead and GC/thread-stack headroom.
  • Disk: a few hundred MB, split between the container image and its local database file (license/instance state and encrypted exchange secrets, with no trade history or chart assets stored locally).
  • Docker: the installer sets it up for you if it's not already present, no extra disk planning needed beyond the above.

In practice, the cheapest tier of any major VPS provider (a $4-5/month 512 MB-1 GB instance) is more than sufficient headroom.

Creating a Discord bot token

  1. Go to the Discord Developer Portal and create a New Application.
  2. Open the Bot tab, click Reset Token, and copy the token. You'll paste this into the installer.

Running the installer

curl -fsSL https://install.ionide.net | bash

The installer:

  1. Checks for Docker and offers to install it via Docker's official convenience script if it's missing.
  2. Prompts once for your Discord bot token.
  3. Generates a SECRETS_ENCRYPTION_KEY and writes both values to a local .env file. This key encrypts your exchange API secrets at rest. Back it up, since losing it means losing access to any exchange credentials you've stored via /secrets action:set.
  4. Starts the container (ionide-discord-bot) with --restart unless-stopped, a 128MB memory limit, and a persistent /app/data volume for its local database.
  5. Waits for the bot to come online and prints a Discord invite link built from your bot token.

Invite the bot using the printed link, then continue with connecting your account.

Updating

Re-run the same install command at any time. It pulls the latest image and recreates the container without asking for your token or encryption key again:

curl -fsSL https://install.ionide.net | bash

To change your Discord bot token or regenerate the encryption key, pass --reconfigure:

curl -fsSL https://install.ionide.net | bash -s -- --reconfigure

Where things live

  • .env: your Discord bot token and encryption key.
  • /app/data (Docker volume): the bot's local database, including your encrypted exchange credentials and activation state. Back this up along with the encryption key if you move hosts.

Troubleshooting

  • Container won't come up / installer hangs waiting for it: check docker logs ionide-discord-bot for errors. A missing or invalid bot token is the most common cause.
  • Commands don't respond in Discord: the bot blocks every command except /connect until a license has been activated. Run /connect first.
  • Still stuck? Ask in Discord.