diff --git a/.docker/waterfox/Dockerfile b/.docker/waterfox/Dockerfile new file mode 100644 index 00000000..49f4c66b --- /dev/null +++ b/.docker/waterfox/Dockerfile @@ -0,0 +1,35 @@ +ARG BASE_IMAGE=m1k1o/neko:base +FROM $BASE_IMAGE + +ARG SRC_URL="https://cdn1.waterfox.net/waterfox/releases/latest/linux" + +# +# install waterfox +RUN set -eux; apt-get update; \ + apt-get install -y --no-install-recommends openbox \ + xz-utils bzip2 libgtk-3-0 libdbus-glib-1-2; \ + # + # fetch latest release + wget -O /tmp/waterfox-setup.tar.bz2 "${SRC_URL}"; \ + mkdir /usr/lib/waterfox; \ + tar -xjf /tmp/waterfox-setup.tar.bz2 -C /usr/lib; \ + rm -f /tmp/waterfox-setup.tar.bz2; \ + ln -s /usr/lib/waterfox/waterfox /usr/bin/waterfox; \ + # + # create a profile directory + mkdir -p /home/neko/.waterfox/profile.default/extensions; \ + chown -R neko:neko /home/neko/.waterfox/profile.default; \ + # + # clean up + apt-get --purge autoremove -y xz-utils bzip2; \ + apt-get clean -y; \ + rm -rf /var/lib/apt/lists/* /var/cache/apt/* + +# +# copy configuation files +COPY supervisord.conf /etc/neko/supervisord/waterfox.conf +COPY neko.js /usr/lib/waterfox/mozilla.cfg +COPY autoconfig.js /usr/lib/waterfox/defaults/pref/autoconfig.js +COPY policies.json /usr/lib/waterfox/distribution/policies.json +COPY --chown=neko profiles.ini /home/neko/.waterfox/profiles.ini +COPY openbox.xml /etc/neko/openbox.xml diff --git a/.docker/waterfox/autoconfig.js b/.docker/waterfox/autoconfig.js new file mode 100644 index 00000000..87d65796 --- /dev/null +++ b/.docker/waterfox/autoconfig.js @@ -0,0 +1,2 @@ +pref("general.config.obscure_value", 0); +pref("general.config.filename", "mozilla.cfg"); \ No newline at end of file diff --git a/.docker/waterfox/neko.js b/.docker/waterfox/neko.js new file mode 100644 index 00000000..a55e1e51 --- /dev/null +++ b/.docker/waterfox/neko.js @@ -0,0 +1,37 @@ +// firefox config for neko +lockPref("browser.tabs.closeWindowWithLastTab", false); +lockPref("app.update.auto", false); +lockPref("app.update.enabled", false); +lockPref("app.update.silent", true); +lockPref("browser.cache.disk.capacity", 1000); +lockPref("browser.download.useDownloadDir", false); +lockPref("browser.rights.3.shown", true); +lockPref("browser.search.update", false); +lockPref("browser.shell.checkDefaultBrowser", false); +lockPref("extensions.update.enabled", false); +lockPref("plugin.default_plugin_disabled", false); +lockPref("plugin.scan.plid.all", true); +lockPref("plugins.hide_infobar_for_missing_plugin", true); +lockPref("profile.allow_automigration", false); +lockPref("signon.prefillForms", false); +lockPref("signon.rememberSignons", false); +lockPref("xpinstall.enabled", false); +lockPref("xpinstall.whitelist.required", true); +lockPref("browser.download.manager.retention", 0); +lockPref("browser.download.folderList", 2); +lockPref("browser.download.forbid_open_with", true); +lockPref("browser.safebrowsing.downloads.enabled", false); +lockPref("browser.safebrowsing.downloads.remote.enabled", false); +lockPref("browser.helperApps.alwaysAsk.force", false); +lockPref("browser.helperApps.neverAsk.saveToDisk", "application/zip,application/octet-stream,image/jpeg,application/vnd.ms-outlook,text/html,application/pdf"); +lockPref("browser.helperApps.neverAsk.openFile", "application/zip,application/octet-stream,image/jpeg,application/vnd.ms-outlook,text/html,application/pdf"); +lockPref("browser.newtabpage.activity-stream.default.sites", "https://ipleak.net/,https://www.youtube.com/,https://www.google.com/"); +// dark mode +lockPref("reader.color_scheme", "dark"); +lockPref("devtools.theme", "dark"); +lockPref("ui.systemUsesDarkTheme", 1); +lockPref("lightweightThemes.usedThemes","[]"); +lockPref("lightweightThemes.selectedThemeID", "firefox-compact-dark@mozilla.org"); +lockPref("extensions.activeThemeID", "firefox-compact-dark@mozilla.org"); +lockPref("browser.theme.toolbar-theme", 0); +lockPref("browser.in-content.dark-mode", true); diff --git a/.docker/waterfox/openbox.xml b/.docker/waterfox/openbox.xml new file mode 100644 index 00000000..e2155389 --- /dev/null +++ b/.docker/waterfox/openbox.xml @@ -0,0 +1,763 @@ + + + + + + + + 10 + 20 + + + + + + no + true + yes + normal + + + + + yes + + no + + yes + + no + + 200 + + no + + + + + Smart + +
yes
+ + Primary + + 1 + +
+ + + Clearlooks + NLIMC + + yes + yes + + sans + 8 + + bold + + normal + + + + sans + 8 + + bold + + normal + + + + sans + 9 + + normal + + normal + + + + sans + 9 + + normal + + normal + + + + sans + 9 + + bold + + normal + + + + sans + 9 + + bold + + normal + + + + + + + 1 + 1 + + + + 875 + + + + + yes + Nonpixel + + Center + + + + + 10 + + 10 + + + + + + + 0 + 0 + 0 + 0 + + + + TopLeft + + 0 + 0 + no + Above + + Vertical + + no + 300 + + 300 + + Middle + + + + + C-g + + + + leftno + + + rightno + + + upno + + + downno + + + leftno + + + rightno + + + upno + + + downno + + + 1 + + + 2 + + + 3 + + + 4 + + + + + + + + + + + + + + + + + + + + scrot -s + + + + + + + + + + + + + + + + + + + + + + + + yesyes + + + + + + + + + + + + right + + + + + left + + + + + up + + + + + down + + + + + + + + true + Konqueror + + kfmclient openProfile filemanagement + + + + + scrot + + + + + 1 + + 500 + + 400 + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + + + next + + + previous + + + next + + + previous + + + next + + + + + + + + + + + + + + no + + + + + + + + + + + yes + + + + + + + + + + + + + + + + + + + + + + + + + + + top + + + + + + left + + + + + + right + + + + + + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vertical + + + horizontal + + + + + + + + + + + + + + + + + previous + + + next + + + + previous + + + next + + + previous + + + next + + + + + + + + + + + + + + + + + + + + previous + + + next + + + previous + + + next + + + + + + + + + + + menu.xml + 200 + + no + + 100 + + 400 + + yes + + yes + + + + + + + +
diff --git a/.docker/waterfox/policies.json b/.docker/waterfox/policies.json new file mode 100644 index 00000000..4e2e267c --- /dev/null +++ b/.docker/waterfox/policies.json @@ -0,0 +1,129 @@ +{ + "policies": { + "BlockAboutAddons": false, + "BlockAboutConfig": true, + "BlockAboutProfiles": true, + "BlockAboutSupport": true, + "Bookmarks": [ + { + "Title": "IPLeak", + "URL": "https://ipleak.net/", + "Favicon": "https://ipleak.net/favicon.ico", + "Folder": "Pages", + "Placement": "toolbar" + }, + { + "Title": "YouTube", + "URL": "https://www.youtube.com/", + "Favicon": "https://www.youtube.com/favicon.ico", + "Folder": "Pages", + "Placement": "toolbar" + }, + { + "Title": "Google", + "URL": "https://www.google.com/", + "Favicon": "https://www.google.com/favicon.ico", + "Folder": "Pages", + "Placement": "toolbar" + } + ], + "CaptivePortal": false, + "DisableAppUpdate": true, + "DisableBuiltinPDFViewer": true, + "DisableDeveloperTools": false, + "DisableFeedbackCommands": true, + "DisableFirefoxAccounts": true, + "DisableFirefoxScreenshots": true, + "DisableFirefoxStudies": true, + "DisableForgetButton": true, + "DisableMasterPasswordCreation": true, + "DisablePocket": true, + "DisablePrivateBrowsing": true, + "DisableProfileImport": true, + "DisableProfileRefresh": true, + "DisableSafeMode": true, + "DisableSetDesktopBackground": true, + "DisableSystemAddonUpdate": true, + "DisableTelemetry": true, + "DisplayBookmarksToolbar": false, + "DontCheckDefaultBrowser": true, + "EnableTrackingProtection": { + "Cryptomining": true, + "Fingerprinting": true, + "Value": true + }, + "ExtensionSettings": { + "*": { + "installation_mode": "blocked" + }, + "sponsorBlocker@ajay.app": { + "install_url": "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi", + "installation_mode": "force_installed" + }, + "uBlock0@raymondhill.net": { + "install_url": "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi", + "installation_mode": "force_installed" + } + }, + "ExtensionUpdate": false, + "FirefoxHome": { + "Highlights": false, + "Pocket": false, + "Search": true, + "Snippets": false, + "TopSites": true + }, + "FlashPlugin": {}, + "HardwareAcceleration": false, + "Homepage": { + "Additional": [], + "StartPage": "home" + }, + "NewTabPage": true, + "NoDefaultBookmarks": true, + "OfferToSaveLogins": false, + "OfferToSaveLoginsDefault": false, + "OverrideFirstRunPage": "", + "OverridePostUpdatePage": "", + "PasswordManagerEnabled": false, + "Permissions": { + "Camera": { + "BlockNewRequests": true + }, + "Location": { + "BlockNewRequests": true + }, + "Microphone": { + "BlockNewRequests": true + }, + "Notifications": { + "BlockNewRequests": true + } + }, + "Preferences": { + "browser.tabs.warnOnClose": false, + "browser.urlbar.suggest.bookmark": false, + "browser.urlbar.suggest.history": false, + "browser.urlbar.suggest.openpage": false, + "datareporting.policy.dataSubmissionPolicyBypassNotification": true, + "dom.disable_window_flip": true, + "dom.disable_window_move_resize": true, + "dom.event.contextmenu.enabled": true, + "extensions.getAddons.showPane": false, + "places.history.enabled": false, + "privacy.file_unique_origin": true, + "ui.key.menuAccessKeyFocuses": false + }, + "PromptForDownloadLocation": false, + "SanitizeOnShutdown": { + "Cache": true, + "Cookies": true, + "Downloads": true, + "FormData": true, + "History": true, + "OfflineApps": true, + "Sessions": true, + "SiteSettings": true + } + } +} \ No newline at end of file diff --git a/.docker/waterfox/profiles.ini b/.docker/waterfox/profiles.ini new file mode 100644 index 00000000..fc9f13ee --- /dev/null +++ b/.docker/waterfox/profiles.ini @@ -0,0 +1,8 @@ +[General] +StartWithLastProfile=1 + +[Profile0] +Name=default +IsRelative=1 +Path=profile.default +Default=1 diff --git a/.docker/waterfox/supervisord.conf b/.docker/waterfox/supervisord.conf new file mode 100644 index 00000000..920fb964 --- /dev/null +++ b/.docker/waterfox/supervisord.conf @@ -0,0 +1,22 @@ +[program:waterfox] +environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s" +command=/usr/bin/waterfox --no-remote -P default --display=%(ENV_DISPLAY)s -setDefaultBrowser -width 1280 -height 720 +stopsignal=INT +autorestart=true +priority=800 +user=%(ENV_USER)s +stdout_logfile=/var/log/neko/waterfox.log +stdout_logfile_maxbytes=100MB +stdout_logfile_backups=10 +redirect_stderr=true + +[program:openbox] +environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s" +command=/usr/bin/openbox --config-file /etc/neko/openbox.xml +autorestart=true +priority=300 +user=%(ENV_USER)s +stdout_logfile=/var/log/neko/openbox.log +stdout_logfile_maxbytes=100MB +stdout_logfile_backups=10 +redirect_stderr=true diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml index 8799164e..f0f8d88e 100644 --- a/.github/workflows/dockerhub.yml +++ b/.github/workflows/dockerhub.yml @@ -50,7 +50,7 @@ jobs: # Will build all images even if some fail. fail-fast: false matrix: - tags: [ firefox, chromium, google-chrome, ungoogled-chromium, microsoft-edge, brave, vivaldi, opera, tor-browser, remmina, vlc, xfce, kde ] + tags: [ firefox, waterfox, chromium, google-chrome, ungoogled-chromium, microsoft-edge, brave, vivaldi, opera, tor-browser, remmina, vlc, xfce, kde ] env: DOCKER_TAG: ${{ matrix.tags }} steps: diff --git a/.github/workflows/ghcr-amd.yml b/.github/workflows/ghcr-amd.yml index c36144d3..fc85a9f1 100644 --- a/.github/workflows/ghcr-amd.yml +++ b/.github/workflows/ghcr-amd.yml @@ -70,6 +70,7 @@ jobs: matrix: include: - tag: firefox + - tag: waterfox - tag: chromium - tag: google-chrome - tag: ungoogled-chromium diff --git a/webpage/docs/getting-started/docker-images.md b/webpage/docs/getting-started/docker-images.md index 6d1b480c..90095ced 100644 --- a/webpage/docs/getting-started/docker-images.md +++ b/webpage/docs/getting-started/docker-images.md @@ -41,7 +41,8 @@ In comparison to Chromium-based browsers, Firefox-based browsers do not require | Icon | Name | Docker Image | | ---- | ---- | ------------ | | | [Firefox](https://www.mozilla.org/firefox/)
The open-source browser from Mozilla. | [`ghcr.io/m1k1o/neko/firefox`](https://ghcr.io/m1k1o/neko/firefox) | -| | [Tor Browser](https://www.torproject.org/)
The privacy-focused browser from the Tor Project. | [`ghcr.io/m1k1o/neko/tor-browser`](https://ghcr.io/m1k1o/neko/tor-browser) | +| | [Tor Browser](https://www.torproject.org/)
A browser designed to access the Tor network for enhanced privacy. | [`ghcr.io/m1k1o/neko/tor-browser`](https://ghcr.io/m1k1o/neko/tor-browser) | +| | [Waterfox](https://www.waterfox.net/)
A privacy-focused browser based on Firefox. | [`ghcr.io/m1k1o/neko/waterfox`](https://ghcr.io/m1k1o/neko/waterfox) | ### Chromium-based browsers diff --git a/webpage/static/img/icons/waterfox.svg b/webpage/static/img/icons/waterfox.svg new file mode 100644 index 00000000..2d91f57e --- /dev/null +++ b/webpage/static/img/icons/waterfox.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + +