From f7c185ea27ac725288298f18cc999ef7a8db8b83 Mon Sep 17 00:00:00 2001 From: Jocelyn Le Sage Date: Fri, 7 Oct 2022 15:12:32 -0400 Subject: [PATCH] Converted app definitions to YAML format. --- appdefs.xml | 336 ---------------------------------------------------- appdefs.yml | 287 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 287 insertions(+), 336 deletions(-) delete mode 100644 appdefs.xml create mode 100644 appdefs.yml diff --git a/appdefs.xml b/appdefs.xml deleted file mode 100644 index dc8561a..0000000 --- a/appdefs.xml +++ /dev/null @@ -1,336 +0,0 @@ - - - - 14 - x11 - Firefox - {{ defs.app.friendly_name|lower|replace(' ', '-') }} - - Mozilla Firefox is a free and open-source web browser developed by Mozilla Foundation and its subsidiary, Mozilla Corporation. - https://www.mozilla.org/en-US/firefox/ - - - https://forums.unraid.net/topic/69440-support-firefox/ - Tools: - - - 150MB - /storage - - - -
- Increasing Shared Memory Size - -To prevent crashes from happening when running {{ defs.app.friendly_name }} -inside a Docker container, the size of the shared memory located at `/dev/shm` -must be increased. The issue is documented [here]. - -By default, the size is 64MB, which is not enough. It is recommended to use a -size of 2GB. This value is arbitrary, but known to work well. Setting the -size of `/dev/shm` can be done via two method: - - - By adding the `--shm-size 2g` parameter to the `docker run` command. See - the [Usage](#usage) section for more details. - - By using shared memory of the host, by mapping `/dev/shm` via the parameter - `-v /dev/shm:/dev/shm` of the `docker run` command. - -
-
- Allowing the membarrier System Call - -To properly work, recent versions of {{ defs.app.friendly_name }} need the -`membarrier` system call. Without it, tabs would frequently crash. - -Docker uses [seccomp profile] to restrict system calls available to the -container. Before Docker version `20.10.0`, the `membarrier` system call was -not allowed in the default profile. If you run a such version, you can use one -of the following solutions, from the most to the least secure, to provide the -container permission to use this sytem call: - - 1. Run the container with a custom seccomp profile allowing the `membarrier` - system call. The [latest official seccomp profile] can be used. Download - the file and then add the following parameter when creating the container: - `--security-opt seccomp=/path/to/seccomp_profile.json`. - 2. Run the container without the default seccomp profile (thus allowing all - system calls). Use the following parameter when creating the container: - `--security-opt seccomp=unconfined`. - 3. Run the container in privileged mode. This effectively disables usage of - seccomp. Add the `--privileged` parameter when creating the container. - -
-
- Sound Support - -For {{ defs.app.friendly_name }} to be able to use the audio device available on -the host, `/dev/snd` must be exposed to the container by adding the -`--device /dev/snd` parameter to the `docker run` command. - -
-
- Setting {{ defs.app.friendly_name }} Preferences Via Environment Variables - -{{ defs.app.friendly_name }} preferences can be set via environment variables -passed to the container. During the startup, a script process all these -variables and modify the preference file accordingly. - -The name of the environment variable must start with `FF_PREF_`, followed by a -string of your choice. For example, `FF_PREF_MY_PREF` is a valid name. - -The content of the variable should be in the format `NAME=VAL`, where `NAME` is -the name of the preference (as found in the `about:config` page) and `VAL` is -its value. A value can be one of the following types: - - string - - integer - - boolean - -It is important to note that a value of type `string` should be surrounded by -double quotes. Other types don't need them. - -For example, to set the `network.proxy.http` preference, one would pass the -environment variable to the container by adding the following argument to the -`docker run` command: - -``` --e "FF_PREF_HTTP_PROXY=network.proxy.http=\"proxy.example.com\"" -``` - -If a preference needs to be *removed*, its value should be set to `UNSET`. For -example: - -``` --e "FF_PREF_HTTP_PROXY=network.proxy.http=UNSET" -``` - -**NOTE**: This is an advanced usage and it is recommended to set preferences -via {{ defs.app.friendly_name }} directly. - -
-
- Troubleshooting - -
-
- Crashes - -If {{ defs.app.friendly_name }} is crashing frequently, make sure that: - - The size of the shared memory located at `/dev/shm` has been increased. See - the [Increasing Shared Memory Size](#increasing-shared-memory-size) section - for more details. - - The `membarrier` system call is not blocked by Docker. See the - [Allowing the membarrier System Call](#allowing-the-membarrier-system-call) - for more details. - - Make sure the kernel of your Linux distribution is up-to-date. - -
- - here - https://bugzilla.mozilla.org/show_bug.cgi?id=1338771#c10 - - - seccomp profile - https://docs.docker.com/engine/security/seccomp/ - - - latest official seccomp profile - https://github.com/moby/moby/blob/master/profiles/seccomp/default.json - -
- - - - 1.18.0 - 2021-12-30 - Updated Firefox to version 94.0-r0. - Now using baseimage version 3.5.8, based on Alpine 3.15, which brings the following change: - Updated installed packages to get latest security fixes. - - - 1.17.1 - 2021-04-13 - Now using baseimage version 3.5.7, which brings the following change: - Updated installed packages to get latest security fixes. - - - 1.17.0 - 2021-02-06 - Updated Firefox to version 84.0.2-r0. - - - 1.16.0 - 2020-12-16 - Updated Firefox to version 83.0-r1. - - - 1.15.0 - 2020-10-01 - Updated Firefox to version 81.0-r0 - - - 1.14.0 - 2020-08-05 - Upgraded Firefox to version 79.0-r0. - Now using baseimage to version 3.5.6, which brings the following changes: - Other small adjustments for the YAD log monitor target. - - - 1.13.0 - 2020-07-19 - Upgraded Firefox to version 78.0.2-r1. - Added check for missing `membarrier` system call support. - Now using baseimage v3.5.5, based on Alpine 3.12, which brings the following changes: - Upgraded glibc to version 2.31 on Alpine Linux images with glibc integrated. - Updated installed packages to get latest security fixes. - Adjusted the log monitor target for recent versions of YAD. - - - 1.12.0 - 2020-06-24 - Upgraded Firefox to version 77.0.1-r2. - - - 1.11.0 - 2020-04-25 - Upgraded Firefox to version 75.0-r2. - - - 1.10.0 - 2020-03-15 - Upgraded Firefox to version 74.0-r0. - - - 1.9.1 - 2020-02-10 - Upgraded Firefox to version 72.0.2-r0. - - - 1.9.0 - 2020-01-14 - Upgraded Firefox to version 72.0.1-r0. - - - 1.8.0 - 2019-12-25 - Upgraded Firefox to version 71.0-r0. - Now using baseimage v3.5.3, which brings the following changes: - Updated installed packages to get latest security fixes. - Make sure the tzdata is installed. - Use baseimage based on Alpine Linux 3.10. - - - 1.7.1 - 2019-08-26 - Upgraded Firefox to version 68.0.2-r0. - - - 1.7.0 - 2019-08-05 - Upgraded Firefox to version 68.0.r0. - - - 1.6.0 - 2019-07-17 - Upgraded Firefox to version 67.0.4-r0. - - - 1.5.1 - 2019-05-12 - Upgraded Firefox to version 66.0.5-r1. - - - 1.5.0 - 2019-05-09 - Upgraded Firefox to version 66.0.4-r0. - Print the Firefox version during the container startup. - - - 1.4.1 - 2019-04-24 - Upgraded Firefox to version 62.0.3-r4. - Now using baseimage v3.5.2, which brings the following changes: - Updated installed packages to get latest security fixes. - Fixed issue where the container could have a zombie process. - Fixed issue where the password would not be submitted when pressing the enter key in the password modal. - Use relative path for favicon ressources to be more friendly with reverse proxy senarios. - - - 1.4.0 - 2019-02-24 - Upgraded Firefox to version 62.0.3-r2. - Preferences can now be set via environment variables. - Use baseimage based on Alpine Linux 3.9. - - - 1.3.1 - 2018-09-18 - Now using baseimage v3.5.1, which brings the following changes: - Updated installed packages to get latest security fixes. - - - 1.3.0 - 2018-07-27 - Added support for more playable video formats. - Added support for sound in Firefox. - - - 1.2.0 - 2018-07-12 - Now using baseimage v3.4.0, which is based on Alpine Linux 3.8. - Upgraded Firefox to version 61.0.1-r0. - - - 1.1.0 - 2018-05-31 - Upgraded Firefox to version 60.0.1-r0. - - - 1.0.2 - 2018-03-15 - Fixed issue where Firefox would not gracefully terminate. - Fixed an issue where restoring session would resize window to the wrong dimensions. - - - 1.0.1 - 2018-03-02 - Now using baseimage v3.3.4, which brings the following changes: - Fixed issue where log monitor states were not cleared during container startup. - Updated Firefox to version 58.0.1-r2. - - - 1.0.0 - 2018-02-16 - Initial release. - - -
- - - - - - - - - - - /dev/snd - Optional Linux device to expose to have sound. - false - - - - - - shm-size - 2g - Set the size of `/dev/shm` to `VALUE`. The format of `VALUE` is `<number><unit>`, where `number` must be greater than `0` and `unit` can be `b` (bytes), `k` (kilobytes), `m` (megabytes), or `g` (gigabytes). **NOTE**: To avoid crashes, it is recommended to set this value to `2g`. - true - - - -
diff --git a/appdefs.yml b/appdefs.yml new file mode 100644 index 0000000..abab75e --- /dev/null +++ b/appdefs.yml @@ -0,0 +1,287 @@ +--- + +# +# Definitions for Firefox docker container. +# +# This file is used as data source to generate README.md and unRAID template files +# from Jinja2 templates. +# +# +app: + id: 14 + name: firefox + friendly_name: Firefox + gui_type: x11 + project: + description: |- + Mozilla Firefox is a free and open-source web browser developed by Mozilla + Foundation and its subsidiary, Mozilla Corporation. + url: https://www.mozilla.org/en-US/firefox/ + unraid: + support_url: https://forums.unraid.net/topic/69440-support-firefox/ + category: "Tools:" + documentation: + sections: + - title: Increasing Shared Memory Size + level: 2 + content: |- + To prevent crashes from happening when running {{ app.friendly_name }} + inside a Docker container, the size of the shared memory located at `/dev/shm` + must be increased. The issue is documented [here]. + + By default, the size is 64MB, which is not enough. It is recommended to use a + size of 2GB. This value is arbitrary, but known to work well. Setting the + size of `/dev/shm` can be done via two method: + + - By adding the `--shm-size 2g` parameter to the `docker run` command. See + the [Usage](#usage) section for more details. + - By using shared memory of the host, by mapping `/dev/shm` via the parameter + `-v /dev/shm:/dev/shm` of the `docker run` command. + - title: Allowing the membarrier System Call + level: 2 + content: |- + To properly work, recent versions of {{ app.friendly_name }} need the + `membarrier` system call. Without it, tabs would frequently crash. + + Docker uses [seccomp profile] to restrict system calls available to the + container. Before Docker version `20.10.0`, the `membarrier` system call was + not allowed in the default profile. If you run a such version, you can use one + of the following solutions, from the most to the least secure, to provide the + container permission to use this sytem call: + + 1. Run the container with a custom seccomp profile allowing the `membarrier` + system call. The [latest official seccomp profile] can be used. Download + the file and then add the following parameter when creating the container: + `--security-opt seccomp=/path/to/seccomp_profile.json`. + 2. Run the container without the default seccomp profile (thus allowing all + system calls). Use the following parameter when creating the container: + `--security-opt seccomp=unconfined`. + 3. Run the container in privileged mode. This effectively disables usage of + seccomp. Add the `--privileged` parameter when creating the container. + + [here]: https://bugzilla.mozilla.org/show_bug.cgi?id=1338771#c10 + [latest official seccomp profile]: https://github.com/moby/moby/blob/master/profiles/seccomp/default.json + [seccomp profile]: https://docs.docker.com/engine/security/seccomp/ + - title: Sound Support + level: 2 + content: |- + For {{ app.friendly_name }} to be able to use the audio device available on + the host, `/dev/snd` must be exposed to the container by adding the + `--device /dev/snd` parameter to the `docker run` command. + - title: Setting {{ app.friendly_name }} Preferences Via Environment Variables + level: 2 + content: |- + {{ app.friendly_name }} preferences can be set via environment variables + passed to the container. During the startup, a script process all these + variables and modify the preference file accordingly. + + The name of the environment variable must start with `FF_PREF_`, followed by a + string of your choice. For example, `FF_PREF_MY_PREF` is a valid name. + + The content of the variable should be in the format `NAME=VAL`, where `NAME` is + the name of the preference (as found in the `about:config` page) and `VAL` is + its value. A value can be one of the following types: + - string + - integer + - boolean + + It is important to note that a value of type `string` should be surrounded by + double quotes. Other types don't need them. + + For example, to set the `network.proxy.http` preference, one would pass the + environment variable to the container by adding the following argument to the + `docker run` command: + + ``` + -e "FF_PREF_HTTP_PROXY=network.proxy.http=\"proxy.example.com\"" + ``` + + If a preference needs to be *removed*, its value should be set to `UNSET`. For + example: + + ``` + -e "FF_PREF_HTTP_PROXY=network.proxy.http=UNSET" + ``` + + **NOTE**: This is an advanced usage and it is recommended to set preferences + via {{ app.friendly_name }} directly. + - title: Troubleshooting + level: 2 + - title: Crashes + level: 3 + content: |- + If {{ app.friendly_name }} is crashing frequently, make sure that: + - The size of the shared memory located at `/dev/shm` has been increased. See + the [Increasing Shared Memory Size](#increasing-shared-memory-size) section + for more details. + - The `membarrier` system call is not blocked by Docker. See the + [Allowing the membarrier System Call](#allowing-the-membarrier-system-call) + for more details. + - Make sure the kernel of your Linux distribution is up-to-date. + changelog: + - version: 1.18.0 + date: 2021-12-30 + changes: + - 'Updated Firefox to version 94.0-r0.' + - 'Now using baseimage version 3.5.8, based on Alpine 3.15, which brings the following change:' + - '2:Updated installed packages to get latest security fixes.' + - version: 1.17.1 + date: 2021-04-13 + changes: + - 'Now using baseimage version 3.5.7, which brings the following change:' + - '2:Updated installed packages to get latest security fixes.' + - version: 1.17.0 + date: 2021-02-06 + changes: + - 'Updated Firefox to version 84.0.2-r0.' + - version: 1.16.0 + date: 2020-12-16 + changes: + - 'Updated Firefox to version 83.0-r1.' + - version: 1.15.0 + date: 2020-10-01 + changes: + - 'Updated Firefox to version 81.0-r0' + - version: 1.14.0 + date: 2020-08-05 + changes: + - 'Upgraded Firefox to version 79.0-r0.' + - 'Now using baseimage to version 3.5.6, which brings the following changes:' + - '2:Other small adjustments for the YAD log monitor target.' + - version: 1.13.0 + date: 2020-07-19 + changes: + - 'Upgraded Firefox to version 78.0.2-r1.' + - 'Added check for missing `membarrier` system call support.' + - 'Now using baseimage v3.5.5, based on Alpine 3.12, which brings the following changes:' + - '2:Upgraded glibc to version 2.31 on Alpine Linux images with glibc integrated.' + - '2:Updated installed packages to get latest security fixes.' + - '2:Adjusted the log monitor target for recent versions of YAD.' + - version: 1.12.0 + date: 2020-06-24 + changes: + - 'Upgraded Firefox to version 77.0.1-r2.' + - version: 1.11.0 + date: 2020-04-25 + changes: + - 'Upgraded Firefox to version 75.0-r2.' + - version: 1.10.0 + date: 2020-03-15 + changes: + - 'Upgraded Firefox to version 74.0-r0.' + - version: 1.9.1 + date: 2020-02-10 + changes: + - 'Upgraded Firefox to version 72.0.2-r0.' + - version: 1.9.0 + date: 2020-01-14 + changes: + - 'Upgraded Firefox to version 72.0.1-r0.' + - version: 1.8.0 + date: 2019-12-25 + changes: + - 'Upgraded Firefox to version 71.0-r0.' + - 'Now using baseimage v3.5.3, which brings the following changes:' + - '2:Updated installed packages to get latest security fixes.' + - '2:Make sure the tzdata is installed.' + - 'Use baseimage based on Alpine Linux 3.10.' + - version: 1.7.1 + date: 2019-08-26 + changes: + - 'Upgraded Firefox to version 68.0.2-r0.' + - version: 1.7.0 + date: 2019-08-05 + changes: + - 'Upgraded Firefox to version 68.0.r0.' + - version: 1.6.0 + date: 2019-07-17 + changes: + - 'Upgraded Firefox to version 67.0.4-r0.' + - version: 1.5.1 + date: 2019-05-12 + changes: + - 'Upgraded Firefox to version 66.0.5-r1.' + - version: 1.5.0 + date: 2019-05-09 + changes: + - 'Upgraded Firefox to version 66.0.4-r0.' + - 'Print the Firefox version during the container startup.' + - version: 1.4.1 + date: 2019-04-24 + changes: + - 'Upgraded Firefox to version 62.0.3-r4.' + - 'Now using baseimage v3.5.2, which brings the following changes:' + - '2:Updated installed packages to get latest security fixes.' + - '2:Fixed issue where the container could have a zombie process.' + - '2:Fixed issue where the password would not be submitted when pressing the enter key in the password modal.' + - '2:Use relative path for favicon ressources to be more friendly with reverse proxy senarios.' + - version: 1.4.0 + date: 2019-02-24 + changes: + - 'Upgraded Firefox to version 62.0.3-r2.' + - 'Preferences can now be set via environment variables.' + - 'Use baseimage based on Alpine Linux 3.9.' + - version: 1.3.1 + date: 2018-09-18 + changes: + - 'Now using baseimage v3.5.1, which brings the following changes:' + - '2:Updated installed packages to get latest security fixes.' + - version: 1.3.0 + date: 2018-07-27 + changes: + - 'Added support for more playable video formats.' + - 'Added support for sound in Firefox.' + - version: 1.2.0 + date: 2018-07-12 + changes: + - 'Now using baseimage v3.4.0, which is based on Alpine Linux 3.8.' + - 'Upgraded Firefox to version 61.0.1-r0.' + - version: 1.1.0 + date: 2018-05-31 + changes: + - 'Upgraded Firefox to version 60.0.1-r0.' + - version: 1.0.2 + date: 2018-03-15 + changes: + - 'Fixed issue where Firefox would not gracefully terminate.' + - 'Fixed an issue where restoring session would resize window to the wrong dimensions.' + - version: 1.0.1 + date: 2018-03-02 + changes: + - 'Now using baseimage v3.3.4, which brings the following changes:' + - '2:Fixed issue where log monitor states were not cleared during container startup.' + - 'Updated Firefox to version 58.0.1-r2.' + - version: 1.0.0 + date: 2018-02-16 + changes: + - 'Initial release.' + +container: + rough_download_size: 150MB + unsupported_volume: /storage + + # Environment variables. + environment_variables: [] + + # Volumes + volumes: [] + + # Network ports + ports: [] + + # Devices + devices: + - path: /dev/snd + description: Optional Linux device to expose to have sound. + + # Extra parameters + extra_params: + - name: shm-size + value: 2g + description: >- + Set the size of `/dev/shm` to `VALUE`. The format of `VALUE` is + ``, where `number` must be greater than `0` and `unit` + can be `b` (bytes), `k` (kilobytes), `m` (megabytes), or `g` + (gigabytes). **NOTE**: To avoid crashes, it is recommended to set this + value to `2g`. + include_in_quick_start: true