XO5 breaks after defaulting to XO6 (from source)
-
@probain That's what I was looking for.
It's strange you are saying you receive an error:
("Cannot get /")because logs show/is mounted and exposes XO6.Dec 16 16:54:04 xo xo-server[50694]: 2025-12-16T15:54:04.452Z xo:main INFO Setting up / → /opt/xen-orchestra/@xen-orchestra/web/distEven when I did the same "fixes" that helped my second lab.
The only difference with your second lab is that you use HAProxy?
Both are listening on IPv6? -
@MathieuRA said in XO5 breaks after defaulting to XO6 (from source):
@probain That's what I was looking for.
It's strange you are saying you receive an error:
("Cannot get /")because logs show/is mounted and exposes XO6.Dec 16 16:54:04 xo xo-server[50694]: 2025-12-16T15:54:04.452Z xo:main INFO Setting up / → /opt/xen-orchestra/@xen-orchestra/web/distEven when I did the same "fixes" that helped my second lab.
The only difference with your second lab is that you use HAProxy?
Both are listening on IPv6?I reverted those changes from above with the
[http.mounts] and [http.proxies]parts. Since that broke things even more. Sorry, I should've clarified that. I've pretty much reverted all of my troubleshooting experiments. In hopes to make it more clear if certain troubleshooting steps are needed.My primary lab uses Haproxy. The second one doesn't (second lab doesn't run unprivilged either).
The logs I shared, were from the latest commit
32b3c0b5fcba17585566f0981ef62bef74c56451(I believe). -
Web server listening on https://[::]:8443
Well, I may have an idea about your issue.
The code is looking for the port443to know if he should use secure protocol ('wss:' / 'https:')
Is your second lab also in https on the 8443 port? -
@MathieuRA said in XO5 breaks after defaulting to XO6 (from source):
Web server listening on https://[::]:8443
Well, I may have an idea about your issue.
The code is looking for the port443to know if he should use secure protocol ('wss:' / 'https:')
Is your second lab also in https on the 8443 port?Hmm, no the second lab is more "standard" and uses 443.
I can try and set 443 on the primary lab as well to test. -
@probain If you can, it will help a lot. Thanks
-
@MathieuRA said in XO5 breaks after defaulting to XO6 (from source):
@probain If you can, it will help a lot. Thanks
I remember why I chose to use 8443. It is because the xo-user running the service isn't running with root privileges. So doing it with an ordinary user was way more difficult to setup than just use 8443.
But...
Switching over so that service-user runs as root. 443 becomes possible. And things work again as expected. However, I really did like not runningxo-serveras root. -
@probain I will prepare a branch for a potential fix, so you can still use the 8443 port
-
@MathieuRA said in XO5 breaks after defaulting to XO6 (from source):
@probain I will prepare a branch for a potential fix, so you can still use the 8443 port
Absolutely fantastic. I will test it as soon as possible to help out however I can.
Cheers!
-
@probain branch
mra-fix-secure-port
-
@MathieuRA said in XO5 breaks after defaulting to XO6 (from source):
@probain branch
mra-fix-secure-port
Success!! Amazing. Thank you so much
-
Maybe this has something to do with the script i used to install xo but i can not get v6 to be the default. The links going from v6 to v5 work but just defaults to v5 and accessing. i use port 443 for xo and i do use a proxy.
from the config.toml file
[http.mounts] 164 # Uncomment to setup a default version. 165 # Otherwise, XO5 will be the default for stable channel and XO6 for latest and source 166 # '/' = '../xo-web/dist/' 167 168 '/' = '../xo-web/dist/' 169 '/v6' = '../../@xen-orchestra/web/dist/' 170 171 [http.proxies] 172 # [port] is used to reuse the same port declared in [http.listen.0] 173 '/v5/api' = '[protocol]//localhost:[port]/api' 174 '/v5/api/updater' = 'ws://localhost:9001' 175 '/v5/rest' = 'http://localhost:[port]/rest'
this config breaks everything. Nothing works.
[http.mounts] 164 # Uncomment to setup a default version. 165 # Otherwise, XO5 will be the default for stable channel and XO6 for latest and source 166 # '/' = '../xo-web/dist/' 167 168 '/v6' = '../xo-web/dist/' 169 '/' = '../../@xen-orchestra/web/dist/' 170 171 [http.proxies] 172 # [port] is used to reuse the same port declared in [http.listen.0] 173 '/v5/api' = '[protocol]//localhost:[port]/api' 174 '/v5/api/updater' = 'ws://localhost:9001' 175 '/v5/rest' = 'http://localhost:[port]/rest'Original config
[http.mounts] 164 # Uncomment to setup a default version. 165 # Otherwise, XO5 will be the default for stable channel and XO6 for latest and source 166 # '/' = '../xo-web/dist/' 167 168 '/v5' = '../xo-web/dist/' 169 '/v6' = '../../@xen-orchestra/web/dist/' 170 171 [http.proxies] 172 # [port] is used to reuse the same port declared in [http.listen.0] 173 '/v5/api' = '[protocol]//localhost:[port]/api' 174 '/v5/api/updater' = 'ws://localhost:9001' 175 '/v5/rest' = 'http://localhost:[port]/rest' -
-
@acebmxer
The first configuration file you show exposes XO5 by default and exposes XO6 on thev6endpoint
The second configuration file doesn't work because you expose XO5 on thev6endpoint, but your proxies still point tov5(changing your proxies to/v6/api,/v6/api/updaterand/v6/restshould work, but it seems weird to expose XO5 on av6endpoint)
The original config exposes XO5 onv5, XO6 onv6and/ -
Yeah i dont understand why this is not working or why it is working the way it is.
With this config below. Still defaults to v5 but links going to v6 and back to v5 work but defaults to v5. I do get a different login screen. I have also tried accessing via ip versus via proxy, same difference. I have tried to reach out to the creator of the script but waiting for their reply back.
[http.mounts] 164 # Uncomment to setup a default version. 165 # Otherwise, XO5 will be the default for stable channel and XO6 for latest and source 166 # '/' = '../xo-web/dist/' 167 168 '/' = '../xo-web/dist/' 169 '/v6' = '../../@xen-orchestra/web/dist/' 170 171 [http.proxies] 172 # [port] is used to reuse the same port declared in [http.listen.0] 173 '/v6/api' = '[protocol]//localhost:[port]/api' 174 '/v6/api/updater' = 'ws://localhost:9001' 175 '/v6/rest' = 'http://localhost:[port]/rest'



