Local Docker deploy daemon on NixOS

The Basics

  • Nextcloud Server version (e.g., 29.x.x): 30.0.4
  • Operating system and version (e.g., Ubuntu 24.04): Nixos 24.11
  • Web server and version (e.g, Apache 2.4.25): Nginx
  • PHP version (e.g, 8.3): 8.3
  • Is this the first time you’ve seen this error? (Yes / No): Yes
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    NixOS container
  • Are you using CloudfIare, mod_security, or similar? (Yes / No) No

Summary of the issue you are facing:

I cannot configure a local Docker deploy daemon running over a socket. If I run a deploy/connection test via the web, nothing works. To be very clear, I mean that literally. I see no errors except in my browser console, where I’m told the app failed to deploy and to check my logs. If I do, I see nothing until enabling full debug logging. This still doesn’t give anything very useful except for this occ command:

occ app_api:app:register test-deploy docker_local --info-xml https://raw.githubusercontent.com/cloud-py-api/test-deploy/main/appinfo/info.xml --test-deploy-mode --no-ansi

If I run this command manually, the app deploys and works. The challenges here are that NixOS doesn’t install occ as occ. It instead installs the command as nextcloud-occ which, when I change the command and run it, works just fine. It’s also not in the systemd path for this unit. So before I go too far down a NixOS-specific rabbit hole I wanted to check some things:

  1. Is the deploy test actually attempting to run occ from the command line vs. just calling it via PHP functions?
  2. If so, is there anything I can change in the Nextcloud config to indicate that the command should be nextcloud-occ instead? I can probably set up an alias/symlink somehow but I’d rather reconfigure Nextcloud if there’s an easy way to just change the executable name.

Thanks.