Phoenix is a suite of configurations & advanced modifications for Mozilla Firefox, designed to put the user first - with a focus on privacy, security, freedom, functionality, & usability.
Phoenix works by leveraging Firefox's AutoConfig & Enterprise Policies functionality, and is installed on top of your standard, official Firefox installation. This allows us to go above and beyond what a simple user.js
file can offer, without the security risks of using a fork. For example, forks often fall behind on Firefox updates, which can leave users open to severe, detrimental vulnerabilities. Phoenix's approach allows users to continue receiving immediate updates, directly from Mozilla.
Phoenix's approach also provides users with a seamless experience that is accessible and easy to use. Gone are the days of creating override
files, manually keeping track of updates, resetting old preferences, & adding your user.js
file to each and every profile you make. Not only is Phoenix the most effective & comprehensive approach to configuring Firefox, it is also the most accessible & easiest to use.
Phoenix's changes to Firefox are carefully considered based on extensive research & studying of Firefox's inner workings. For an incomplete, non-exhaustive list of Phoenix's features & enhancements, see here.
Phoenix is designed to maintain website compatibility and to avoid breakage as much as possible, while still substantially improving privacy & security compared to vanilla Firefox & most other web browsers. For users who are fine with breakage and want to go even further in enhancing their privacy & security, Phoenix also offers a Hardened extension. This is completely optional and recommended for advanced users. For more information on Phoenix's compatibility with websites & known issues, see here.
You should also see here for a comparison between Phoenix, standard Firefox, Arkenfox, Betterfox, LibreWolf, & various other widely used projects of similar nature.
Additionally, Phoenix disables various anti-features & strives to put the user back in control of their browsing experience. Phoenix also includes quality of life enhancements, performance improvements, and other 'goodies' where possible and where it doesn't compromise user privacy or security.
At the end of the day, above all else:
Phoenix is designed from the ground up to always put the user first.
Important
Note
This project is hosted on both Codeberg (which is the primary & preferred place to contribute) & GitHub.
Note
Thunderbird users should consider taking a look at Dove - Phoenix's sister project.
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...
It doesn't have to be this way.
Phoenix currently provides official support for:
- Arch Linux
- Fedora Linux (39-41)
- macOS
Important
App Management
Permission.
Important
Other platforms have unfortunately proven difficult to support, though progress is being made. Contributions are always welcome and appreciated.
If your platform is supported, simply run the following command in your terminal to install Phoenix:
sudo bash -c "$(wget -O- https://phoenix.celenity.dev/install.sh 2>/dev/null)"
If you would like to use Phoenix on an unsupported platform, see 📛Manual Installation.
Important
Debian/Ubuntu users can follow this excellent guide.
If Phoenix isn't right for you - no worries!
Simply run the following command in your terminal to uninstall Phoenix:
sudo bash -c "$(wget -O- https://phoenix.celenity.dev/uninstall.sh 2>/dev/null)"
Please leave us feedback on the way out, so we can improve for the future!
For advanced users who would like to go above & beyond when protecting their privacy & security, at the cost of occasional breakage, Phoenix offers a Hardened extension.
Tip
Unlike Phoenix's standard default configuration, Hardened is profile specific. This means that you can use our Hardened config as needed when you desire the extra protection, & revert back to Phoenix's standard config 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
. No more manual override
files! ;)
You can see here for a list of known sites that have issues or quirks with Phoenix's Hardened extension, and what you need to toggle to fix them.
1: Install Phoenix via the script for your platform of choice above.
2: After installation is complete, locate the Hardened
user.js file on your device.
Depending on your operating system, it will be located at:
GNU/Linux
/etc/firefox/phoenix/userjs/hardened/user.js
macOS
System
/opt/homebrew/opt/phoenix-osx/userjs/macos/hardened/user.js
User
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/hardened/user.js
If you use any of the Firefox-UI-Fix CSS skins with Firefox, you should instead use use the user.js
file at the following locations:
GNU/Linux
/etc/firefox/phoenix/userjs/ui-fix/hardened/user.js
macOS
System
/opt/homebrew/opt/phoenix-osx/userjs/macos/ui-fix/hardened/user.js
User
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/ui-fix/hardened/user.js
3: Find your Firefox 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 be different, and you should replace this path on the next step with your actual profile directory's path.
4: Simply move (or copy & paste) your user.js
file to your profile's directory! You can either drag and drop it manually, or run the command below. For example's sake, we'll say our user.js is located at /etc/firefox/phoenix/userjs/hardened/user.js
. Yours may be different, and you should replace this path on the next step with the actual location of your user.js as described above.
mv /etc/firefox/phoenix/userjs/hardened/user.js /home/user/.mozilla/firefox/153acxao.default-release/user.js
Important
user.js
file and replace phoenix-osx
with phoenix-osx-user
. This will be simplified & handled better in the future.
Congratulations, you're done. Similar to the rest of the Phoenix project, your hardened config will automatically update with the rest of Phoenix via your package manager, and you can set any overrides you wish through the about:config. You can just sit back, relax, & enjoy.
It should also be noted that Phoenix contains specialized configurations for Discord, Twitter, and YouTube. These configs are designed to be used in their own, separate Firefox profile, and provide means to safely and easily use these privacy-invasive services.
The installation of these configs is the same as Hardened
, with the only exception being the location of the user.js
file. You can find the location of these user.js files at the following locations:
Discord
GNU/Linux
/etc/firefox/phoenix/userjs/discord/user.js
macOS
System:
/opt/homebrew/opt/phoenix-osx/userjs/macos/discord/user.js
User:
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/discord/user.js
Discord (Firefox-UI-Fix)
GNU/Linux
/etc/firefox/phoenix/userjs/ui-fix/discord/user.js
macOS
System:
/opt/homebrew/opt/phoenix-osx/userjs/macos/ui-fix/discord/user.js
User:
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/ui-fix/discord/user.js
GNU/Linux
/etc/firefox/phoenix/userjs/twitter/user.js
macOS
System:
/opt/homebrew/opt/phoenix-osx/userjs/macos/twitter/user.js
User:
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/twitter/user.js
Twitter (Firefox-UI-Fix)
GNU/Linux
/etc/firefox/phoenix/userjs/ui-fix/twitter/user.js
macOS
System:
/opt/homebrew/opt/phoenix-osx/userjs/macos/ui-fix/twitter/user.js
User:
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/ui-fix/twitter/user.js
GNU/Linux
/etc/firefox/phoenix/userjs/twitter/user.js
macOS
System:
/opt/homebrew/opt/phoenix-osx/userjs/macos/twitter/user.js
User:
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/twitter/user.js
YouTube
GNU/Linux
/etc/firefox/phoenix/userjs/youtube/user.js
macOS
System:
/opt/homebrew/opt/phoenix-osx/userjs/macos/youtube/user.js
User:
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/youtube/user.js
YouTube (Firefox-UI-Fix)
GNU/Linux
/etc/firefox/phoenix/userjs/ui-fix/youtube/user.js
macOS
System:
/opt/homebrew/opt/phoenix-osx/userjs/macos/ui-fix/youtube/user.js
User:
/opt/homebrew/opt/phoenix-osx-user/userjs/macos/ui-fix/youtube/user.js
Caution
This is NOT recommended for most users.
By default, Phoenix is installed & updated via your operating system's package manager. This allows for fast, easy updates & fixes as needed, right with the rest of your system!
However, if this is not desirable for you & your situation, or you would simply like to use Phoenix on an unsupported operating system, you can manually install Phoenix with the following steps:
1: Download phoenix.cfg
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/phoenix.cfg
2: Download phoenix.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/defaults/pref/phoenix.js
3: Download policies.json
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/policies.json
4: Locate your Firefox installation directory. This will vary depending on your platform. An easy way to find it id 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 directory on the following steps with your actual installation directory.
5: Move phoenix.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 phoenix.cfg /usr/lib64/firefox/phoenix.cfg
6: For macOS & Flatpak users: If it does not already exist, in the root of your installation directory, create a folder named defaults
, and inside this new defaults
folder, create another folder titled pref
. You can do this manually through your file explorer, or assuming /usr/lib64/firefox
is your installation directory (it won't be), you could run the following command:
sudo mkdir -p /usr/lib64/firefox/defaults/pref
For GNU/Linux users: If it does not already exist, you will want to create a folder named firefox
located in your system's etc
directory. Inside this firefox
folder, create a new folder named defaults
, and inside this new defaults
folder, create another folder titled pref
. This will work regardless of your distribution - even Snaps are supported. You can also just run the command below:
sudo mkdir -p /etc/firefox/defaults/pref
On macOS & GNU/Linux, you'll also want to ensure that the folder you created has proper permissions:
For macOS users: - assuming /usr/lib64/firefox
is your installation directory (it won't be)
sudo chmod 744 /usr/lib64/firefox/defaults/pref
For all non-Flatpak GNU/Linux users:
sudo chmod 655 /etc/firefox/defaults/pref
7: Move phoenix.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 phoenix.js /usr/lib64/firefox/defaults/pref/phoenix.js
For all non-Flatpak GNU/Linux users:
sudo mv phoenix.js /etc/firefox/defaults/pref/phoenix.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
GNU/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 & GNU/Linux, you'll also want to ensure that the folder you created has proper permissions:
For macOS users: - assuming /usr/lib64/firefox
is your installation directory (it won't be)
sudo chmod 744 /usr/lib64/firefox/distribution
For all non-Flatpak GNU/Linux users:
sudo chmod 655 /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
GNU/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!
With a manual installation of Phoenix, if you would like to use Phoenix's Hardened extension, or one of our specialized configs, you'll need to follow these steps.
1: Download the .cfg
file of your choice from here. For this example, we'll use youtube.cfg
. Simply replace mentions of youtube.cfg
below with the configuration you would like to use.
You can right click and select Save page as
from your browser on the .cfg
file, or you can run the following command in your terminal:
wget https://phoenix.celenity.dev/configs/youtube.cfg
2: Store the .cfg
file you just downloaded somewhere safe that you can remember. For this example, we'll keep it simple and say I chose to save youtube.cfg
at ~/youtube.cfg
. Replace mentions of ~/youtube.cfg
below with the actual location of your file.
You can either drag and drop the file manually, or run the command below:
mv youtube.cfg ~/youtube.cfg
3: Download the user.js
file located here.
You can right click and select Save page as
from your browser on the user.js
file, or you can run the following command in your terminal:
wget https://phoenix.celenity.dev/user.js
4: Edit the user.js
file you just downloaded, and replace file://put_your_cfg_file_location_here
with the location of your .cfg
file from Step 2.
Assuming our file is still located at ~/youtube.cfg
and our username is user
, we'll change the contents of the user.js
file we downloaded to:
user_pref("autoadmin.global_config_url", "file:///home/user/youtube.cfg");
5: Find your Firefox 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 be different, and you should replace this path on the next step with your actual profile directory's path.
6: Simply move (or copy & paste) your user.js
file to your profile's directory! You can either drag and drop it manually, or run the command below. For example's sake, we'll say our user.js is located at ~/Downloads/user.js
. If this is not the path of your downloaded user.js
file from Step 3, replace it with its actual location.
mv ~/Downloads/user.js /home/user/.mozilla/firefox/153acxao.default-release/user.js
Huge thank you to the following projects & individuals for making Phoenix possible. Please show them support!
-
- Created the install & uninstall scripts, assisted with README formatting, provided general advice & support, and responsible for various other significant contributions to the project.
-
- Invaluable feedback & support of the project.
-
- 🪪 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
-
- 🪪 Quad9 Team
- 💸 Donate
- Default DNS Over HTTPS Resolver
And of course...