No description
  • TypeScript 99.8%
  • Dockerfile 0.2%
Find a file
2025-08-24 01:28:40 -07:00
.docker feat: added healthy condition 2025-06-14 01:18:16 +02:00
patches fix: install embedded postgres without locale errors 2025-08-23 05:00:37 -07:00
scripts fix: ensure NodeNext compatibility 2025-08-24 01:28:30 -07:00
src fix: ensure NodeNext compatibility 2025-08-24 01:28:30 -07:00
tests/utils fix: ensure NodeNext compatibility 2025-08-24 01:28:30 -07:00
.dockerignore first commit 2025-05-09 12:27:40 +02:00
.env.example docs: clarify optional env vars 2025-08-23 05:40:52 -07:00
.gitignore feat: embed postgres setup 2025-08-23 04:27:34 -07:00
.prettierrc first commit 2025-05-09 12:27:40 +02:00
drizzle.config.ts fix: drizzle prod 2025-06-08 00:19:17 +02:00
LICENSE first commit 2025-05-09 12:27:40 +02:00
package-lock.json test: add utility tests with coverage 2025-08-23 07:48:01 -07:00
package.json test: add utility tests with coverage 2025-08-23 07:48:01 -07:00
PRIVACY-POLICY.md feat: tos & privacy policy 2025-06-06 14:13:03 +02:00
README.md docs: describe AI channel workflow 2025-08-23 06:50:09 -07:00
TERMS-OF-SERVICE.md feat: tos & privacy policy 2025-06-06 14:13:03 +02:00
tsconfig.json feat: services & deep desert notifier 2025-07-15 23:50:35 +02:00
vitest.config.ts test: expand utility coverage 2025-08-23 08:00:06 -07:00

Wali Dune Awakening Database Discord bot

License Contributors

Wali brings the dune.gaming.tools database to Discord. Recent updates bundle an embedded PostgreSQL database and trim the configuration to only the essentials.

Features

  • Slash commands to search items, buildings, skills and more.
  • Fast responses with caching.

Installation

  1. Clone the repository
    git clone https://github.com/glazk0/wali.git
    
  2. Install dependencies
    npm install
    
  3. Copy the example config and fill in the values
    cp .env.example .env
    
  4. Build the bot
    npm run build
    
  5. Start the bot
    npm start
    

Environment variables

Variable Description
AI_CHANNEL_ID Optional: Discord channel ID for LLM responses
DISCORD_BOT_TOKEN Discord bot token
DISCORD_CLIENT_ID Application client ID
DISCORD_GUILD_ID Optional: register commands to a single guild during development
POLLINATIONS_TOKEN Optional: token used when requesting data from Pollinations
SECRET_TOKEN Optional: token used when requesting data from dune.gaming.tools

The bot starts an embedded PostgreSQL instance automatically. No external database or AWS configuration is required.

AI channel workflow

When AI_CHANNEL_ID is set, Wali watches that Discord text channel for regular chat messages. Each message is forwarded to Pollinations along with a set of database tools. Pollinations may call these tools (which in turn use api.get to query dune.gaming.tools) and then responds back into the same channel.

Pollinations requirements

  • POLLINATIONS_TOKEN is optional but recommended for higher request limits.
  • Outbound access to https://text.pollinations.ai must be allowed.

Manual testing

  1. Create a development guild and note the ID of a test channel.
  2. Add AI_CHANNEL_ID=<channelId> and optionally POLLINATIONS_TOKEN=<token> to .env.
  3. Run the bot with npm run dev.
  4. Send a message such as What does a Windtrap cost? in the configured channel.
  5. A Polli reply should appear with information fetched via the tools layer. Check the process logs if no response arrives.

Self-hosting

Using the publicly hosted bot is recommended. Self-hosting is at your own risk and monetisation is not permitted.

Contributing

Issues and pull requests are welcome.

License

Distributed under the MIT with Additional Restrictions License. See LICENSE for more information.