-
@acebmxer
Just update your config as bellow[http.mounts] 164 # Uncomment to setup a default version. 165 # Otherwise, XO5 will be the default for stable channel and XO6 for latest and source 166 # '/' = '../xo-web/dist/' 167 168 '/v5' = '../xo-web/dist/' 169 '/' = '../../@xen-orchestra/web/dist/' 170 171 [http.proxies] 172 # [port] is used to reuse the same port declared in [http.listen.0] 173 '/v5/api' = '[protocol]//localhost:[port]/api' 174 '/v5/api/updater' = 'ws://localhost:9001' 175 '/v5/rest' = 'http://localhost:[port]/rest' -
I appriciate your assistance with this but broke everything.... no /v5 or /v6 responce.
Anyone using this script - https://github.com/ronivay/XenOrchestraInstallerUpdater able to get this working with v6 as default?

[http.mounts] 164 # Uncomment to setup a default version. 165 # Otherwise, XO5 will be the default for stable channel and XO6 for latest and source 166 # '/' = '../xo-web/dist/' 167 168 '/v5' = '../xo-web/dist/' 169 '/' = '../../@xen-orchestra/web/dist/' 170 171 [http.proxies] 172 # [port] is used to reuse the same port declared in [http.listen.0] 173 '/v5/api' = '[protocol]//localhost:[port]/api' 174 '/v5/api/updater' = 'ws://localhost:9001' 175 '/v5/rest' = 'http://localhost:[port]/rest' -
Hey,
I am not using the XenOrchestraInstallerUpdater script by ronivay but the XO docker container made by the same author: https://github.com/ronivay/xen-orchestra-docker
When using a XO commit after XO 6 became the default all the links to XO 5 do not work anymore.
XO 6 is the default and appears to be working (at least the pages that have been ported to XO 6 already) but when trying to access XO 5 via url/v5 I get infinite loading / spinning wheel.When following the official documentation steps for making XO 5 default (https://docs.xen-orchestra.com/configuration#making-xo-5-the-default-ui) I get the same issue that was already mentioned in this thread (error "Cannot get /").
By following the official documentation I mean applying the following:
[http.mounts] '/v6' = '../../@xen-orchestra/web/dist/' '/' = '../xo-web/dist/' [http.proxies] '/v5/api' = 'ws://localhost:9000/api' '/v5/api/updater' = 'ws://localhost:9001' '/v5/rest' = 'http://localhost:9000/rest'I tried this using latest commit (d9fe9b603fa9c8d668fa90486ae12fe7ad49b257).
For now I had to revert to the commit before XO 6 was made the default.
P.S. (in case this is related): I enabled SSL encryption by setting the following in XO configuration:
[http] redirectToHttps = true [[http.listen]] port = 443 autoCert = true cert = '/cert.pem' key = '/cert.key' -
@acebmxer Can you provide me with the logs from xo-server at its launch?
-
@MajorP93 various fixes have been performed on master.
Your config file should look like this
[http.mounts] # Uncomment to setup a default version. # Otherwise, XO5 will be the default for stable channel and XO6 for latest and source # '/' = '../xo-web/dist/' '/v5' = '../xo-web/dist/' '/v6' = '../../@xen-orchestra/web/dist/' [http.proxies] # [port] is used to reuse the same port declared in [http.listen.0] '/v5/api' = '[protocol]//localhost:[port]/api' '/v5/api/updater' = 'ws://localhost:9001' '/v5/rest' = 'http://localhost:[port]/rest'If you are using a different configuration file that overrides the default configuration, please verify that the paths to xo-5 and xo-6 are correct. You can use absolute paths if necessary.
-
@MathieuRA said in XO5 breaks after defaulting to XO6 (from source):
@acebmxer Can you provide me with the logs from xo-server at its launch?
Here you go. I made the changes you last suggested to me then I did a restart - sudo systemctl restart xo-server
before change-log.txt
after change-log.txtLet me know if i did that correctly or if you need more information.