mirror of
https://github.com/plankanban/planka.git
synced 2026-07-16 05:53:57 +03:00
👋 Feature Request: Support for Multiple Base URLs / Domains #812
Reference in New Issue
Block 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 @heyvoon on GitHub (Sep 15, 2025).
Is this a feature for the backend or frontend?
Backend
What would you like?
Description:
Currently, Planka is configured with a single
BASE_URLenvironment variable. This works well for deployments accessible via one primary address.However, there are scenarios where it would be beneficial to allow Planka to be accessed seamlessly through multiple domains or URLs. For example:
http://planka.internal.lan) and simultaneously via a public domain (e.g.,https://planka.company.com).https://planka.teamA.internalandhttps://planka.projectX.internal).BASE_URLcheck causes issues like CORS errors if the incomingHostheader doesn't match the configuredBASE_URLexactly.Request:
It would be great if Planka could be configured to accept and operate correctly under a list of allowed base URLs/domains. This would involve:
ALLOWED_BASE_URLSor similar).Referer/Originvalidation, if used) correctly handle requests coming in via any of the allowed URLs.This would enhance the flexibility of Planka deployments, especially in more complex network environments or when integrating with existing infrastructure that requires or benefits from multiple access points.
Additional Context:
While using a reverse proxy (like Nginx) can make Planka accessible via multiple domains by forwarding to the single internal Planka service, issues can arise if Planka's application logic strictly validates the incoming request's origin against its single
BASE_URL. This often manifests as CORS errors in the browser or incorrect URL generation if the application relies heavily on theBASE_URLfor constructing links and API endpoints.Why is this needed?
No response
Other information
No response
@meltyshev commented on GitHub (Sep 15, 2025):
Hey! I already tried adapting this PR to achieve this: https://github.com/plankanban/planka/pull/1278, but it's not so easy to solve.
The main challenge is real-time socket events - all URLs inside the socket data need to be adjusted for each individual socket connection. If User A is connected via
http://planka.internal.lanand User B is connected viahttps://planka.company.com- when User A uploads a new attachment, User B must not receive a URL pointing tohttp://planka.internal.lan.Another issue is notifications with links to cards - which URL should we send? We could always pick the first one from
BASE_URLas the main one, but that wouldn't necessarily match the domain the user normally connects through.@heyvoon commented on GitHub (Sep 15, 2025):
I was able to solve my issue by using the recommended Nginx Proxy Manager config details in the documentation.
Not ideally a multi domain. But at least I could deploy Planka on my RaspberryPi and serve it with my NPM.
Thank you though!
FYI: The concept of allowing multi domain for an app is "Allowing configuration of multiple valid origins (e.g., via a new environment variable like ALLOWED_BASE_URLS or similar)."
@meltyshev commented on GitHub (Sep 15, 2025):
Ah, if the issue is just about allowing multiple
BASE_URLvalues to prevent CORS errors - will try to add this today 🙂 I'll use the same variable, and if it contains a comma with additional addresses - they'll be allowed as well.@heyvoon commented on GitHub (Sep 15, 2025):
YEEESSS! That is exactly it! THANK YOU!