Skip to content

[BUG] Have startup script pull incomplete and complete folder locations from settings.json #318

@haydonryan

Description

@haydonryan

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I've just installed this, and transmission is working right, however your starup script enforces specific directories for incomplete and completed downloads. This results in stat errors during container startup if those paths are changed from what you enforce.

I understand the environment can override the settings.json. But there are no environment variables to override the complete /incomplete folders.

This also relates to other issues: -
#87
#265

Expected Behavior

I would expect either to be able to set the completed and incomplete directories, or have the container startup scrip pull the path from settings here:

if grep -qe ' /downloads ' /proc/mounts; then

Personally I find having a downloads/completed pointless so i use downloads/_incomplete and downloads as my two directories.

Steps To Reproduce

  1. deploy and map /config to your environment.
  2. modify the complete and incomplete folder
  3. restart container.

Environment

docker-compose on arch.

CPU architecture

x86-64

Docker creation

---
services:
  transmission:
    image: lscr.io/linuxserver/transmission:latest
    container_name: transmission
    restart: unless-stopped
    environment:
      - PUID=${UID}
      - PGID=${GID}
      - TZ=Etc/UTC
      - TRANSMISSION_WEB_HOME= #optional
      - USER= #optional
      - PASS= #optional
      - WHITELIST= #optional
      - PEERPORT= #optional
      - HOST_WHITELIST= #optional
    volumes:
      - /docker/transmission/data:/config
      - downloads:/downloads
      - /docker/transmission/watch:/watch #optional
    labels:
      - traefik.enable=true
      - traefik.docker.network=backend
      - traefik.http.routers.transmission.entrypoints=websecure
      - traefik.http.routers.transmission.rule=Host(`bt.<REDACTED>`)
      - traefik.http.routers.transmission.tls=true
      - traefik.http.services.transmission.loadbalancer.server.port=9091
    ports:
      - 51413:51413
      - 51413:51413/udp
    networks:
      backend:

networks:
  backend:
    name: backend
    external: true
volumes:
  downloads:
    driver_opts:
      type: cifs
      o: "username=$DOWNLOADS_SMB_CREDS_USERNAME,password=$DOWNLOADS_SMB_CREDS_PASSWORD,vers=3.0,uid=${UID},gid=${GID},dir_mode=0777,file_mode=0777"
      device: "//<REDACTED>/_Downloads/"

Container logs

transmission  | [migrations] started
transmission  | [migrations] no migrations found
transmission  | ───────────────────────────────────────
transmission  |
transmission  |       ██╗     ███████╗██╗ ██████╗
transmission  |       ██║     ██╔════╝██║██╔═══██╗
transmission  |       ██║     ███████╗██║██║   ██║
transmission  |       ██║     ╚════██║██║██║   ██║
transmission  |       ███████╗███████║██║╚██████╔╝
transmission  |       ╚══════╝╚══════╝╚═╝ ╚═════╝
transmission  |
transmission  |    Brought to you by linuxserver.io
transmission  | ───────────────────────────────────────
transmission  |
transmission  | To support LSIO projects visit:
transmission  | https://www.linuxserver.io/donate/
transmission  |
transmission  | ───────────────────────────────────────
transmission  | GID/UID
transmission  | ───────────────────────────────────────
transmission  |
transmission  | User UID:    1001
transmission  | User GID:    1003
transmission  | ───────────────────────────────────────
transmission  | Linuxserver.io version: 4.1.1-r1-ls333
transmission  | Build-date: 2026-03-02T02:09:28+00:00
transmission  | ───────────────────────────────────────
transmission  |
transmission  | stat: cannot statx '/downloads/complete': No such file or directory
transmission  | find: ‘/downloads/complete’: No such file or directory
transmission  | **** Permissions could not be set. This is probably because your volume mounts are remote or read-only. ****
transmission  | **** The app may not work properly and we will not provide support for it. ****
transmission  | stat: cannot statx '/downloads/incomplete': No such file or directory
transmission  | find: ‘/downloads/incomplete’: No such file or directory
transmission  | **** Permissions could not be set. This is probably because your volume mounts are remote or read-only. ****
transmission  | **** The app may not work properly and we will not provide support for it. ****
transmission  | [custom-init] No custom files found, skipping...
transmission  | Connection to localhost (127.0.0.1) 9091 port [tcp/*] succeeded!
transmission  | [ls.io-init] done.

Note these are errors, but transmission works correctly despite the fear inducing messaging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions