Sign inSign up
djs-bridge logo

corysanin/djs-bridge

By corysanin

•Updated 1 day ago

Yet another Discord ↔️ Fluxer bridge application

Image
0

492

corysanin/djs-bridge repository overview

⁠djs-bridge

djs-bridge icon; a white silhouette of a bridge against a blurple background

NPM Version NPM License

Yet another Discord ↔️ Fluxer bridge application.

⁠Why Another?

I started building this before I discovered other similar applications. Popular amongst which are Bifröst⁠ and Fluxcord⁠. While fulfilling the same goals, djs-bridge still manages to stand out by being lean and simple. Bifröst has a web frontend which is handy for hosted services but overkill for a self-hosted bot. Fluxcord supports bridging voice chats, which adds to its complexity and isn't always needed or desired.

djs-bridge was built from the ground-up to be a basic text-chat mirroring application. One SQLite table persists message mapping data. Configuration is done with one configuration file. No bot commands. The bare minimum to get chat relayed between guilds.

⁠Features

  • Messages are automatically relayed to channels across guilds with matching names
  • Users' usernames and avatars are displayed via webhooks
  • Attachments are supported
  • Custom emoji is used when present on the destination guild
  • Message edits and deletions are propogated across guilds
  • Reactions kind of work. The bot can't do more than 1 reaction per emoji.

⁠Planned

  • Stickers (as attachments)
  • Threads
  • Mirroring bot activity

⁠Out of scope

These features may exists in the alternatives mentioned above. They will not come to djs-bridge.

  • Polls
  • Voice chat bridging
  • Members online count/status

⁠How to

The bot is available via Codeberg's container registry⁠, Docker hub⁠, npm⁠, or via source.

See docker-compose.yml⁠ for an example Docker deployment.

⁠Build from source

git clone https://codeberg.org/sanin/djs-bridge.git
cd djs-bridge
pnpm install
pnpm run build
cp config/config.example.yaml cp config/config.yaml # edit this file
pnpm run start

⁠Configuration

db:
    # Where to store sqlite DB. Defaults to `./db/messages.db`
    file: messages.db
    # Whether to skip db migrations or not. Defaults to `false`
    skipMigrations: false
# An array of bots to relay messages between. Should have at least two.
bots:
    # The name that appears after usernames in relayed messages. Also used in the DB, must be unique. Required.
  - name: A Fluxer Server
    # The web address that will be used for the bot API. Defaults to `https://discord.com`
    server: https://fluxer.com
    # Bot token for the respective platform. Required.
    token: 123_abc_xyz
    # ID for the guild on this server to sync chat to/from. Required.
    guild: '225989349949308928'
    # ID for the channel in this guild to post messages to if a matching channel can't be found. Required.
    defaultChannel: '1569188535674601475'
    # True doesn't upload the incoming avatar to this server. Useful if you're concerned about disk space. Defaults to `false`.
    suppressAvatar: false
  - name: A Discord Server
    ...

Tag summary

Content type

Image

Digest

sha256:fe7009c7b…

Size

125.3 MB

Last updated

1 day ago

docker pull corysanin/djs-bridge