Skip to content
ryanccnPublic

About

Next-generation general purpose Discord app

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Repository files navigation

Valfisk

Built with Nix

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.

Try it out!

Features

  • Expand source code links from GitHub, Tangled, Tangled strings, Codeberg, GitLab, and the Rust and Go playgrounds
  • Expand links to issues, pull requests, commits, comments, reviews, review comments, and diff lines from GitHub
  • 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
  • Retrieve public information about a Discord user
  • Show comprehensive data on Unicode character(s) from the Unicode Character Database
  • Exchange values of currencies using data from multiple sources

Server-only

  • Google Safe Browsing protection (privacy-friendly)
  • Moderation commands (e.g. ban, kick, timeout, warn)
  • Auditing for message edits and deletions, and member joins and leaves
  • Purge a number of messages from channels
  • 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

Self hosting

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_TOKEN is the only required environment variable. The registered Discord application should have the "Guild Members" and "Message Content" privileged intents enabled.
  • REDIS_URL is 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_ID is a guild in which commands to manage Valfisk itself will be registered. OWNERS is 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_CHANNEL is a channel where internal errors from Valfisk will be logged. DM_LOGS_CHANNEL is one where direct messages sent to Valfisk will be logged.
  • PAGESPEED_API_KEY and SAFE_BROWSING_API_KEY are Google Cloud API keys for accessing the APIs required for certain features. (They can be set to the same key.)
  • GITHUB_TOKEN is a GitHub token used for expanding GitHub links, which raises the API rate limit. Since anyone can have Valfisk expand links, the token should not have access to any private repositories.

Legal

See docs/terms.md and docs/privacy.md.

About

Next-generation general purpose Discord app

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Sponsor this project

Packages

Used by

Contributors

Languages