A hybrid TypeScript + C Discord bot for issue tracking.
- Tech Stack
- Requirements
- Docker
- Installation (Local)
- Environment Variables
- Commands
- Database Schema
- Contributing
- License
- Discord API: TypeScript with discord.js
- Core Logic: C native addon (N-API)
- Database: SQLite
- Node.js >= 18.0.0
- SQLite3 development libraries
- C compiler (gcc/clang)
docker pull nyanni/zako-ititservices:
bot:
image: nyanni/zako-itit
container_name: zako-itit-bot
restart: unless-stopped
environment:
- DISCORD_TOKEN=${DISCORD_TOKEN}
- SQLITE_FILE=/app/data/issues.db
- ADMIN_IDS=${ADMIN_IDS:-}
- EMBED_PAGE_SIZE=${EMBED_PAGE_SIZE:-5}
volumes:
- ./data:/app/datadocker run -d \
--name zako-bot \
-e DISCORD_TOKEN=your_token \
-v ./data:/app/data \
nyanni/zako-ititnpm install
npm run build| Variable | Description | Default |
|---|---|---|
DISCORD_TOKEN |
Discord bot token | Required |
SQLITE_FILE |
Path to SQLite database | ./data/issues.db |
ADMIN_IDS |
Comma-separated admin user IDs | - |
EMBED_PAGE_SIZE |
Number of issues per page | 5 |
Displays the status of bots and servers.
Check if the bot is alive.
Create a new issue via modal dialog.
- Fields: Name, Tag (Bug/Feature/Enhancement), Detail
Get details of a specific issue by ID.
List all issues with optional filters.
- Tags: Bug (0), Feature (1), Enhancement (2)
- Status: Proposed (0), Approved (1), Rejected (2), Deleted (3)
Update the status of an issue.
Delete an issue.
Export issues as JSON. Outputs as code block if under 2000 chars, otherwise as file attachment.
CREATE TABLE IF NOT EXISTS zako (
id INTEGER PRIMARY KEY AUTOINCREMENT,
tag INTEGER NOT NULL,
status INTEGER NOT NULL,
name TEXT NOT NULL,
detail TEXT NOT NULL,
discord TEXT NOT NULL
);See CONTRIBUTING.md for guidelines on how to contribute to this project.
MIT - pnyani