Skip to content

Extension installation for docker instance #318

Closed

Description

@lnguyen4

I am having a hard time figuring out how to add third-party extension to a docker instance.
I am using Fedora Workstation 42.

So, I have the following docker-compose.yml file as follow:

volumes:
  data:
  extensions:
services:
  freshrss:
    image: freshrss/freshrss:latest
    # # Optional build section if you want to build the image locally:
    # build:
    #   # Pick #latest (slow releases) or #edge (rolling release) or a specific release like #1.21.0
    #   context: https://github.com/FreshRSS/FreshRSS.git#latest
    #   dockerfile: Docker/Dockerfile-Alpine
    container_name: freshrss
    hostname: freshrss
    restart: unless-stopped
    logging:
      options:
        max-size: 10m
    volumes:
      - data:/var/www/FreshRSS/data
      - ./extensions:/var/www/FreshRSS/extensions
    ports:
      - 8080:80
    environment:
      TZ: America/New_York
      CRON_MIN: '3,33'
      TRUSTED_PROXY: 172.16.0.1/12 192.168.0.1/16

Then i created /home/dir/.config/freshrss/extensions/ directory. I cd to /home/dir/.config/freshrss and invoke docker-compose up -d.

I finished the initial completion at localhost:8080 on firefox, where all checks were marked green and finished with no error.

Then, I downloaded the Extensions-master.zip and extracted them. I copied the xExtension-Youtube dir to /home/dir/.config/freshrss/extensions/ . I invoke docker restart freshrss, but on firefox, I don't see the button at all to use the extension when I go to the extensions setting.

What problem am i having? Is it to do with permission rights or something on the dir?

Here, I include some info from the docker inspect freshrss command

...
"HostConfig": {
            "Binds": [
                "/home/dir/.config/freshrss/extensions:/var/www/FreshRSS/extensions:rw"
            ],

...
"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/dir/.config/freshrss/extensions",
                "Destination": "/var/www/FreshRSS/extensions",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "volume",
                "Name": "freshrss_data",
                "Source": "/var/lib/docker/volumes/freshrss_data/_data",
                "Destination": "/var/www/FreshRSS/data",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            }

Appreciate any help here.

