A simple Bash installer for running web-accessible Chromium and Firefox Docker containers on a Linux server.
It keeps an interactive menu for installing, uninstalling, checking status, and exiting. It also supports direct non-interactive actions for automation.
- Interactive Bash menu for install, uninstall, status, and exit.
- Chromium and Firefox containers from linuxserver.io.
- Chromium HTTP on
3000and HTTPS on3001. - Firefox HTTP on
4000and HTTPS on4001. - Persistent config in
/opt/instant-linux-browser/<browser>/config. - Username/password prompts, with
ILB_USERNAMEandILB_PASSWORDoverrides. - Supports amd64/x86_64 and arm64/aarch64 Linux servers when the upstream image supports them.
- Works when downloaded first or when run through
curl | sudo bash.
Use only raw.githubusercontent.com URLs for curl commands. Do not use normal GitHub page URLs such as github.com/.../blob/..., because those return an HTML page, not the raw Bash script.
curl -fsSLO https://raw.githubusercontent.com/Mammad3861/Instant-Linux-Browser/main/browser.sh
sudo bash browser.shcurl -fsSL https://raw.githubusercontent.com/Mammad3861/Instant-Linux-Browser/main/browser.sh | sudo bashcurl -fsSL https://raw.githubusercontent.com/Mammad3861/Instant-Linux-Browser/main/browser.sh | sudo ILB_ACTION=install-chromium bashcurl -fsSL https://raw.githubusercontent.com/Mammad3861/Instant-Linux-Browser/main/browser.sh | sudo ILB_ACTION=install-firefox bashYou can also pass credentials:
curl -fsSL https://raw.githubusercontent.com/Mammad3861/Instant-Linux-Browser/main/browser.sh | sudo ILB_ACTION=install-chromium ILB_USERNAME=admin ILB_PASSWORD='change-this-password' bashsudo bash browser.sh install-chromium
sudo bash browser.sh install-firefox
sudo bash browser.sh uninstall-chromium
sudo bash browser.sh uninstall-firefox
sudo bash browser.sh statusEnvironment action form:
sudo ILB_ACTION=install-chromium bash browser.sh
sudo ILB_ACTION=status bash browser.sh1- Install Chromium2- Uninstall Chromium3- Install Firefox4- Uninstall Firefox5- Show status/diagnostics6- Exit
Chromium is launched with these flags by default:
--no-sandbox --disable-gpu --disable-software-rasterizer --disable-dev-shm-usage --disable-setuid-sandbox
The script passes them to the linuxserver/chromium container through both CHROME_CLI and CHROME_FLAGS.
To override them:
sudo CHROMIUM_FLAGS="--no-sandbox --disable-dev-shm-usage" bash browser.sh install-chromiumThe script checks that Docker is installed and running. On Ubuntu/Debian systems, it can install Docker from the system package repositories if Docker is missing.
Before starting a browser, the script:
- checks the server architecture;
- checks that required ports are available;
- pulls the selected Docker image;
- creates the persistent config directory;
- starts the container;
- verifies that the container is still running.
If startup fails, check logs:
sudo docker logs chromium
sudo docker logs firefoxUninstall removes the container but keeps persistent config:
/opt/instant-linux-browser/chromium/config
/opt/instant-linux-browser/firefox/config
Delete those directories manually only if you no longer need the browser profile data.
If exposing the browser to the public internet:
- use a strong password;
- restrict access with a firewall, VPN, or IP allow-list;
- consider putting it behind Nginx, Traefik, or another HTTPS reverse proxy;
- avoid exposing ports
3000,3001,4000, or4001publicly unless needed.
Empty passwords are allowed, but the script warns when one is selected.
MIT
