Self-hosted screensharing for Discord, built as an Equicord plugin with a Rust backend. Discord still handles your voice call; DASS handles the screen and optional share audio.
Download · Setup guide · Report a bug · Security
- A DASS-enabled client on both ends. Stock Discord cannot receive DASS streams.
- A compatible self-hosted backend and a separate DASS account.
- Equibop for publishing through its existing screen picker. No extra capture executable or modified Equibop build is needed.
Experimental — production use and unrestricted public deployment are not recommended. E2EE and public hosting have been user-tested and reported working in the tested setup (2026-10-22). This is functional evidence, not an independent security audit or a production-readiness claim; security findings remain open. See the changelog for changes and evidence limits.
Get dass-equicord-VERSION.zip and SHA256SUMS from a
full release, verify the ZIP's checksum,
and extract it somewhere permanent. Keep the entire dist folder. Backend-only
releases do not include the client; if no client bundle is available, build below.
Equibop — recommended for publishing
- Open Settings → Developer Options in Equibop.
- Set the custom Equicord location to the extracted
distdirectory, notdist/equibop. - Fully quit Equibop, including its tray process, then restart.
- Enable DASS under Equicord → Plugins.
Keep your standard Equibop installation. Do not inject Equicord into it as though it were Discord Desktop. Older DASS bundles may require the former host bridge; build from current source for the plugin-owned capture adapter. Real-client acceptance of that adapter is still pending.
Discord Desktop — custom Equicord installation
DASS must be built into Equicord and installed into Discord; copying loose plugin files will not work. The release ZIP does not include a turnkey desktop installer. Build from source using the section below, then fully quit Discord, including its tray process.
Review the upstream Equilotl installer first: this command downloads and runs it, and modifies the Discord installation you select. From the DASS repository root:
cd build/Equicord
bun run injectRestart Discord and enable DASS under Equicord → Plugins. Keep
build/Equicord on disk. This installer path is source-inspected, not runtime-verified.
The desktop bundle does not currently have an equivalent supported publishing
capture adapter.
Build from source
Requires Git, Bun 1.4.3 and Node.js ≥22. No host Rust toolchain is needed.
git clone --recurse-submodules https://github.com/alkalines/DASS.git
cd DASS
bun scripts/build-plugin.mjsFor an existing clone, run git submodule update --init --recursive from the
repository root first. The build uses a separate pinned Equicord checkout and
runs lint, typechecking and both client builds without modifying the upstream
submodules.
For Equibop, select the absolute build/Equicord/dist path printed by the
build. For Discord Desktop, use the installation section above. Rebuild after
source changes and fully restart your client.
The backend is a single Rust executable in Docker. Start with the LAN account setup guide for TLS, accounts and media configuration. Compose defaults are loopback-only setup/discovery, not a working media server.
For Pterodactyl, see the custom image build and configuration guide. An importable egg and real Wings runtime validation are still pending.
Docker Compose
Requires Docker Engine with Compose ≥2.30 and access to its daemon. No host Rust, Cargo or Bun is needed for the backend.
git clone https://github.com/alkalines/DASS.git
cd DASS
cp .env.example .envIf you already cloned the repository, use that checkout instead. Review .env
and complete the server configuration, then run from the
repository root:
docker compose up -d --build backendThis builds, checks and tests Rust inside Docker. No local build is needed if
you use ghcr.io/alkalines/dass:latest: replace the backend's build: block in
compose.yaml with image: (keep the other settings, ports and volumes):
services:
backend:
image: ghcr.io/alkalines/dass:latest
# Keep the remaining backend configuration from compose.yaml.Then start or update it with:
docker compose pull backend
docker compose up -d --no-build backendlatest tracks published backend releases; updates are manual. Back up the SQLite
volume first. For exact version/digest pins, see the GHCR image instructions.
Complete initial setup through the control panel on a
private connection. New account-mode databases without imported administrators
start with admin / admin; change that password immediately. Never expose
insecure setup or default credentials publicly.
Accounts and settings persist in the SQLite volume. Saved backend configuration changes require a restart; keep the volume when updating.
Pterodactyl Egg — coming soon
A Pterodactyl Egg for hosting the DASS backend is planned. It is not available yet; use Docker Compose for now. This will be another installation option, not a change to DASS's experimental status or public-hosting limitations.
Open Equicord → Plugins → DASS settings, enter your trusted backend's HTTPS origin, and sign in with your DASS account — never your Discord password or token. Remembering a password is opt-in and requires OS-backed secure storage.
Join a Discord call and use the supported Share button. DASS reuses Equibop's source picker and keeps share audio optional. Authentication or capture failures do not silently fall back to Discord sharing.
| Guides | |
|---|---|
| Client | Build & install · Sharing · Watching |
| Server | LAN accounts · Control panel · Docker development |
| Updates | Releases, images & manual updates — no automatic installation or deployment |
| Security | Capture & privacy · Public transport · Report a vulnerability |
| Development | Plan · Security roadmap · Contributor instructions |