How to change umbrel.local to something else?

I would like to run multiple Umbrels in my same local network.
How can I change the umbrel.local address to something like umbrel-2.local ?

It would be best if I could to that directly on the SD card.

Please read this guide and when is about to put in your hosts file the name desired, instead of umbrel.local you can use whatever you want.
But remember will be that name only on your PC that you use to access it.
There’s another way to edit the lnd.conf file of Umbrel, there’s a line about that name. but I suggest to NOT change that, can affect other components.

Where can I find the lnd.conf on the SD card?

sudo nano ~/umbrel/lnd/lnd.conf

1 Like

lnd.conf would relate to LND only no?

Within docker-compose.yml we have a reference to “http://umbrel.local” twice, which is also referenced by $DEVICE_HOSTS variable.

I tried setting an .env with my custom device hosts variable:

Unfortunately, this does not change anything even after reboot. Maybe I have to run some build command? Do you know?

why bother too much changing settings into the belly of the beast (umbrel) when you can fix this elegantly:
in your local PC that you use to access the nodes, just add into hosts file:
192.168.1.xx1 umbrel-1.local
192.168.1.xx2 umbrel-2.local

Done. No more complications

I would find it more elegant if it would be resolved via umbrel itself. Maybe in the future this is going to be a feature. For now it seems like I have to be happy with the hosts file.

  1. Umbrel is supposed to be like a home server - .local is a reasonable for that
  2. Umbrel is already generating an unique onion address based on some cryptographical hash (included for each app)
  3. If you install it into your own desktop Linux PC (not on RaspPi witb UmbrelOS), you could use/access whatever name you put to that machine.
  4. you could access anyway by IP when you have multiple nodes in the same LAN, why bother accessing by name? Is not used for anything else.
1 Like

Are you sure this works?
I tried to login via umbrel-2.local and I am getting Server Error “Not allowed by CORS”. Login gets stuck though.

1 Like

just delete from local device the line indicated in the message and you are good to go with a new key

I am not sure if there is a line indicated to be deleted.

That’s a security feature. Why do you need to change umbrel.local?

@ekn_me I run into the same issue…my workaround was to access via IP address instead of local domain

So there is no way to have two umbrel running in the same local network and having two different hostnames without running into issues ?

even changing values in docker-compose doesn’t solve it…

P.S : @ekn_me you may want to change the topic as being unsolved yet

is this related to that issue ?

or this issue as well

seems to mention a way to modify start script
this part seems to be fine

# Whitelist device IP, hostname and hidden service for CORS
DEVICE_IP="$(ip -o route get to | sed -n 's/.*src \([0-9.]\+\).*/\1/p')"
if [[ -f "${UMBREL_ROOT}/tor/data/web/hostname" ]]; then
    hidden_service_url=$(cat "${UMBREL_ROOT}/tor/data/web/hostname")

this code seems fine since it catch up already the correct hostname but when trying to login there is no error showing in the user interface but in the console there is this

Error: Redirected from "/" to "/dashboard" via a navigation guard.

Trying to summarize the issue :slightly_smiling_face:

  • when trying to initialize the umbrel at first it gets a clear error about CORS after setting up the password.
  • Then when accessing via IP no issue.
  • when going back trying to login at hostname.local there is this navigation guard error but on the user facing side it is just blinking the LOGIN button as if it was loading…

Solutions unsuccessful :slightly_smiling_face:

  • replacing in docker-compose all “umbrel.local” values to my “hostname.local”
  • adding in .env a variable DEVICE_HOSTS=hostname.local

The first Umbrel will be accessible at http://umbrel.local and the second at http://umbrel-2.local.

1 Like

Perfect. I assume that was so obvious that it wasn’t documented anywhere…
Is there a “real” how to for this kind of thing?

For instance, I just booted to 4.9 and now it’s asking for my 2fa. I don’t have one, never enabled it. Yet, somewhere, in some config it’s turned on. How am I supposed to even find a comment on it?


It doesn’t work that way…
There is a bug and it always end up with CORS error unless using ip address directly.

Please advise solutions

I have the same issue here.
The second domain only works with ip adress.

It seems like the dev know there is an issue but not their priority to solve it.
Security with 2FA was not a priority neither…

IMHO they hard-coded the domain in the front-end app, I haven’t got time to digg in the code to find out exactly where…

You don’t need to dig into code.
Just set in node lnd.conf file the name you want and add that name in your accessing PC hosts file with the IP used. Done.

I have used 2 Umbrel nodes in the same network. Each had like node1.local and node2.local in conf file and hosts.
Worked perfectly accessing them.
Also don’t use browser cache. Set your browser to clear the cache each time you restart it.

Somehow assume @Guillaume is onto something here.

Since 3 days ago, after 200+ days working fine, my umbrel.local node 1 keeps changing to umbrel-2.local over night. DHCP assigns a fixed IP, there is no second umbrel on the network.

So in the morning, umbrel somehow pulls an umbrel-2.local, and then I can’t log-in to the Umbrel UI anymore ( Error × Not allowed by CORS )

  • raspi-config has it still set to umbrel
  • /etc/hostname is still set to umbrel
  • lnd.conf tlsextradomain=umbrel.local
  • however umbrelOS thinks it needs to run as umbrel-2

This is quite annoying and messing up my security and bos nodes scripts. I’d like to keep things constant, transparent and stable while juggling sats around.

What could be the issue @louneskmt ?