← All stories

Thursday, December 18, 2025

Firefox in Chrome - How I use Firefox with Docker to bypass school restrictions

Yes, you read that correctly, Firefox in Chrome all from a server in your house for free

I know nothing about docker, proxies, and how to "kill" chrome extensions used by your school to restrict access to sites.

This is just something I found out about when playing around with ZimaOS, and I'm glad I did. It's easy, fast, and you can even add authentication, so nosey kids at school can't use the browser. Because this is just a VM of Firefox on your home network.

And you can set it up in minutes using Docker Compose and Cloudflared (cloudflare tunnels) or Tailscale to public expose it safely.

Short answer: Because I can.

Long answer: Because the so-called "laptops" my school gives out are (to put it nicely) horrible, they suck. They can't handle more than 5 tabs and are so slow it takes over 1 minute to restart, in that amount of time I can open VS Code, edit files, git push to @tangled.org (git pushes on tangled are slow) and update my website using @wisp.place on my Mac. So why not use the power of your home PC at school?

Before installing for the best experience please use a domain that you own that's managed by the Cloudflare Registrar, this way we can set up a Cloudflare tunnel to public expose the docker container safely.

If you have a Domain that's not managed using Cloudflare you can use Tailscale which will give you a free public IP address, you don't even need to set up an exit node.

Learn more about Tailscale:

Terminal Tips:

Update package list and install updates

TIP: Use sudo (superuser do) when running commands as admin in the terminal

This installs Docker to your system

TIP: Add -y at the end of a command to run it without needing to enter your password

This installs Docker Compose to your system

This allows you to run Docker Commands without needing to add sudo at the start of the command

This tells your system to start Docker after the system turns on

Create the directly (folder in simple terms) for the Docker Container and Docker config file.

TIP: mkdir sands for Make Directory and can be run using md for short

TIP: cd stands for Change Directory and is used to enter a directory (a folder)

TIP: pwd stands for Print Working Directory and is used to tell the user what directory they're currently in

This information will be needed in the feature, make sure to write it down

This will get your PUID (user id) and PGID (group) ID.

Make the docker-compose.yml file that tells Docker what image to pull, ports to use, Environment variables, Dependencies, and more.

Check If you're already in the firefox-docker directory, by running pwd. If the output is not firefox-docker run cd ~/firefox-docker.

TIP: nano is a simple text editor that runs entirely in the current terminal session, very useful when editing config files without needing to leave the terminal

Once in the nano editor, paste the following

If you want to change the port the container is on, edit 6543 do not mess with the port 3000.

Once you're done editing your config file, press CTRL+X, then Y, then ENTER.

TIP: If you get an error about running as root, run using sudo

Now that your Firefox container is running, you probably want to use it... right? First, we need to find our local IP Address.

or

or

Your IP Address should look something like this, 10.0.0.145 or 192.0.2.1. Once you find your local IP Address, you can visit 10.0.0.145:6543. Replace 10.0.0.145 with your IP Address and 6543 with the port you set. But as of now you can only access this on your home network, but you want to be able to access it anywhere.

I highly recommend using a Cloudflare Tunnel, if you don't have a Domain that's managed by the Cloudflare Registrar you can use the public IPV4 address given by Tailscale to access it.

If you want more types of these posts, @j4ck.xyz did a leaflet on how he uses Tailscale to bypass school restrictions