How to Install Discord on Debian 13, 12 and 11

Last updated Wednesday, May 20, 2026 7:24 am Joshua James 9 min read

Discord on Debian is a package-source decision before it is a desktop login step. To install Discord on Debian, choose between Discord’s official .deb download, the Snap Store package, or the Flathub app, because each path handles updates, desktop integration, and sandboxing differently.

These commands apply to Debian 13 (Trixie), Debian 12 (Bookworm), and Debian 11 (Bullseye) on amd64/x86_64 desktop systems. Discord is a hosted service, so this workflow installs the desktop client used to join servers and calls; Debian does not provide a local Discord server package.

Install Discord on Debian

Choose a Discord Installation Method

Start with the official .deb package when you want Discord’s own Linux download and the most direct desktop integration. Use Snap if you already manage apps with snapd and want automatic snap refreshes. Use Flatpak if you prefer Flathub packaging and can accept the feature limits Flathub documents for the sandboxed build.

MethodSourceUpdate PathBest FitImportant Limits
.deb packageDiscord official downloadRun the optional update-discord helper or reinstall the current .deb package manuallyMost Debian desktops and readers who want Discord’s direct Linux packageamd64 only; no Discord APT repository is added
SnapSnap Store package by SnapcraftersAutomatic snap refreshes through snapdReaders who already use Snap on Debianamd64 stable channel; publisher is Snapcrafters, not Discord Inc.
FlatpakFlathub app by Discord Inc.Flatpak app and runtime updates through FlathubReaders who prefer Flathub app managementx86_64 only; Flathub lists broad permissions and feature limits

Discord’s Linux download page also offers a tar.gz archive, but this Debian install article does not use it as a full method because extraction, launcher placement, updates, and cleanup remain self-managed. Use the .deb package when you want Discord’s direct download with an APT package record, or use Snap or Flatpak when you want a store-managed package.

Discord’s current Linux package options are 64-bit only. If dpkg --print-architecture does not return amd64, use Discord in a browser such as Firefox on Debian or Chromium Browser on Debian instead of trying to force the desktop packages onto ARM or 32-bit Debian.

dpkg --print-architecture
amd64

Refresh APT before installing the official package so dependency resolution uses current Debian metadata:

sudo apt update

These commands use sudo for tasks that need root privileges. If your user is not in the sudoers file yet, run the commands as root or follow the guide on how to add a user to sudoers on Debian.

Install Discord with the Official .deb Package on Debian

The current official .deb package installs the /usr/bin/discord launcher, a desktop entry, an AppArmor profile under /etc/apparmor.d/discord, and a bootstrapper that prepares Discord in the user’s profile on first launch. The launcher can refresh the per-user Discord payload under ~/.config/discord, but the Debian package itself does not add an APT repository, so APT can remove the package but cannot fetch future Discord package versions by itself.

Install wget and certificate support if this Debian system does not already include them. The wget command examples guide is useful later if you need resume, timestamp, or mirror options for other downloads.

sudo apt install wget ca-certificates

Download the latest stable Discord .deb package from Discord’s Linux download endpoint:

wget "https://discord.com/api/download?platform=linux&format=deb" -O discord.deb

The -O discord.deb option keeps the local filename stable even though Discord redirects to a versioned package name. Inspect the package metadata before installation:

dpkg-deb -f discord.deb Package Version Architecture Installed-Size

The package should identify as discord with Architecture: amd64. Install it with APT so Debian resolves required libraries from the enabled repositories:

sudo apt install ./discord.deb

Confirm the launcher exists:

command -v discord
/usr/bin/discord

Check the installed package record without freezing Discord’s moving version number:

dpkg-query -W -f='${binary:Package} ${Architecture} ${db:Status-Abbrev}\n' discord
discord amd64 ii

After APT installs the package successfully, you can delete the downloaded installer file. Removing discord.deb only deletes the local package file; it does not uninstall Discord.

rm -f discord.deb

Create a Discord .deb Update Helper

The direct .deb method stays manual unless you add a small helper. This script downloads Discord’s current package to a temporary directory, confirms the package name and architecture, compares it with the installed version, and uses APT for the install or update. It skips a same-version reinstall unless you pass --reinstall.

sudo tee /usr/local/bin/update-discord > /dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

url='https://discord.com/api/download?platform=linux&format=deb'
tmpdir=$(mktemp -d)
package_file="$tmpdir/discord.deb"
force_reinstall=no

