diff --git a/FAQ.md b/FAQ.md index 8db37eaa..c26c8c4e 100644 --- a/FAQ.md +++ b/FAQ.md @@ -507,3 +507,40 @@ Thats it, the `main.yml` will now disable the docker/github container registries naming, your container name will be named `REGISTRY/ytptube` and the tags will be the same as the ones used in the github registry. Unfortunately, the `native-builder.yml` workflow doesn't support self-hosted repositories at the moment. + +# Getting No space left on device error + +If you encounter this error: `OSError: [Errno 28] No space left on device` This indicates that either +the `/tmp` or `/downloads` directory has run out of available space. + +This issue commonly occurs when: + +- `/tmp` is mounted as `tmpfs` (memory-based storage) +- Your system has limited RAM +- You're downloading large video files + +Since videos are temporarily stored in `/tmp` before being moved to the final download location, memory-based storage +may be insufficient for large downloads. + +To fix the issue, modify your `compose.yaml` to use a disk-based directory for temporary files: + +```yaml +services: + ytptube: + user: "${UID:-1000}:${UID:-1000}" + image: ghcr.io/arabcoders/ytptube:latest + container_name: ytptube + restart: unless-stopped + ports: + - "8081:8081" + volumes: + - ./config:/config:rw + - ./downloads:/downloads/local:rw + - ./temp:/tmp:rw +``` + +> [!NOTE] +> Replace the `tmpfs` mount with a local directory volume (`./temp:/tmp:rw`). This allows temporary files to use disk space instead of RAM. + +After making the changes, restart your container. This should resolve the "No space left on device" +error during download. diff --git a/README.md b/README.md index e3c19ecc..30619b10 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,7 @@ services: > [!IMPORTANT] > Make sure to change the `user` line to match your user id and group id +> If you have low RAM, remove the `tmpfs` and mount a disk-based directory to `/tmp` instead. See [FAQ](FAQ.md#getting-no-space-left-on-device-error) for more information. ```bash $ mkdir -p ./{config,downloads} && docker compose -f compose.yaml up -d