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
- Go to the Discord Developer Portal and create a New Application.
- 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:
- Checks for Docker and offers to install it via Docker's official convenience script if it's missing.
- Prompts once for your Discord bot token.
- Generates a
SECRETS_ENCRYPTION_KEYand writes both values to a local.envfile. 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. - Starts the container (
ionide-discord-bot) with--restart unless-stopped, a 128MB memory limit, and a persistent/app/datavolume for its local database. - 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-botfor errors. A missing or invalid bot token is the most common cause. - Commands don't respond in Discord: the bot blocks every command except
/connectuntil a license has been activated. Run/connectfirst. - Still stuck? Ask in Discord.