if [ "${1:-}" = "--reinstall" ]; then
  force_reinstall=yes
elif [ "$#" -gt 0 ]; then
  printf 'Usage: update-discord [--reinstall]\n' >&2
  exit 2
fi

need_command() {
  if ! command -v "$1" >/dev/null 2>&1; then
    printf 'Missing required command: %s\n' "$1" >&2
    exit 1
  fi
}

need_command wget
need_command dpkg
need_command dpkg-deb
need_command dpkg-query
need_command apt-get

if [ "$(id -u)" -ne 0 ]; then
  need_command sudo
fi

cleanup() {
  rm -rf "$tmpdir"
}
trap cleanup EXIT

arch=$(dpkg --print-architecture)
if [ "$arch" != "amd64" ]; then
  printf 'Discord publishes the Linux .deb package for amd64, but this system reports %s.\n' "$arch" >&2
  exit 1
fi

printf 'Downloading current Discord .deb package...\n'
wget -O "$package_file" "$url"

package_name=$(dpkg-deb -f "$package_file" Package)
package_version=$(dpkg-deb -f "$package_file" Version)
package_arch=$(dpkg-deb -f "$package_file" Architecture)

if [ "$package_name" != "discord" ]; then
  printf 'Downloaded package is %s, not discord. Aborting.\n' "$package_name" >&2
  exit 1
fi

if [ "$package_arch" != "amd64" ]; then
  printf 'Downloaded package architecture is %s, not amd64. Aborting.\n' "$package_arch" >&2
  exit 1
fi

printf 'Downloaded Discord package:\n'
printf '  Package: %s\n' "$package_name"
printf '  Version: %s\n' "$package_version"
printf '  Architecture: %s\n' "$package_arch"

installed_version=$(dpkg-query -W -f='${Version}' discord 2>/dev/null || true)

if [ -n "$installed_version" ] && dpkg --compare-versions "$installed_version" gt "$package_version"; then
  printf 'Installed Discord version %s is newer than downloaded version %s. Not downgrading.\n' "$installed_version" "$package_version" >&2
  exit 1
fi

if [ -n "$installed_version" ] && [ "$installed_version" = "$package_version" ] && [ "$force_reinstall" = "no" ]; then
  printf 'Discord %s is already installed. Use update-discord --reinstall to reinstall the same package.\n' "$installed_version"
  exit 0
fi

if [ -n "$installed_version" ]; then
  printf 'Installed version: %s\n' "$installed_version"
else
  printf 'Discord is not installed; installing the downloaded package.\n'
fi

apt_args=(install)
if [ "$force_reinstall" = "yes" ] && [ -n "$installed_version" ]; then
  apt_args=(install --reinstall)
fi

if [ "$(id -u)" -eq 0 ]; then
  apt-get "${apt_args[@]}" "$package_file"
else
  sudo apt-get "${apt_args[@]}" "$package_file"
fi
EOF

Make the helper executable and confirm the shell can find it:

sudo chmod 0755 /usr/local/bin/update-discord
command -v update-discord
/usr/local/bin/update-discord

Run the helper whenever Discord prompts for a Linux package update or when you want to check for a newer direct package:

update-discord

Install Discord with Snap on Debian

Use the Snap method when snapd is already part of your Debian desktop workflow. Debian provides the snapd package in its default repositories, but it is not installed on a default Debian system.

If snapd is not installed yet, follow the Snapd installation guide for Debian before installing the Discord snap. That setup owns the snapd service, socket, and first-run seeding steps.

The Discord snap is published in the stable amd64 channel by Snapcrafters. Install it with:

sudo snap install discord

Verify that snapd registered the app:

snap list discord

Use the Snap-specific launch and update commands instead of mixing the snap with the .deb package on the same system.

Install Discord with Flatpak on Debian

Use Flatpak when Flathub is already your preferred desktop app source. Flathub currently publishes Discord for x86_64, and its metadata shows broad device and session permissions for the app. The listing also notes that the sandbox can limit Game Activity, unrestricted file access, and Rich Presence.

If Flatpak is not installed or Flathub is not configured, follow the Flatpak installation guide for Debian first.

Add the Flathub remote at system scope if it is not already present:

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Install Discord from Flathub:

sudo flatpak install flathub com.discordapp.Discord

Flatpak may ask you to confirm the app and its required runtime. Verify the installed reference after the command completes:

