Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first.
It is not a simple user.js like you might expect - but it is not a fork either. It is installed on top of your standard Firefox installation.
Phoenix strives to create the best browsing experience possible, and does so through significantly hardening user privacy & security, and protecting user freedom. We also include various other QOL tweaks, performance enhancements, & nice-to-have features where possible.
Important
Note
This project is hosted on both Codeberg (which will be the primary & preferred place to contribute), & GitHub.
Click me
Believe it or not, in the not so distant past, browsers were designed to put the user first. There's a reason that another word to refer to them is user agent...
Sadly, this time has passed. The majority of browser marketshare is now controlled by Google, an ad surveillance company. In all fairness to Google, they do put their customers first - it's just that their customers are the advertisers they siphon data to, not users like you and me. And this is the company behind the engine powering nearly every modern web browser in the world. Talk about a conflict of interest...
Unfortunately, most ot the competition is no better - Just take a look at Microsoft & the 800 ad companies they share your data with...
But it doesn't have to be this way.
See here for a non-exhaustive list of features & enhancements Phoenix provides.
You should also check out our Comparison table, so that you can see what Phoenix offers and how it compares to similar projects in the space.
Phoenix offers easy to use install scripts for various platforms. All you have to do is have Firefox installed & ready, paste the command that corresponds to your platform of choice in your terminal, and you should be good to go. :)
Important
Arch
yay:
bash -c "$(curl -fsSL https://phoenix.celenity.dev/arch_install_yay.sh)"
paru:
bash -c "$(curl -fsSL https://phoenix.celenity.dev/arch_install_paru.sh)"
Debian/Ubuntu & Derivatives
sudo bash -c "$(curl -fsSL https://phoenix.celenity.dev/debian_install.sh)"
Fedora
[!NOTE] Phoenix only supports 39, 40 and 41 versions of Fedora.
sudo bash -c "$(curl -fsSL https://phoenix.celenity.dev/fedora_install.sh)"
Important
bash -c "$(curl -fsSL https://phoenix.celenity.dev/macos_install.sh)"
See Codeberg issue here & GitHub issue here
HELP WANTED!!
If Phoenix isn't right for you - no worries! We also have easy to use uninstall scripts. Please be sure to leave us feedback though so we can improve for the future!
Arch
yay:
bash -c "$(curl -fsSL https://phoenix.celenity.dev/arch_uninstall_yay.sh)"
paru:
bash -c "$(curl -fsSL https://phoenix.celenity.dev/arch_uninstall_paru.sh)"
Debian/Ubuntu & Derivatives
sudo bash -c "$(curl -fsSL https://phoenix.celenity.dev/debian_uninstall.sh)"
bash -c "$(curl -fsSL https://phoenix.celenity.dev/macos_uninstall.sh)"
Out of the box, Phoenix in its 'base' configuration is already substantially hardened compared to vanilla Firefox & most of its derivatives.
However, we make it a point to balance privacy, security, & usability. We try to avoid breakage where possible.
If you're an advanced user, and would like to go the extra mile, at the cost of mild breakage & a little headache, you can install our Hardened config.
Tip
Unlike our base config, Hardened is profile specific. This means that you can use our hardened config as needed when you desire the extra protection, & revert back to our base through another profile for everything else.
Personally, if you're up for it, I would highly recommend trying out the Hardened config, and setting overrides as needed
Tip
Phoenix makes it very easy to set overrides through your about:config
You can see here for a list of known sites with issues & what you need to toggle to fix them.
Caution
This is not for everyone though, and if you want a 'just works' set-up with no issues or tweaking, just stick to the base config.
To install Hardened
1: Install Base through the script for your platform of choice above.
2: Download the user.js file from here. You can right click and select Save page as
from your browser, or you can run the following command in your terminal:
wget https://phoenix.celenity.dev/configs/Hardened/user.js
If you use any of the Firefox-Fix-UI CSS skins, you should instead download your user.js file from here, or run the following command in your terminal:
wget https://phoenix.celenity.dev/configs/Hardened/Firefox-UI-Fix/user.js
3: Find your profile's directory. This depends on your platform, but an easy way to find it is by navigating to about:profiles
, and it'll be the path listed beside Root Directory. For example's sake, we'll say our profile's directory is /home/user/.mozilla/firefox/153acxao.default-release
. Yours will probably be different, and you should replace this path on the next step with your actual profile directory's path.
4: Simply move your user.js to your profile's directory! You can either drag and drop it manually, or run the following command:
mv user.js /home/user/.mozilla/firefox/153acxao.default-release/user.js
Congratulations, you're done. Similar to the rest of the Phoenix project, your prefs will auto-update, and you can set any overrides you wish through the about:config. You can just sit back, relax, & enjoy.
By default, Phoenix leverages Mozilla's Centralized Management feature to automatically update its configurations. This allows fast, easy updates & fixes as needed, regardless of your platform. Phoenix's Policies are updated separately, through the AUR on Arch Linux, COPR on Fedora, the MPR on Debian/Ubuntu/Derivatives, & our Homebrew Tap on macOS.
Caution
This is typically set-up & handled through our install scripts, and this is the set-up we would recommend most users stick to.
However, if this is not desirable for you & your situation, you can manually install Phoenix with the following steps:
1: Download our base.cfg
file here. You can right click and select Save page as
from your browser, or you can run the following command in your terminal:
wget https://phoenix.celenity.dev/base.cfg
2: Download local-settings.js
from here. You can right click and select Save page as
from your browser, or you can run the following command in your terminal:
wget https://phoenix.celenity.dev/manual/defaults/pref/local-settings.js
3: Download policies.json
from here if you're on macOS/Windows, or here if you're on Linux. You can right click and select Save page as
from your browser, or you can run the following command in your terminal:
macOS/Windows
wget https://phoenix.celenity.dev/policies/Policies/policies.json
GNU/Linux
wget https://phoenix.celenity.dev/policies/Linux/Policies/policies.json
4: Locate your Firefox installation directory. This will vary depending on your platform, you can generally find it by navigating to about:support
& checking the directory next to Application Binary
. For example, on Fedora Linux, I see /usr/lib64/firefox/firefox
next to Application Binary
. This means our installation directory is /usr/lib64/firefox
.
Caution
Unless you're on Fedora Linux, your directory will probably be different, and you should replace this path on the following steps with your actual installation directory's path.
5: Move base.cfg
to the root of your installation directory. You can either drag and drop it manually, or run the following command, assuming /usr/lib64/firefox
is your installation directory:
sudo mv base.cfg /usr/lib64/firefox/base.cfg
6: If it does not already exist, in the root of your installation directory, create a folder named defaults
, and inside this new defaults
, create another folder titled pref
. You can do this manually through your file explorer, or assuming /usr/lib64/firefox
is your installation directory, you can run the following command:
sudo mkdir -p /usr/lib64/firefox/defaults/pref
On macOS & Linux, you'll also want to ensure that the folder you created has proper permissions:
sudo chmod 755 /usr/lib64/firefox/defaults/pref
7: Move local-settings.js
to the pref
folder that you just created. Assuming your installation directory is /usr/lib64/firefox
, you can run the following command:
sudo mv local-settings.js /usr/lib64/firefox/defaults/pref/local-settings.js
8: On macOS & Windows, in the root of your installation directory, create a folder named distribution
. You can do this manually through your file explorer, or assuming /usr/lib64/firefox
is your installation directory, you can run the following command:
sudo mkdir -p /usr/lib64/firefox/distribution
Linux users should instead create a policies
folder inside of a firefox
folder located in /etc
. This will work regardless of your distribution, and even for Snaps.
sudo mkdir -p /etc/firefox/policies
On macOS & Linux, you'll also want to ensure that the folder you created has proper permissions:
sudo chmod 755 /usr/lib64/firefox/distribution
For Linux:
sudo chmod 755 /etc/firefox/policies
9: Finally, those on Windows & macOS should move policies.json
to the distribution
folder that you just created. Assuming your installation directory is /usr/lib64/firefox
, you can run the following command:
sudo mv policies.json /usr/lib64/firefox/distribution/policies.json
Linux users should instead move policies.json
to their /etc/firefox/policies
folder they just created.
sudo mv policies.json /etc/firefox/policies/policies.json
Congratulations, you're done. Enjoy Phoenix, and be sure to keep up with updates!
Huge thank you to the following projects & individuals for making Phoenix possible. Please show them support!
-
- 🪪 Thorin-Oakenpants + earthlng + claustromaniac
- ⚖️ MIT
- Discovered various prefs - Also learned lots from their excellent research & documentation
-
- 🪪 Divested Computing Group
- ⚖️ GPLv3
- 💸 Donate
- Where I first learned of the idea to leverage policies & package them... + inspiration
-
- 🪪 bgstack15 + fxbrit + Malte Jürgens + ohfp + James McClain + threadpanic + Guillaume
- ⚖️ MPL-2.0
- Inspiration + certain preferences & policies
-
- 🪪 rusty-snake
- ⚖️ CC0
- Inspiration + certain preferences
-
- 🪪 postmarketOS
- ⚖️ MPL-2.0
- 💸 Donate
- Inspiration
-
- 🪪 Raymond Hill + ItsProfesssional + MasterKia + peace2000 + Peter Lowe + PiQuark6046 + stephenhawk8054
- ⚖️ GPLv3
- Pre-installed extension - provides content blocking
-
- 🪪 Dennis Schubert
- ⚖️ MIT
- 💸 Donate
- Pre-installed extension
-
- 🪪 Quad9 Team
- 💸 Donate
- Default DNS Over HTTPS Resolver
And of course...