Self-Hosting
Run Honeypot on your own infrastructure.
Quick options
| Option | Best for | Notes |
|---|---|---|
| Railway template | Fastest setup | Managed hosting with a deploy button. |
| Docker Compose | Self-hosted servers | Stable restarts with a container. |
| Bun start | Local testing | Manual process; no auto-start for persistent deployments. |
OptionRailway template
Best forFastest setup
NotesManaged hosting with a deploy button.
OptionDocker Compose
Best forSelf-hosted servers
NotesStable restarts with a container.
OptionBun start
Best forLocal testing
NotesManual process; no auto-start for persistent deployments.
Official image
Docker uses
ghcr.io/riskymh/honeypot:latest.Railway
Use the public template to deploy quickly.
Docker Compose
docker-compose.yml
services:
honeypot:
image: ghcr.io/riskymh/honeypot:latest
restart: unless-stopped
init: true
environment:
DISCORD_TOKEN: ${DISCORD_TOKEN:?REQUIRED}
DATABASE_URL: ${DATABASE_URL:-sqlite:///data/honeypot.sqlite}
REDIS_URL: ${REDIS_URL} # optional
volumes:
- data:/data
volumes:
data:
Run docker compose up -d and check logs.
Bun (local)
Terminal
git clone https://github.com/riskymh/honeypot.git
cd honeypot
bun install
bun startSet DISCORD_TOKEN before starting.
Environment variables
| Variable | Required | Purpose |
|---|---|---|
DISCORD_TOKEN | Yes | Discord bot token. |
DATABASE_URL | No | SQLite or Postgres connection string. Defaults to sqlite file. |
REDIS_URL | No | Needed for sharded/websocket proxy mode. |
PORT | No | Port for stats API when sharded. |
Variable
DISCORD_TOKENRequiredYes
PurposeDiscord bot token.
Variable
DATABASE_URLRequiredNo
PurposeSQLite or Postgres connection string. Defaults to sqlite file.
Variable
REDIS_URLRequiredNo
PurposeNeeded for sharded/websocket proxy mode.
Variable
PORTRequiredNo
PurposePort for stats API when sharded.