flatpak info --show-ref com.discordapp.Discord
app/com.discordapp.Discord/x86_64/stable

Launch Discord on Debian

Discord is a graphical desktop app, so launch it from a signed-in Debian desktop session. The official .deb package may download or refresh the per-user Discord payload under ~/.config/discord the first time the launcher runs, so keep network access available for first launch.

Launch Discord from the Terminal on Debian

Use the launch command for the installation method you chose:

Installation MethodTerminal Launch Command
.deb packagediscord
Snapsnap run discord
Flatpakflatpak run com.discordapp.Discord

Launch Discord from the Applications Menu on Debian

Open Activities, select Show Applications, and choose Discord. If the launcher does not appear immediately after installation, sign out and sign back in so the desktop session refreshes exported application entries.

Discord login screen with email and password fields on Debian
Discord login screen after a successful installation on Debian

Update Discord on Debian

The update owner depends on the package source. The official .deb package does not add a Discord repository, so sudo apt update alone cannot pull new Discord package files. Snap and Flatpak updates come from their respective stores.

Update the .deb Discord Installation

Download and reinstall the current .deb package when Discord prompts for a newer Linux package or when you want to refresh the package-owned launcher, desktop file, and AppArmor profile. This update flow stays outside normal APT upgrades because Discord does not publish a Debian repository for the direct package.

If you created the helper from the official .deb method, run:

update-discord

The helper checks the downloaded package metadata before calling APT. If the installed version already matches the downloaded version, it stops without reinstalling. Without the helper, repeat the manual download and install sequence:

wget "https://discord.com/api/download?platform=linux&format=deb" -O discord.deb
dpkg-deb -f discord.deb Package Version Architecture
sudo apt install ./discord.deb

Remove the downloaded package file only after the reinstall succeeds:

rm -f discord.deb

Update the Snap Discord Installation

Snapd refreshes installed snaps automatically. To request an immediate Discord refresh, run:

sudo snap refresh discord

Update the Flatpak Discord Installation

Update the Discord Flatpak and any required runtime changes from Flathub:

sudo flatpak update com.discordapp.Discord

Remove Discord from Debian

Use the removal command for the package format you installed. Package removal does not automatically remove every per-user login token, cache, or sandbox profile, so review the user-data cleanup section separately.

Remove the .deb Discord Installation

Remove the Debian package and its package-owned configuration files:

sudo apt purge discord

If you created the updater helper or disabled Discord’s incompatible AppArmor profile during troubleshooting, remove the local helper and disable link after the package is gone:

sudo rm -f /usr/local/bin/update-discord /etc/apparmor.d/disable/discord
if systemctl is-active --quiet apparmor; then
  sudo systemctl reload apparmor
fi

Check whether APT sees any dependency packages that are no longer needed:

sudo apt autoremove --dry-run

If the dry run lists only packages you are comfortable removing, run the cleanup interactively:

sudo apt autoremove

Remove the Snap Discord Installation

The purge command removes Discord’s snap package data instead of keeping snapd’s automatic recovery snapshot. Keep a normal sudo snap remove discord removal if you want snapd to retain a snapshot for recovery.

sudo snap remove --purge discord

Confirm the snap no longer appears:

snap list discord 2>/dev/null || echo "Discord snap is not installed"
Discord snap is not installed

Remove the Flatpak Discord Installation

Remove the system-scoped Flatpak app first:

sudo flatpak uninstall com.discordapp.Discord

Verify that the Flatpak app ID no longer appears in the system app list:

flatpak list --system --app --columns=application | grep -Fx com.discordapp.Discord || echo "Discord Flatpak is not installed"
Discord Flatpak is not installed

Clean unused Flatpak runtimes only after reviewing the prompt, because the runtime list can include items used by other Flatpak apps:

sudo flatpak uninstall --unused

Clean Up Discord User Data on Debian

Check for Discord profile and cache directories before deleting anything. If Discord was never launched after installation, this command may return no output.

find "$HOME" -maxdepth 3 \( -path "$HOME/.config/discord" -o -path "$HOME/.cache/discord" -o -path "$HOME/snap/discord" -o -path "$HOME/.var/app/com.discordapp.Discord" \) -print

The cleanup command uses find -exec to remove only the paths located by the check.

The next command permanently deletes local Discord settings, caches, and saved session data for your user account. Keep any listed directory you want to preserve before running it.

