mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-05 00:29:48 +03:00
Issues with BookStack not communicating with s3 compatible service over proxy #1000
Closed
opened 2026-02-04 23:22:04 +03:00 by OVERLORD
·
4 comments
No Branch/Tag Specified
development
l10n_development
further_theme_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#1000
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ssddanbrown on GitHub (Jan 20, 2019).
See https://github.com/BookStackApp/BookStack/issues/1192#issuecomment-455312051
@armouredking commented on GitHub (Jan 21, 2019):
Things I think we all agree on:
ADDR:PORT for the ENDPOINT and STORAGE_URL parameters works (no proxy). Bookstack and Minio behave as expected.
DOMAIN.NAME for the ENDPOINT and STORAGE_URL parameters does not work. Problems are shown in detail in #1192, but the exact nature of the fault is unknown. I suspect Bookstack is not getting a reply it understands / likes / accepts / acknowledges over the proxy from Minio when performing file operations and lookups. The only proxy in this case is with Minio, the APP_URL field is not defined. Defining the APP_URL field and putting Bookstack behind a proxy as well does not change any behaviour related to this issue though. Bookstack and Minio, separately, work fine behind the proxy. It's only when attempting to communicate via proxy between them that issues occur.
New stuff:
Trying to cheat: ADDR:PORT for ENDPOINT and DOMAIN.NAME for STORAGE_URL. This generates errors, I think due to the way these fields are employed currently; I was trying to get Bookstack to communicate with Minio via the backend only (since this works) but still create the links on the public face as if proxied (we wanna cheat). This is because we know that we can access the files on Minio with either ADDR:PORT or DOMAIN.NAME externally. I think as a workaround this is probably the simplest solution.
Obviously the best thing is to figure out what is generating this "promise" error when talking via proxy to Minio. I'm just kinda at the end of what I know how to do to figure out what is causing it or to give me a new / different error.
@armouredking commented on GitHub (Feb 7, 2019):
Hey, @ssddanbrown, an update:
I went ahead and restarted this today with fresh pulls from Docker Hub. I was working with Rocket.Chat and noticed it had an oddity with setup (if you defined the bucket url in Rocket.Chat with the bucket -as recommend on their docs- it would result in creating a second folder, so like domain.name/bucket/bucket). Thought maybe I could so some more similar testing with the pathing on Bookstack only to get started and... it's working. The env file is the only item touched:
I then went over to the production instance and changed it as well, and moved the files from bookstack folders to minio's buckets keeping all pathing and such and... everything is still working. Additionally, I was able to upload and delete images. One minor oddity that I think is working as intended, was that avatars are not shared. So like if my admin account assigns an avatar to someone's user account, the user cannot see the avatar when they go to change it. Edit Profile -> Select Image will just show up blank with no pictures. Viewing from the admin account I can however see the avatars I uploaded; but only those uploaded as an admin (I could not see a file uploaded by a user account either). Shouldn't admin users be able to see all user account avatars uploaded? Because if they can't how can you administrate if someone uploads an avatar they shouldn't?
I did not need to define the ports. Was something else besides what we tested with the env and filesystems files changed? Can you test this with a proxy as well and verify working now?
@armouredking commented on GitHub (Feb 8, 2019):
On topic, I tried a few different other scenarios just to see what does / doesn't work. Defining the ENDPOINT as https://domain.name/bookstack does not change anything. Not sure if the logic just truncates or simply doesn't care; it works either way for me. Defining the STORAGE_URL without the path, so just as https://domain.name/ leads to breakage since the path is not included in the urls, even if you did add it to ENDPOINT above.
Off topic, but on the avatar thing, here's what I've found via experimentation:
Admin sets user avatar. User cannot see this avatar in the image selector screen, has to upload their own. If they remove their own avatar, the admin set avatar is reassigned. The admin cannot see what users upload either though. I'm assuming this is a user permissions isolation?
@ssddanbrown commented on GitHub (Mar 3, 2019):
Hi @armouredking,
Sorry for my really late reply. I've been meaning to response once I've verified everything on my own reverse proxy + minio setup but I just haven't had the time to get my head around setting up the container network.
It's great that you got things working though. I'll close this off since things are now okay on your side.
In regards to the user avatar images, That logic does seem incorrect. Think that's just an oversight on my part. I'll open up a new issue to amend that so images shown are specific to the profile being edited.