Documentation

Everything you need to know to install and use Rustmail

See full documentation

Discord Prerequisites

Enable privileged intents in Discord Developer Portal: Presence Intent, Server Members Intent and Message Content Intent.

Presence Intent Server Members Intent Message Content Intent

Download

  1. Download the latest version from the GitHub Releases
  2. Extract the archive to a directory of your choice

Or use Docker:

docker pull ghcr.io/rustmail/rustmail:latest

Configuration

The configuration file is required to start the bot.

  1. Use the configuration generator to create your config.toml
  2. Place the file in the same directory as the binary

Full configuration example:

[bot]
token = "YOUR_BOT_TOKEN"
status = "DM FOR SUPPORT"
welcome_message = "Message received! Our staff will get back to you as soon as possible."
close_message = "Thank you for contacting support! Your ticket is now closed."
typing_proxy_from_user = true
typing_proxy_from_staff = true
enable_logs = true
enable_features = true
enable_panel = true
client_id = YOUR_CLIENT_ID
client_secret = "YOUR_CLIENT_SECRET"
redirect_url = "http://YOUR_IP:3002/api/auth/callback"
timezone = "Europe/Paris"
logs_channel_id = YOUR_LOGS_CHANNEL_ID
features_channel_id = YOUR_FEATURES_CHANNEL_ID
ip = "http://YOUR_IP"
panel_super_admin_users = [YOUR_USER_ID]
panel_super_admin_roles = []

[bot.mode]
type = "single"
guild_id = YOUR_GUILD_ID

[command]
prefix = "!"

[thread]
inbox_category_id = YOUR_CATEGORY_ID
embedded_message = true
user_message_color = "3d54ff"
staff_message_color = "ff3126"
system_message_color = "00ff00"
block_quote = true
time_to_close_thread = 5
create_ticket_by_create_channel = true
close_on_leave = false
auto_archive_duration = 10080

[language]
default_language = "en"
fallback_language = "en"
supported_languages = ["en", "fr", "es", "de"]

[error_handling]
show_detailed_errors = false
log_errors = true
send_error_embeds = true
auto_delete_error_messages = true
error_message_ttl = 30
display_errors = true

[notifications]
show_success_on_edit = false
show_partial_success_on_edit = true
show_failure_on_edit = true
show_success_on_reply = false
show_success_on_delete = false
show_success = true
show_error = true

[reminders]
embed_color = "ffb800"

[logs]
show_log_on_edit = true
show_log_on_delete = true

Running

Once the config.toml file is in place, start the bot:

./rustmail

With Docker:

docker run -v $(pwd)/config.toml:/app/config.toml ghcr.io/rustmail/rustmail:latest

Slash Commands

Command Description Usage
/help Display available commands /help
/ping Check bot responsiveness /ping
/new_thread Create a new ticket for a user /new_thread <user>
/close Close the current ticket /close [time] [silent] [cancel]
/reply Send a message to the ticket user /reply <content> [attachment] [anonymous]
/edit Edit a previous message you sent /edit <message_id> <new_content>
/delete Delete a message you sent /delete <message_id>
/take Assign yourself to the ticket (claim) /take
/release Release your assignment from the ticket /release
/add_staff Grant a staff member access to the ticket /add_staff <user>
/remove_staff Remove a staff member's access /remove_staff <user>
/move_thread Move a ticket to a different category /move_thread <category>
/add_reminder Set a reminder for the current ticket /add_reminder <time> [content]
/alert Get notified when the ticket receives a message /alert [cancel]
/logs View ticket history and logs /logs
/id Display the ticket user's Discord ID /id
/snippet Use a saved snippet /snippet <key>
/status View or change the bot's status /status [new_status]

Text Commands

Default prefix: !

Command Description Usage
!help Display available commands !help
!ping Check bot responsiveness !ping
!new_thread Create a new ticket for a user !new_thread <user_id>
!close Close the current ticket !close [time] [-s|--silent] [-c|--cancel]
!reply Send a message to the ticket user !reply <content>
!anonreply Send an anonymous reply !anonreply <content>
!edit Edit a previous message you sent !edit <message_id> <new_content>
!delete Delete a message you sent !delete <message_id>
!take Assign yourself to the ticket (claim) !take
!release Release your assignment from the ticket !release
!add_staff Grant a staff member access to the ticket !add_staff <user_id>
!remove_staff Remove a staff member's access !remove_staff <user_id>
!move_thread Move a ticket to a different category !move_thread <category_name>
!alert Get notified when the ticket receives a message !alert [cancel]
!snippet Use a saved snippet !snippet <key>

Need help?

Check out the full documentation or join our Discord server.