[GH-ISSUE #1546] Bug: Cannot mount data folder from a network share #2426

Open
opened 2026-03-01 17:58:58 +03:00 by kerem · 1 comment
Owner

Originally created by @JPeroutek on GitHub (Oct 17, 2024).
Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/1546

Describe the bug

When attempting to mount the data folder from a folder on a network share, I get the following error:

Data mounting error

More details:

  • Win 10, running using the following docker-compose file: Docker Compose file
  • Notable in the file above, I've created an archivebox_data cifs volume mounted to my NAS's UNC path. I use this system on other compose files without issues.
  • The data folder was originally created on my C drive, then copied to the NAS after it started filling up my drive.

Steps to reproduce

Using the above docker compose file, run docker compose up. To replicate, you will need to change the network share location.

Screenshots or log output

Data mounting error

ArchiveBox version

0.7.2
ArchiveBox v0.7.2 COMMIT_HASH=315c9f3 BUILD_TIME=2024-04-24 22:47:02 1713998822
IN_DOCKER=True IN_QEMU=False ARCH=x86_64 OS=Linux PLATFORM=Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with-glibc2.36 PYTHON=Cpython
FS_ATOMIC=True FS_REMOTE=True FS_USER=911:0 FS_PERMS=644
DEBUG=False IS_TTY=True TZ=UTC SEARCH_BACKEND=sonic LDAP=False

[i] Dependency versions:
 √  PYTHON_BINARY         v3.11.9         valid     /usr/local/bin/python3.11

 √  SQLITE_BINARY         v2.6.0          valid     /usr/local/lib/python3.11/sqlite3/dbapi2.py

 √  DJANGO_BINARY         v3.1.14         valid     /usr/local/lib/python3.11/site-packages/django/__init__.py

 √  ARCHIVEBOX_BINARY     v0.7.2          valid     /usr/local/bin/archivebox


 √  CURL_BINARY           v8.5.0          valid     /usr/bin/curl

 √  WGET_BINARY           v1.21.3         valid     /usr/bin/wget

 √  NODE_BINARY           v20.12.2        valid     /usr/bin/node

 √  SINGLEFILE_BINARY     v1.1.46         valid     /app/node_modules/single-file-cli/single-file

 √  READABILITY_BINARY    v0.0.11         valid     /app/node_modules/readability-extractor/readability-extractor

 √  MERCURY_BINARY        v1.0.0          valid     /app/node_modules/@postlight/parser/cli.js

 √  GIT_BINARY            v2.39.2         valid     /usr/bin/git

 √  YOUTUBEDL_BINARY      v2023.12.30     valid     /usr/local/bin/yt-dlp

 √  CHROME_BINARY         v124.0.6367.29  valid     /usr/bin/chromium-browser

 √  RIPGREP_BINARY        v13.0.0         valid     /usr/bin/rg


[i] Source-code locations:
 √  PACKAGE_DIR           23 files        valid     /app/archivebox

 √  TEMPLATES_DIR         3 files         valid     /app/archivebox/templates

 -  CUSTOM_TEMPLATES_DIR  -               disabled  None


[i] Secrets locations:
 -  CHROME_USER_DATA_DIR  -               disabled  None

 -  COOKIES_FILE          -               disabled  None


[i] Data locations:
 √  OUTPUT_DIR            7 files @       valid     /data

 √  SOURCES_DIR           99 files        valid     ./sources

 √  LOGS_DIR              2 files         valid     ./logs

 √  ARCHIVE_DIR           626 files       valid     ./archive

 √  CONFIG_FILE           81.0 Bytes      valid     ./ArchiveBox.conf

 √  SQL_INDEX             6.4 MB          valid     ./index.sqlite3

Although I've since reverted to the Data folder on my C drive, because the network share folder did not work...

Originally created by @JPeroutek on GitHub (Oct 17, 2024). Original GitHub issue: https://github.com/ArchiveBox/ArchiveBox/issues/1546 <!-- Please fill out the following information, feel free to delete sections if they're not applicable or if long issue templates annoy you. (the only required section is the version information) --> #### Describe the bug When attempting to mount the `data` folder from a folder on a network share, I get the following error: [Data mounting error](https://gist.github.com/JPeroutek/abc6f42452d1ba470d7d4957812e82e5) More details: - Win 10, running using the following docker-compose file: [Docker Compose file](https://gist.github.com/JPeroutek/d2e86824f6787f541c844f5599d1a8be) - Notable in the file above, I've created an `archivebox_data` cifs volume mounted to my NAS's UNC path. I use this system on other compose files without issues. - The data folder was originally created on my C drive, then copied to the NAS after it started filling up my drive. #### Steps to reproduce <!-- For example: 1. Ran ArchiveBox with the following config '...' 2. Saw this output during archiving '....' 3. UI didn't show the thing I was expecting '....' --> Using the above docker compose file, run `docker compose up`. To replicate, you will need to change the network share location. #### Screenshots or log output <!-- If applicable, post any relevant screenshots or copy/pasted terminal output from ArchiveBox. If you're reporting a parsing / importing error, **you must paste a copy of your redacted import file here**. --> [Data mounting error](https://gist.github.com/JPeroutek/abc6f42452d1ba470d7d4957812e82e5) #### ArchiveBox version <!-- Run the `archivebox version` command locally then copy paste the result here: --> ```logs 0.7.2 ArchiveBox v0.7.2 COMMIT_HASH=315c9f3 BUILD_TIME=2024-04-24 22:47:02 1713998822 IN_DOCKER=True IN_QEMU=False ARCH=x86_64 OS=Linux PLATFORM=Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with-glibc2.36 PYTHON=Cpython FS_ATOMIC=True FS_REMOTE=True FS_USER=911:0 FS_PERMS=644 DEBUG=False IS_TTY=True TZ=UTC SEARCH_BACKEND=sonic LDAP=False [i] Dependency versions: √ PYTHON_BINARY v3.11.9 valid /usr/local/bin/python3.11 √ SQLITE_BINARY v2.6.0 valid /usr/local/lib/python3.11/sqlite3/dbapi2.py √ DJANGO_BINARY v3.1.14 valid /usr/local/lib/python3.11/site-packages/django/__init__.py √ ARCHIVEBOX_BINARY v0.7.2 valid /usr/local/bin/archivebox √ CURL_BINARY v8.5.0 valid /usr/bin/curl √ WGET_BINARY v1.21.3 valid /usr/bin/wget √ NODE_BINARY v20.12.2 valid /usr/bin/node √ SINGLEFILE_BINARY v1.1.46 valid /app/node_modules/single-file-cli/single-file √ READABILITY_BINARY v0.0.11 valid /app/node_modules/readability-extractor/readability-extractor √ MERCURY_BINARY v1.0.0 valid /app/node_modules/@postlight/parser/cli.js √ GIT_BINARY v2.39.2 valid /usr/bin/git √ YOUTUBEDL_BINARY v2023.12.30 valid /usr/local/bin/yt-dlp √ CHROME_BINARY v124.0.6367.29 valid /usr/bin/chromium-browser √ RIPGREP_BINARY v13.0.0 valid /usr/bin/rg [i] Source-code locations: √ PACKAGE_DIR 23 files valid /app/archivebox √ TEMPLATES_DIR 3 files valid /app/archivebox/templates - CUSTOM_TEMPLATES_DIR - disabled None [i] Secrets locations: - CHROME_USER_DATA_DIR - disabled None - COOKIES_FILE - disabled None [i] Data locations: √ OUTPUT_DIR 7 files @ valid /data √ SOURCES_DIR 99 files valid ./sources √ LOGS_DIR 2 files valid ./logs √ ARCHIVE_DIR 626 files valid ./archive √ CONFIG_FILE 81.0 Bytes valid ./ArchiveBox.conf √ SQL_INDEX 6.4 MB valid ./index.sqlite3 ``` Although I've since reverted to the Data folder on my C drive, because the network share folder did not work... <!-- Tickets without full version info will closed until it is provided, we need the full output here to help you solve your issue -->
Author
Owner

@pirate commented on GitHub (Oct 17, 2024):

This is likely due to the underlying mount not supporting permissions, archivebox cannot use drives that coerce permissions or disable them entirely (common issue for some types of network mount).

Can you check that you have CIFS set up to allow permissions changes to files? If the drive sets ownership to a specific user, you can pass that user's UID to archivebox by setting the PUID environment variable in docker-compose.yml. If the drive sets permissions to a certain value (e.g. 700) you can set that value in OUTPUT_PERMISSIONS.

What filesystem does the underlying drive use? Can you share the CIFS or mount config?

<!-- gh-comment-id:2420316807 --> @pirate commented on GitHub (Oct 17, 2024): This is likely due to the underlying mount not supporting permissions, archivebox cannot use drives that coerce permissions or disable them entirely (common issue for some types of network mount). Can you check that you have CIFS set up to allow permissions changes to files? If the drive sets ownership to a specific user, you can pass that user's UID to archivebox by setting the PUID environment variable in docker-compose.yml. If the drive sets permissions to a certain value (e.g. 700) you can set that value in OUTPUT_PERMISSIONS. What filesystem does the underlying drive use? Can you share the CIFS or mount config?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ArchiveBox#2426
No description provided.