find "$HOME" -maxdepth 3 \( -path "$HOME/.config/discord" -o -path "$HOME/.cache/discord" -o -path "$HOME/snap/discord" -o -path "$HOME/.var/app/com.discordapp.Discord" \) -exec rm -rf {} +

Troubleshoot Discord on Debian

Most Discord installation problems on Debian fall into package architecture, a missing graphical session, store-specific sandbox permissions, AppArmor profile reload warnings, or a stale local cache after an update.

Discord Does Not Open from SSH or a Headless Shell

Discord can be installed from an SSH shell, but the desktop client needs a graphical session to open its window. If a terminal launch prints display or portal errors, sign in to GNOME, KDE, Xfce, or another Debian desktop session and launch Discord from that terminal or the application menu.

APT Shows an AppArmor Reload Warning During .deb Updates

Discord’s current .deb package ships an AppArmor profile that loads cleanly on Debian 13 but can trigger a parser warning on Debian 12 or Debian 11. If APT finishes installing Discord and only the AppArmor reload prints a warning, first confirm the package installed:

dpkg-query -W -f='${binary:Package} ${Architecture} ${db:Status-Abbrev}\n' discord
discord amd64 ii

Check the AppArmor journal for a Discord profile parser message such as Could not open 'abi/4.0' on Debian 12 or Invalid profile flag: unconfined on Debian 11:

sudo journalctl -u apparmor --no-pager -n 50 | grep -E 'discord|abi/4\.0|unconfined'

When that exact Discord profile warning appears, disable only Discord’s package-owned profile and reload AppArmor. This keeps AppArmor active for the rest of the system while avoiding repeated reload failures from the incompatible Discord profile:

sudo install -d /etc/apparmor.d/disable
sudo ln -sfn /etc/apparmor.d/discord /etc/apparmor.d/disable/discord
sudo systemctl reload apparmor
systemctl is-active apparmor
active

Remove the disable link after uninstalling the .deb package or after a future Discord package ships a profile your Debian release can parse.

Discord Audio or Microphone Does Not Work

For the .deb package, first check Discord’s Voice & Video settings and the desktop sound settings for the correct input and output devices. For Snap installations, check whether the audio interfaces are connected:

snap connections discord | grep -E 'audio-playback|audio-record'

For Flatpak installations, confirm the Flathub build exposes the PulseAudio socket:

flatpak info --show-permissions com.discordapp.Discord | grep pulseaudio
sockets=x11;wayland;pulseaudio;pcsc;

Discord Screen Share Shows a Black Window on Wayland

Wayland screen sharing depends on XDG Desktop Portal and the backend for your desktop environment. On Debian 12 and Debian 13 GNOME desktops, confirm the base portal package and GNOME backend are installed:

dpkg-query -W -f='${binary:Package}\n' xdg-desktop-portal xdg-desktop-portal-gnome
xdg-desktop-portal
xdg-desktop-portal-gnome

On Debian 11 or GTK-based desktops, check the GTK portal backend instead:

dpkg-query -W -f='${binary:Package}\n' xdg-desktop-portal xdg-desktop-portal-gtk
xdg-desktop-portal
xdg-desktop-portal-gtk

If the Debian 12 or Debian 13 GNOME backend is missing, install it and restart the graphical session:

sudo apt install xdg-desktop-portal xdg-desktop-portal-gnome

If the Debian 11 or GTK backend is missing, install this pair instead:

sudo apt install xdg-desktop-portal xdg-desktop-portal-gtk

Discord Gets Stuck After an Update Prompt

For the .deb package, clear Discord’s local cache first:

rm -rf ~/.config/discord/Cache ~/.config/discord/GPUCache

Then run the helper with --reinstall so APT reinstalls the same package instead of stopping at the already-current check:

update-discord --reinstall

If you did not create the helper, reinstall the current package manually:

wget "https://discord.com/api/download?platform=linux&format=deb" -O discord.deb
dpkg-deb -f discord.deb Package Version Architecture
sudo apt install ./discord.deb

Delete the downloaded package file after the reinstall completes:

rm -f discord.deb

Update Snap and Flatpak installations with sudo snap refresh discord or sudo flatpak update com.discordapp.Discord instead of using the .deb reinstall path.

Conclusion

Discord is ready on Debian with the package source that matches your update and trust priorities: the official .deb package, the automatically refreshed Snap, or the Flathub app. For adjacent chat and meeting tools, install Telegram on Debian, Slack on Debian, or Zoom on Debian.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: