A bit confused Hub 6 where is my local AI?

I’m a bit confused now, with the versioning. For context, I use AIO, which is currently on the latest nextcloud version 27.1.2 Nextcloud Hub 6.
But Installed the AIO in June, when Nextcloud 27 was brand new! And that was called Hub 5.
Now I’m on still 27, there was a huge annuncment about Hub 6, I though, cool, that’s gonna be Nextcloud 28, but now I see that my 27.1.2 is called Hub 6. What the hell?

And also more importantly where is the Nextcloud assistant from 27.1.2 if that’s Hub 6?

Hi, you can now get the Nextcloud assistant running in AIO by adding this container to the stack: https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai

1 Like

Gotcha, so there is no significant changes, compared to prior the new announcment. Nextcloud Assistant, just an app, in the appstore, but you still need to connect it to some “external solution”. Will take a look at the community container, thanks!

Yes, indeed

2 posts were split to a new topic: What are the system requirements for Local AI and Nextcloud Assistant?

Hey @szaimen ,

Could you help me how should I edit my docker compose file to include the nextcloud-aio-local-ai community container?
Currently I edit like this, but no matter how many times I remove the master conatiner and rebuild it, it doesn’t seem to create the local-ai container:

services:
  nextcloud:
    image: nextcloud/all-in-one:latest
    restart: always
    container_name: nextcloud-aio-mastercontainer # This line is not allowed to be changed as otherwise AIO will not work correctly
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed as otherwise the built-in backup solution will not work
      - /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'WATCHTOWER_DOCKER_SOCKET_PATH'!
    ports:
      - 80:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      - 8080:8080
      - 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
    environment: # Is needed when using any of the options below
      - AIO_COMMUNITY_CONTAINERS="local-ai"
      # - AIO_DISABLE_BACKUP_SECTION=false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
      # - APACHE_PORT=11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      # - APACHE_IP_BINDING=127.0.0.1 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
      # - BORG_RETENTION_POLICY=--keep-within=7d --keep-weekly=4 --keep-monthly=6 # Allows to adjust borgs retention policy. See https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
      # - COLLABORA_SECCOMP_DISABLED=false # Setting this to true allows to disable Collabora's Seccomp feature. See https://github.com/nextcloud/all-in-one#how-to-disable-collaboras-seccomp-feature
      # - NEXTCLOUD_DATADIR=/mnt/ncdata # Allows to set the host directory for Nextcloud's datadir. ⚠️⚠️⚠️ Warning: do not set or adjust this value after the initial Nextcloud installation is done! See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir
      # - NEXTCLOUD_MOUNT=/mnt/ # Allows the Nextcloud container to access the chosen directory on the host. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host
      # - NEXTCLOUD_UPLOAD_LIMIT=10G # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud
      # - NEXTCLOUD_MAX_TIME=3600 # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud
      # - NEXTCLOUD_MEMORY_LIMIT=512M # Can be adjusted if you need more. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud
      # - NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts # CA certificates in this directory will be trusted by the OS of the nexcloud container (Useful e.g. for LDAPS) See See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca
      # - NEXTCLOUD_STARTUP_APPS=deck twofactor_totp tasks calendar contacts notes # Allows to modify the Nextcloud apps that are installed on starting AIO the first time. See https://github.com/nextcloud/all-in-one#how-to-change-the-nextcloud-apps-that-are-installed-on-the-first-startup
      # - NEXTCLOUD_ADDITIONAL_APKS=imagemagick # This allows to add additional packages to the Nextcloud container permanently. Default is imagemagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-os-packages-permanently-to-the-nextcloud-container
      # - NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
      # - NEXTCLOUD_ENABLE_DRI_DEVICE=true # This allows to enable the /dev/dri device in the Nextcloud container. ⚠️⚠️⚠️ Warning: this only works if the '/dev/dri' device is present on the host! If it should not exist on your host, don't set this to true as otherwise the Nextcloud container will fail to start! See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
      # - TALK_PORT=3478 # This allows to adjust the port that the talk container is using. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port
      # - WATCHTOWER_DOCKER_SOCKET_PATH=/var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
    # networks: # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file
      # - nextcloud-aio # Is needed when you want to create the nextcloud-aio network with ipv6-support using this file, see the network config at the bottom of the file

  # # Optional: Caddy reverse proxy. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
  # # You can find further examples here: https://github.com/nextcloud/all-in-one/discussions/588
  # caddy:
  #   image: caddy:alpine
  #   restart: always
  #   container_name: caddy
  #   volumes:
  #     - ./Caddyfile:/etc/caddy/Caddyfile
  #     - ./certs:/certs
  #     - ./config:/config
  #     - ./data:/data
  #     - ./sites:/srv
  #   network_mode: "host"

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work

# # Optional: If you need ipv6, follow step 1 and 2 of https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md first and then uncomment the below config in order to activate ipv6 for the internal nextcloud-aio network.
# # Please make sure to uncomment also the networking lines of the mastercontainer above in order to actually create the network with docker-compose
# networks:
#   nextcloud-aio:
#     name: nextcloud-aio # This line is not allowed to be changed as otherwise the created network will not be used by the other containers of AIO
#     driver: bridge
#     enable_ipv6: true
#     ipam:
#       driver: default
#       config:
#         - subnet: fd12:3456:789a:2::/64 # IPv6 subnet to use

(I’m using Portainer)

Try it without quotes:
- AIO_COMMUNITY_CONTAINERS=local-ai

It should work after upgrading to AIO v7.5.0 or higher.

1 Like

Thank you, but no luck! :frowning:

Portainer:
Stacks/
select: nextcloud-aio-mastercontainer → click: remove → select auto remove non-persistent volumes → click remove.
Master conatiner removed.
got to: stacks/editor compose file as above with the suggested edit.
click: update the stack → select: re-pull image and redeploy → click update

Am I missing something?

Yes, you missed to visit the AIO interface after adding the variable.

1 Like

Aaahh I see it thank you! I’m not sure if this step is clear enough in the documentation though. Anyways thank you for your time!

and after that,
It took ages to download, but finally I have a couple of models downloaded and local-ai container running.
However, when I try to generate an image (texts prompts also fail) I get back a couldn’t connect error, it ranges from curl fail to connection refused or it’s a self signed certificate. Ofc depends on what adress I give for the assistant to reach the local AI instance. if I add:

http://172.19.0.2:8080 (this is the local-ai container’s ip)

OpenAI error: open /tmp/generated/images/b642151419978: no such file or directory

http://localhost:8080

OpenAI error: cURL error 7: Failed to connect to localhost port 8080 after 0 ms: Couldn't connect to server (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://localhost:8080/v1/images/generations

I also can see a couple errors in the local-ai’s container.

rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp 127.0.0.1:35663: connect: connection refused"

If I put in the address of the virtual machine where all the containers live I get:

400 Bad Request

If I enter the same, just with httpS

OpenAI error: cURL error 60: SSL certificate problem: self-signed certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://192.168.1.18:8080/v1/images/generations

8080 is not opened up on the firewall, so I won’t check from my domain.

But based on the configs 8080 is only opened up for the master conatiner.
The hint says in in the settings This should be the address of your LocalAI instance from the point of view of your Nextcloud server. This can be a local address with a port like http://localhost:8080 So I’m not sure why localhost not working.

Could you clear this up for me a bit?

The correct connection is http://nextcloud-aio-local-ai:8080 and not http://localhost:8080.

OpenAI error: open /tmp/generated/images/b642763713398: no such file or directory

Also freeprompt fails

This possibly indeed was a bug and will likely be fixed with local-ai - fix path to generated images by szaimen · Pull Request #3639 · nextcloud/all-in-one · GitHub in the next beta release. I let you know as soon as it is out.

1 Like

This is now released with v7.6.0 Beta. Testing and feedback is welcome! See GitHub - nextcloud/all-in-one: Nextcloud AIO stands for Nextcloud All-in-One and provides easy deployment and maintenance with most features included in this one Nextcloud instance.

I had the same connection problem and changing the Default Completion Model to gpt4all-j it works

sudo docker run --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 80:80 --publish 8080:8080 --publish 8443:8443 --env nextcloud_memory_limit=4096M --env PHP_MEMORY_LIMIT=4096M --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro --env aio_community_containers=local-ai nextcloud_addittional_apks=“ocrmypdf tesseract-ocr tesseract-ocr-eng libreoffice libreoffice-lang-nl” nextcloud/all-in-one:latest

What do i wrong to get local-ai installed?

Nextcloud AIO , add local-ai container but nothing happening.

sudo docker run --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 80:80 --publish 8080:8080 --publish 8443:8443 --env nextcloud_memory_limit=4096M --env PHP_MEMORY_LIMIT=4096M --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro --env aio_community_containers=local-ai nextcloud/all-in-one:latest
Trying to fix docker.sock permissions internally…
Adding internal www-data to group ping
Initial startup of Nextcloud All-in-One complete!
You should be able to open the Nextcloud AIO Interface now on port 8080 of this server!
E.g. https://internal.ip.of.this.server:8080
:warning: Important: do always use an ip-address if you access this port and not a domain as HSTS might block access to it later!

If your server has port 80 and 8443 open and you point a domain to your server, you can get a valid certificate automatically by opening the Nextcloud AIO Interface via:
https://your-domain-that-points-to-this-server.tld:8443
[Fri May 24 06:11:17.858351 2024] [mpm_event:notice] [pid 114:tid 139659109423880] AH00489: Apache/2.4.59 (Unix) OpenSSL/3.1.4 configured – resuming normal operations
[Fri May 24 06:11:17.858790 2024] [core:notice] [pid 114:tid 139659109423880] AH00094: Command line: ‘httpd -D FOREGROUND’
{“level”:“info”,“ts”:1716531077.880942,“msg”:“using provided configuration”,“config_file”:“/Caddyfile”,“config_adapter”:“”}
[24-May-2024 06:11:17] NOTICE: fpm is running, pid 120
[24-May-2024 06:11:17] NOTICE: ready to handle connections

Hi, can you compare with all-in-one/community-containers at main · nextcloud/all-in-one · GitHub?

Done that,

Run the following command from CLI

sudo docker run --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 80:80 --publish 8080:8080 --publish 8443:8443 --env nextcloud_memory_limit=4096M --env PHP_MEMORY_LIMIT=4096M --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro --env aio_community_containers=local-ai nextcloud/all-in-one:lates

But i think nothings happens, must i download first the AI container?

Please compare again: --env AIO_COMMUNITY_CONTAINERS=local-ai