Activity

  1. Inverle commented on May 4, 2025

    @Inverle
    Member

    I don't see the button at all to use the extension when I go to the extensions setting

    Make sure you aren't seeing a cached version of the extensions page, by adding &123 to the end of the URL e.g. http://localhost:8080/i/?c=extension&123

  2. lnguyen4 commented on May 4, 2025

    @lnguyen4
    Author

    I don't see the button at all to use the extension when I go to the extensions setting

    Make sure you aren't seeing a cached version of the extensions page, by adding &123 to the end of the URL e.g. http://localhost:8080/i/?c=extension&123

    Thanks, I tried with the &123 appended to the end of url. Still, extension is not available

  3. Inverle commented on May 5, 2025

    @Inverle
    Member

    What is the output of:
    tree -paugh /home/dir/.config/freshrss/extensions
    and
    docker logs freshrss 2>&1 | egrep '^(FreshRSS|\[|PHP)'

  4. lnguyen4 commented on May 5, 2025

    @lnguyen4
    Author

    What is the output of: tree -paugh /home/dir/.config/freshrss/extensions and docker logs freshrss 2>&1 | egrep '^(FreshRSS|\[|PHP)'

    the tree command gives me:

    [drwxr-xr-x user  user     36]  /home/user/.config/freshrss/extensions
    └── [drwxrwxr-x user  user    122]  xExtension-YouTube
        ├── [-rw-rw-r-- user  user   1.8K]  configure.phtml
        ├── [-rw-rw-r-- user  user   7.9K]  extension.php
        ├── [drwxrwxr-x user  user     16]  i18n
        │   ├── [drwxrwxr-x user  user     14]  de
        │   │   └── [-rw-rw-r-- user  user    320]  ext.php
        │   ├── [drwxrwxr-x user  user     14]  en
        │   │   └── [-rw-rw-r-- user  user    298]  ext.php
        │   ├── [drwxrwxr-x user  user     14]  fr
        │   │   └── [-rw-rw-r-- user  user    352]  ext.php
        │   └── [drwxrwxr-x user  user     14]  tr
        │       └── [-rw-rw-r-- user  user    344]  ext.php
        ├── [-rw-rw-r-- user  user    34K]  LICENSE
        ├── [-rw-rw-r-- user  user    186]  metadata.json
        └── [-rw-rw-r-- user  user   2.1K]  README.md
    

    and the docker logs command gives:

    PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:09:36.124211 2025] [mpm_prefork:notice] [pid 1:tid 1] AH00163: Apache/2.4.62 (Debian) configured -- resuming normal operations
    [Sun May 04 23:09:36.124265 2025] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
    [Sun May 04 23:10:07.710583 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135, referer: http://localhost:8080/i/index.php?step=4
    [Sun May 04 23:10:07.710614 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135, referer: http://localhost:8080/i/index.php?step=4
    [Sun May 04 23:10:09.708443 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:09.708470 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:09.802723 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:09.802748 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:09.832948 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:09.832982 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:10.060206 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:10.060254 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:10.122015 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:10.122042 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    FreshRSS[37]: FreshRSS SimplePie GET 200 https://github.com/FreshRSS/FreshRSS/releases.atom
    [Sun May 04 23:10:10.521986 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:10.522002 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:10.552013 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:10.552048 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:12.902830 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:12.902873 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    FreshRSS[37]: FreshRSS Favicon GET https://github.com/FreshRSS/FreshRSS/
    FreshRSS[37]: FreshRSS Favicon GET https://github.githubassets.com/favicons/favicon.svg
    [Sun May 04 23:10:17.715481 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:10:17.715505 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:50384] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    FreshRSS[37]: FreshRSS GET json https://raw.githubusercontent.com/FreshRSS/Extensions/master/extensions.json
    [Sun May 04 23:23:34.135235 2025] [mpm_prefork:notice] [pid 1:tid 1] AH00169: caught SIGTERM, shutting down
    PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:23:35.046357 2025] [mpm_prefork:notice] [pid 1:tid 1] AH00163: Apache/2.4.62 (Debian) configured -- resuming normal operations
    [Sun May 04 23:23:35.046417 2025] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
    [Sun May 04 23:23:45.853340 2025] [php:warn] [pid 36:tid 36] [client 172.18.0.1:50026] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:23:45.853487 2025] [php:warn] [pid 36:tid 36] [client 172.18.0.1:50026] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:23:54.011339 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:57542] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Sun May 04 23:23:54.011387 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:57542] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    

    Thanks

  5. Inverle commented on May 5, 2025

    @Inverle
    Member

    Can you try running sudo chgrp -R 33 /home/user/.config/freshrss/extensions and then check http://localhost:8080/i/?c=extension&12345
    ?

    Edit: make sure to run sudo chmod 755 /home/user/.config/freshrss/extensions too

  6. lnguyen4 commented on May 5, 2025

    @lnguyen4
    Author

    Can you try running sudo chgrp -R 33 /home/user/.config/freshrss/extensions and then check http://localhost:8080/i/?c=extension&12345 ?

    Edit: make sure to run sudo chmod 755 /home/user/.config/freshrss/extensions too

    Followed. But the extension still doesn't show up.

    Here are the outputs from the earlier command

    [drwxr-xr-x user  tape        36]  /home/user/.config/freshrss/extensions
    └── [drwxrwxr-x user  tape       122]  xExtension-YouTube
        ├── [-rw-rw-r-- user  tape      1.8K]  configure.phtml
        ├── [-rw-rw-r-- user  tape      7.9K]  extension.php
        ├── [drwxrwxr-x user  tape        16]  i18n
        │   ├── [drwxrwxr-x user  tape        14]  de
        │   │   └── [-rw-rw-r-- user  tape       320]  ext.php
        │   ├── [drwxrwxr-x user  tape        14]  en
        │   │   └── [-rw-rw-r-- user  tape       298]  ext.php
        │   ├── [drwxrwxr-x user  tape        14]  fr
        │   │   └── [-rw-rw-r-- user  tape       352]  ext.php
        │   └── [drwxrwxr-x user  tape        14]  tr
        │       └── [-rw-rw-r-- user  tape       344]  ext.php
        ├── [-rw-rw-r-- user  tape       34K]  LICENSE
        ├── [-rw-rw-r-- user  tape       186]  metadata.json
        └── [-rw-rw-r-- user  tape      2.1K]  README.md
    
    7 directories, 9 files
    

    I think there is still something wrong with the permission setting :(

    [Mon May 05 00:31:35.037144 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:55584] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:31:35.037166 2025] [php:warn] [pid 37:tid 37] [client 172.18.0.1:55584] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:31:55.114606 2025] [php:warn] [pid 55:tid 55] [client 172.18.0.1:60430] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:31:55.114629 2025] [php:warn] [pid 55:tid 55] [client 172.18.0.1:60430] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:32:00.085154 2025] [php:warn] [pid 55:tid 55] [client 172.18.0.1:60430] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:32:00.085187 2025] [php:warn] [pid 55:tid 55] [client 172.18.0.1:60430] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:32:06.149007 2025] [php:warn] [pid 62:tid 62] [client 172.18.0.1:56256] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:32:06.149039 2025] [php:warn] [pid 62:tid 62] [client 172.18.0.1:56256] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:32:19.055019 2025] [php:warn] [pid 212:tid 212] [client 172.18.0.1:47892] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:32:19.055100 2025] [php:warn] [pid 212:tid 212] [client 172.18.0.1:47892] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:34:09.628007 2025] [php:warn] [pid 38:tid 38] [client 172.18.0.1:35252] PHP Warning:  scandir(/var/www/FreshRSS/extensions): Failed to open directory: Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    [Mon May 05 00:34:09.628031 2025] [php:warn] [pid 38:tid 38] [client 172.18.0.1:35252] PHP Warning:  scandir(): (errno 13): Permission denied in /var/www/FreshRSS/lib/Minz/ExtensionManager.php on line 135
    
    
  7. Inverle commented on May 5, 2025

    @Inverle
    Member

    I think there is still something wrong with the permission setting :(

    Yes, it's a permission error, but I'm not exactly sure what's wrong.

    edit: I meant sudo chmod -R 755 /home/user/.config/freshrss/extensions instead of sudo chmod 755 /home/user/.config/freshrss/extensions, so maybe that's why (forgot the -R flag)

    check http://localhost:8080/i/?c=extension&534543 after running the new chmod command

    if that won't fix it then:

    what are the outputs of:

    • sudo ps -Ao pid,user,command | egrep '(docker|container)'
    • sudo docker exec freshrss ps -Ao pid,user,command
    • sudo docker exec freshrss cat /etc/passwd | grep www-data
  8. lnguyen4 commented on May 5, 2025

    @lnguyen4
    Author
    • sudo docker exec freshrss cat /etc/passwd | grep www-data

    Thanks a lot for helping so far. I sudo chmod with -R flag for the extensions dir but still it doesn't help. I restarted the docker daemon , restarted the freshrss container, but extension is not available to use.

    Here is output of sudo ps -Ao pid,user,command | egrep '(docker|container)':

       1347 root     /usr/bin/containerd
       7168 root     /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --selinux-enabled --userland-proxy-path /usr/bin/docker-proxy --init-path /usr/bin/tini-static
       7472 root     /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.18.0.2 -container-port 80
       7481 root     /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.18.0.2 -container-port 80
       7531 root     /usr/bin/containerd-shim-runc-v2 -namespace moby -id 8eeaff7747d68f6f7de9e8c214b4a70048cb9f48cefa28d62453b921078037b5 -address /run/containerd/containerd.sock
       7578 root     /usr/bin/containerd-shim-runc-v2 -namespace moby -id 5cc1752f33336fc9c8c77cfcb4442890d2dbc731e3103569c35fc15ddfbd0f25 -address /run/containerd/containerd.sock
       7582 root     /usr/bin/containerd-shim-runc-v2 -namespace moby -id fd3f1c8ab2710224f4b69cb84b0f8690472d5b14244a36188bfaa6027f4570be -address /run/containerd/containerd.sock
       8025 user  grep --color=auto -E --color=auto (docker|container)
    

    sudo docker exec freshrss ps -Ao pid,user,command:

    PID USER     COMMAND
          1 root     apache2 -D FOREGROUND
         30 root     cron
         34 root     /bin/sh /var/www/FreshRSS/cli/sensitive-log.sh
         35 root     sed -Eu s/([?&])(Passwd|token)=[^& \t]+/\1\2=redacted/ig
         36 www-data apache2 -D FOREGROUND
         37 www-data apache2 -D FOREGROUND
         38 www-data apache2 -D FOREGROUND
         39 www-data apache2 -D FOREGROUND
         40 www-data apache2 -D FOREGROUND
         41 www-data apache2 -D FOREGROUND
         42 root     CRON
         43 root     /bin/sh -c . /var/www/FreshRSS/Docker/env.txt; ..su www-data -s /bin/sh -c 'php /var/www/FreshRSS/app/actualize_script.php' ..2>> /proc/1/fd/2 > /tmp/FreshRSS.log
         44 root     su www-data -s /bin/sh -c php /var/www/FreshRSS/app/actualize_script.php
         45 www-data sh -c php /var/www/FreshRSS/app/actualize_script.php
         46 www-data php /var/www/FreshRSS/app/actualize_script.php
         88 root     ps -Ao pid,user,command
    

    sudo docker exec freshrss cat /etc/passwd | grep www-data:

    www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
    
  9. Inverle commented on May 5, 2025

    @Inverle
    Member

    What about docker exec -u www-data freshrss ls -la extensions extensions/*?

    Can you run docker exec -it www-data freshrss bash and cd into extensions?

    Maybe you can edit this line in your docker-compose.yml

    - ./extensions:/var/www/FreshRSS/extensions
    

    to

    - extensions:/var/www/FreshRSS/extensions
    

    stop the container: docker stop freshrss and start it again
    (without the ./)
    and instead use docker cp to get your extensions into the container e.g.
    docker cp /opt/Extensions/xExtension-YouTube/ freshrss:/var/www/FreshRSS/extensions/

    This may have a better chance of working

  10. lnguyen4 commented on May 5, 2025

    @lnguyen4
    Author

    What about docker exec -u www-data freshrss ls -la extensions extensions/*?

    I got

    ls: cannot open directory 'extensions': Permission denied
    ls: cannot open directory 'extensions/xExtension-YouTube': Permission denied
    

    Can you run docker exec -it www-data freshrss bash and cd into extensions?

    I ran docker exec -it -u www-data freshrss bash and got

    
    www-data@freshrss:~/FreshRSS$ cd extensions/
    www-data@freshrss:~/FreshRSS/extensions$ ls
    ls: cannot open directory '.': Permission denied
    www-data@freshrss:~/FreshRSS/extensions$ 
    

    For - extensions:/var/www/FreshRSS/extensions in docker-compose.yml, I have done this way in another laptop and understood that this will create the volume freshrss_extensions, and whenever I want to install extension, i need to docker exec into the container and do the installation. Hence, when I try to set up this docker instance for my new laptop, I want to set up for extensions to work on host's but I know if not setting permissions correctly, it would be a headache.

    One thing I want to ask: say, the extensions is set up as default - extensions: ... in docker-compose.yml, and most of the time, the extensions zip files are downloaded on the host, how can I do the installation (moving the dir) right on the host terminal without having to docker exec into the container shell?

  11. Inverle commented on May 5, 2025

    @Inverle
    Member

    @lnguyen4

    and most of the time, the extensions zip files are downloaded on the host, how can I do the installation (moving the dir) right on the host terminal without having to docker exec into the container shell?

    As I wrote earlier, by using docker cp ;) (or you can also cd into /var/lib/docker/volumes/*_extensions/_data and copy it into there)

    Regarding the earlier approach though:

    Since you use Fedora, which has SELinux enabled by default, according to https://stackoverflow.com/questions/24288616/permission-denied-on-accessing-host-directory-in-docker the best solution is to use chcon -Rt svirt_sandbox_file_t /home/user/.config/freshrss/extensions, of course I have no idea if this will work so you can also try su -c "setenforce 0" if it doesn't.
    Or alternatively, you can add a privileged: true line into your docker-compose.yml file, but this is a bad idea security wise.

    Let me know if you are able to get extensions working with ./extensions

  12. Alkarex commented on May 6, 2025

    @Alkarex
    Member

    As @Inverle wrote, this is an issue due to a wrong SELinux configuration and permissions.
    See (but may not apply to you directly, so just for inspiration) https://freshrss.github.io/FreshRSS/en/users/07_Frequently_Asked_Questions.html#permissions-under-selinux
    and additional documentation welcome

  13. lnguyen4 commented on May 6, 2025

    @lnguyen4
    Author

    @Inverle @Alkarex , Thank you for providing help so far and giving some relevant info.

    I am just a novice user for Fedora and know nothing about SELinux. I look up some to read , especially about docker and find this info about docker label for SELinux-enabled host: https://docs.docker.com/engine/storage/bind-mounts/#configure-the-selinux-label

    Then, I decided to re-do the whole installation for this docker instance. From the link above, I use the :z option at the end of bind mount - ./extensions:/var/www/FreshRSS/extensions:z in docker-compose.yml file. Now, my docker instance is set up, and I can cp the extension dir into ./extensions so that the extension is available to use. I wonder if there is any side effect of using that :z option on bind mount. The link above warns against the :Z option for certain cases.

    Thanks again,

    Image

  14. locked and limited conversation to collaborators on May 7, 2025
  15. converted this issue into a discussion #319 on May 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions