Community Solution

Install Firefox in Docker on CasaOS Safely

A 2025 CasaOS tutorial showed the jlesage Firefox container; current upstream docs still use port 5800 and a persistent /config volume.

You can run Firefox as a browser-accessible Docker app on CasaOS using the maintained jlesage/firefox image. The core settings remain simple: map container port 5800 to an unused host port and persist /config so Firefox settings, state, and profile data survive container recreation.

The old community tutorial is directionally correct, but current upstream documentation should define the deployment. It also makes one security point clearer than many one-click guides: this container exposes a full graphical browser through a web interface, so do not publish port 5800 openly to the internet without authentication and transport security.

What This Firefox Container Actually Does

The container runs Firefox on the server and streams its graphical interface to your normal browser. You are not installing Firefox directly into CasaOS's host system.

The current jlesage Firefox documentation documents web access, VNC, authentication, reverse proxying, audio, clipboard sync, and persistent configuration.

Minimum CasaOS Settings

The upstream quick start still uses:

docker run -d   --name=firefox   -p 5800:5800   -v /docker/appdata/firefox:/config:rw   jlesage/firefox

In CasaOS, those settings translate to:

  • Image: jlesage/firefox
  • Host port: an unused port such as 5800
  • Container port: 5800/TCP
  • Persistent volume: a CasaOS AppData folder mapped to /config

How to Install It as a CasaOS Custom App

  1. Open the CasaOS App Store.
  2. Choose the custom/manual app option.
  3. Enter jlesage/firefox as the image.
  4. Add port mapping 5800:5800.
  5. Create an AppData folder and map it to /config.
  6. Set a persistent restart policy such as unless-stopped.
  7. Install the app and open http://SERVER-IP:5800.

Do Not Enable Privileged Mode “Just in Case”

The older community tutorial enabled privileges conservatively, but the current upstream quick start does not require privileged mode for ordinary Firefox use. Granting broad host capabilities without a specific requirement weakens Docker isolation.

Start with normal container permissions. Add only the device or capability a documented feature actually requires.

Keep /config Persistent

The upstream project says /config stores application configuration, state, logs, and persistent files. If you map it correctly, you can remove and recreate the Firefox container without losing that state.

The Docker persistence guide explains the same container-storage model.

Protect the Web Interface

A browser-in-a-browser can contain cookies, passwords, sessions, downloads, and browsing history. Treat the web UI as sensitive.

Upstream supports web authentication and VNC passwords. For remote use, place the service behind a private VPN/overlay network or a properly configured HTTPS reverse proxy rather than exposing 5800 directly to the public internet.

Use a Different Host Port If 5800 Is Busy

The container port can remain 5800 while the host port changes. For example:

5801:5800

You would then browse to http://SERVER-IP:5801. This is useful when another app already owns 5800.

How to Update Firefox

Pull the newer container image and recreate the container with the same /config volume mapping. Do not store important browser data only inside the disposable container layer.

When a Server-Side Browser Is Useful

  • isolated browsing from a home server;
  • access to LAN-only admin pages from a remote private connection;
  • automation or kiosk workflows;
  • keeping a browser profile on the server rather than a client PC.

It is not automatically more private than local Firefox. The server still makes the web requests, and anyone who gains access to the container UI may gain access to your sessions.

FAQ

What port does jlesage Firefox use?

The web UI uses container port 5800 by default. VNC uses 5900 if you choose to expose it.

Where are Firefox settings stored?

Map a persistent host folder to /config. Upstream documents this as the persistent configuration and state directory.

Does Firefox need privileged mode on CasaOS?

Not for the normal upstream quick-start configuration. Avoid privileged mode unless a specific documented feature requires it.

Can I expose the Firefox web UI to the internet?

Technically yes, but do not expose an unauthenticated HTTP browser session directly. Use authentication plus a private network or HTTPS reverse proxy.