Valfisk is a next-generation general purpose Discord app, built with Poise and Serenity. It can be installed by both servers and users, with differing sets of features for each.
- Expand source code links from GitHub, Tangled, Tangled strings, Codeberg, GitLab, and the Rust and Go playgrounds
- Fetch Lighthouse metrics for websites
- Make DNS queries to a variety of DNS-over-HTTPS resolvers
- Reminders (public by default when installed in servers, private when not)
- Translate messages using a context menu command
- Show front page posts from Hacker News and Lobsters
- Retrieve public information about a Discord user
- Render Typst documents into raster images
- Show comprehensive data on Unicode character(s) from the Unicode Character Database
- Google Safe Browsing protection (privacy-friendly)
- Moderation commands (e.g. ban, kick, timeout)
- Auditing for message edits and deletions, and member joins and leaves
- Rotate logs channels by recreating them
- Configurable starboard
- Automatically reply to keyword triggers (supports regular expressions)
- Roles that rotate to random colors daily
- Apply TOML templates to channels
- Self-timeout command for members
Valfisk's Docker image is available at ghcr.io/ryanccn/valfisk:latest; it supports both linux/amd64 and linux/arm64. A Nix package, from which the Docker image is built from, is also available in the repository's Nix flake.
Valfisk reads its configuration from environment variables:
DISCORD_TOKENis the only required environment variable. The registered Discord application should have the "Guild Members" and "Message Content" privileged intents enabled.REDIS_URLis a URL to a Redis or Redis-compatible server; it is optional but highly recommended, since some features will not work well or at all without it.ADMIN_GUILD_IDis a guild in which commands to manage Valfisk itself will be registered.OWNERSis a comma-separated list of user IDs that are allowed to run these commands; by default it is inferred from the Discord application's metadata.ERROR_LOGS_CHANNELis a channel where internal errors from Valfisk will be logged.DM_LOGS_CHANNELis one where direct messages sent to Valfisk will be logged.PAGESPEED_API_KEY,SAFE_BROWSING_API_KEY,TRANSLATION_API_KEYare Google Cloud API keys for accessing the APIs required for certain features. (They can be set to the same key.)HOSTandPORTform the address that the API server listens to. It defaults to0.0.0.0:8080.
See PRIVACY.md.