By default, Debian only includes a version of Firefox called ESR (Extended Support Release). This version gets security updates but does not receive the latest feature releases like the regular Firefox builds.
I also personally keep two versions of Firefox installed, plus Google Chrome. Chrome helps me check that my sites work for most people, because honestly we are still a minority fighting for Firefox’s share of the web. Sometimes I check my code on Chrome while developing, but for deeper testing and debugging I rely on Firefox Developer Edition, which is not available in Debian’s repositories.
For everyday browsing I also like to use the non‑ESR release of Firefox, which Debian does not provide either. You can download Firefox from Mozilla and make a custom GNOME launcher pointing to its executable, but that approach lacks the convenience of a proper repository. I wanted a solution that gives me both non‑ESR Firefox and Firefox Developer Edition via APT.
1. What Versions of Firefox Are
Here’s a quick overview:
- Firefox Developer Edition: a version designed for developers, with advanced dev tools and experimental features.
- Firefox ESR (Extended Support Release): stable, supported release with long‑term security fixes.
- Regular Firefox (non‑ESR): the latest full release with all new features.
2. Step by step installation
2.1. Create the APT Keyring directory
First, make sure APT has a place to store repository keys:
sudo install -d -m 0755 /etc/apt/keyrings
This directory will hold the signing keys for the Mozilla APT repository.
2.2. Import the Mozilla APT repository Signing key
Download and save the key that will let Debian verify Mozilla packages:
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- \
| sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
This ensures that packages you install from Mozilla’s repository are authentic and not tampered with.
2.3. Check the repository signing key
Here’s a simple command to check that the key you downloaded matches the official one online:
LOCAL_HASH=$(sha256sum /etc/apt/keyrings/packages.mozilla.org.asc | awk '{print $1}')
ONLINE_HASH=$(curl -s https://packages.mozilla.org/apt/repo-signing-key.gpg | sha256sum | awk '{print $1}')
[ "$LOCAL_HASH" = "$ONLINE_HASH" ] && echo "✅ The key matches" || echo "⚠️ The key does not match"
Repository signing keys are used to verify the integrity and authenticity of software packages, making sure they truly come from Mozilla and were not modified in transit.
2.4. Add the Mozilla repository
Tell APT to also look for packages in Mozilla’s official repository:
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" \
| sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
This enables Debian to fetch Firefox (non‑ESR) and Developer Edition from Mozilla’s maintained packages.
2.5. Give prority to Mozilla packages
Optionally, configure APT so that packages from Mozilla are preferred over Debian’s defaults:
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla
This makes sure that when you install Firefox or updates, APT will use the Mozilla repository instead of Debian’s archives.
2.6. Install Firefox and Developer Edition
Now update APT and install the packages:
sudo apt update -y && sudo apt install firefox firefox-devedition -y
You will now have both the regular non‑ESR Firefox and Firefox Developer Edition available.
2.7. Install language packs (optional)
You can install a language support like that:
sudo apt install firefox-l10n-fr firefox-devedition-l10n-fr
This gives you localized user interfaces for both browsers.
✅ With this setup, Firefox and Developer Edition will be updated automatically by APT, just like any other software on your Debian system.