Halloween at EpicHost: sign in to the panel, find 10 pumpkins and get a -25% code for a new service. Go to the panel

A Discord bot in Go, Java, C#, Rust and other languages

Updated 26-10-2026

You can run a Discord bot with us in 11 languages and the version of your choice: Node.js, Python, Bun, Deno, Go, Java, C# (.NET), Rust, Lua, Dart and Elixir. This guide shows what each of them needs.

Choosing the language and version

  • You choose the language when buying, and you can change it later in Server settings → Startup. The bot files stay.
  • You choose the version (e.g. Node.js 24, Python 3.13, Java 21, .NET 8) in the same tab, in the Environment field.
  • Upload the files in the File manager, over SFTP or from a Git repository you enter in Startup.

Keep the token in a .env file or an environment variable, not in the code.

Node.js

Versions 12 to 26. The panel installs the dependencies from package.json at every start: with npm, or with pnpm or Yarn when the folder has pnpm-lock.yaml or yarn.lock. A .ts file starts through tsx. More: Bot hosting in Node.js.

Python

Versions 2.7 to 3.14. List the dependencies in requirements.txt. More: Bot hosting in Python.

Bun

A fast alternative to Node.js, with TypeScript without compiling. Point to the start file, e.g. index.ts. Add a specific library version in Extra Bun packages, e.g. discord.js@14.19.0.

Deno

Enter the version in Deno version (e.g. 2.5.4) or leave latest. The bot downloads it at start. Import npm libraries with the npm: prefix, e.g. npm:discord.js.

Go

Upload the code with a go.mod file (e.g. with the discordgo library). The bot is built at every start, and later builds are quick thanks to the cache. Go version set to auto takes the version from go.mod, also one newer than the images (e.g. Go 1.25). A ready program works too: turn off Build at start and enter its name.

Java

Upload a .jar with its libraries inside (a fat jar, e.g. from the shadowJar task) and enter its name. Java versions 8 to 26. You can also build the project on the server: enter a Build command, e.g. ./gradlew shadowJar.

C# (.NET)

Upload a project with a .csproj file (e.g. with Discord.Net or DSharpPlus). The panel builds and starts it (dotnet run). Match the .NET version (6 to 10) to the project's TargetFramework. Enter a .dll built beforehand in Ready .dll file.

Rust

Upload a project with Cargo.toml (e.g. serenity or poise). The first build takes a few minutes and needs about 1 GB of RAM, later starts are quick. That is why Rust is available in the Discord Big plan (1 GB of RAM). You can also compile the bot yourself (Linux x86_64) and enter the file in Ready program file.

Lua (Luvit)

On the first start the panel installs Luvit and the Discordia library. Point to the start file, e.g. bot.lua.

Dart

Upload a project with pubspec.yaml (e.g. with the nyxx library). The panel gets the dependencies and starts the bot (dart run).

Elixir

Upload a Mix project (e.g. with the Nostrum library). Building the libraries needs at least 512 MB of RAM, so Elixir is available from the Discord Medium plan.

When the bot does not start

In the Event log the panel shows the cause of a crash in every language: a refused token, missing intents, a missing library or an error in the code. If memory runs out while building, consider a bigger plan in Extend or upload a ready, compiled file.

Please confirm