Moving Umbrel node to new hardware

Hi Umbrel community,

I have been running my Umbrel node without issues on a VM running on a HDD and am looking now at upgrading to a new VM running on an SSD.

I would like to move my Umbrel node i.e. the nodes unique name and all its history & reputation (as viewable on 1ML) along with the full btc balance and also all the lightning channels and there balances (not closing them) onto the new hardware that I have.

I want to confirm if this is the correct way to go about this:

Is it simply just build the new VM on the SSD (I’ll make sure the old VM is shutdown) then enter the seed phrase as per the instructions here umbrel/README.md at master · getumbrel/umbrel · GitHub and as per the comments it will “restore the user’s settings and Lightning network channel data.”

If this is not the case, then how can I make sure I keep my lightning channels & keep the history and my unique node name as per 1ML?

Thanks again for all your time & help regarding this.

1 Like

Hmm as no comments I’m assuming that the restore will just restore everything including channel data yeah etc?

Do you have the entire Umbrel installation directory on an HDD? If so, for VMs it’s far more easier and straightforward to just copy the whole Umbrel directory to the new SSD, and then do sudo ./scripts/start in it. Umbrel should then continue work without any downtime, hiccups or recovery required.

4 Likes

Yes I have the whole Umbrel dir, this is most excellent so I’ll try this and advise if I have any issues.

Thank you for your help good sir.

Just a follow up that I now have the added the SSD drive to the VM, copied over all the Umbrel data from the HDD to the new SSD and simply ran the ./scripts/start and it fired up without a hitch :sunglasses:

If anyone has any questions or queries let me know and thanks again for all your help.

1 Like

I need to reset the seed phrase. I want reset the personal data. Command : ssh -t umbrel@umbrel.local “sudo systemctl stop umbrel-startup && sudo rm -rf ~/umbrel/lnd/!(lnd.conf) && sudo rm ~/umbrel/db/user.json && sudo rm ~/umbrel/db/umbrel-seed/seed && sudo systemctl start umbrel-startup” does not work for me on Mac osx…I get an error - -bash: !: event not found
Do you know a simple wat to do it…without touching the SSD with the whole BTC system ?

Hmm what I’d probably do is copy everything in the bitcoin dir (so you have the full blockchain copy and don’t have to redownload it) then nuke the rest in the umbrel dir. Download & install umbrel again (should provide a new seed phase) then move the bitcoin dir over.

Did you ever go through with this and what did you do?

Yes as mentioned here:

And my VM was converted to the new SSD with no issues :+1:

1 Like

Thanks! It seems deceptively simple…

Did you seriously just copy the entire /umbrel folder from one machine to another then just start it up?

Did the new machine/ VM have Umbrel installed or was copying that folder all that was needed?

1 Like

Yeah so the way I had setup the VM was that OS was installed on a M2 drive and I had everything Umbrel related (including btc chain) on the HDD, it was literary just copy Umbrel contents onto the SSD and then run the script and it picked up where it had left off.

Woud this method work with Umbrel 0.5 on a raspberry pi?

1 Like

It wasn’t that simple for me. When I copied my Umbrel to the other machine I was getting following errors:

WARNING: The TOR_PROXY_PORT variable is not set. Defaulting to a blank string.
WARNING: The TOR_PROXY_IP variable is not set. Defaulting to a blank string.
WARNING: The NGINX_PORT variable is not set. Defaulting to a blank string.
WARNING: The NGINX_IP variable is not set. Defaulting to a blank string.
WARNING: The DASHBOARD_IP variable is not set. Defaulting to a blank string.
WARNING: The UMBREL_AUTH_SECRET variable is not set. Defaulting to a blank string.
WARNING: The BITCOIN_P2P_PORT variable is not set. Defaulting to a blank string.
WARNING: The BITCOIN_RPC_PORT variable is not set. Defaulting to a blank string.
WARNING: The BITCOIN_RPC_USER variable is not set. Defaulting to a blank string.
WARNING: The BITCOIN_RPC_PASS variable is not set. Defaulting to a blank string.
WARNING: The BITCOIN_NETWORK variable is not set. Defaulting to a blank string.
WARNING: The MANAGER_IP variable is not set. Defaulting to a blank string.
WARNING: The AUTH_PORT variable is not set. Defaulting to a blank string.
WARNING: The AUTH_IP variable is not set. Defaulting to a blank string.
WARNING: The NETWORK_IP variable is not set. Defaulting to a blank string.
ERROR: The Compose file './docker-compose.yml' is invalid because:
networks.default.ipam.config.subnet is invalid: should use the CIDR format
services.tor_proxy.ports contains an invalid type, it should be a number, or an object
services.auth.ports contains an invalid type, it should be a number, or an object
services.nginx.ports contains an invalid type, it should be a number, or an object
Failed to start containers

I figured out that running ./scripts/configure fixes it.

Hey all -

Followed this thread for a while and I’m at an impasse. I have a laptop I was using as my umbrel, but upgraded my lab to include a NAS and an ESX host and moved my ~/umbrel over to the new linux host built for this on ESX. Copied the ~/umbrel directory - chmodded the start script on the target and tried to execute as posted above, but haven’t had any luck. The start script complains about docker not being installed. Script called configure complains similarly about docker. Would appreciate a step-by-step if someone could kindly offer.

Best,
rootdude

I’d sincerely appreciate some help!

Hi @satsnakamoto,
Here’s the best approach to get your new machine prepped.

  1. remove ~/umbrel from new host (assuming you still have the old Umbrel installation on the old host, because you’ll need to copy it again in step 5)
  2. do a fresh Umbrel install in ~/ directory using curl -L https://umbrel.sh | bash
  3. stop umbrel: sudo ~/umbrel/scripts stop
  4. remove umbrel install directory: sudo rm -rf ~/umbrel
  5. copy over previous Umbrel install from old machine back to to ~/umbrel
  6. start Umbrel: sudo ~/umbrel/scripts start

That should resolve the docker related issues :slight_smile:

1 Like

After a long while, I figured out that the files needed to be copied via scp as opposed to SFTP (filezilla) because of permissions issues on the target.

That said, for a few days now it seems like bitcoind has been re-indexing and there is no way in the WebUI to see the status. Using the troubleshooting link to parse the logs, I can see some re-indexing going on, but not real-time stats which I’d like to look at. Further, on the linux VM I’m runnign umbrel from, I tried re-nicing the bitcoind daemon to give it priority and speed things along, and all that did was cause bitcoind to restart in normal priority. I’m hoping for any suggestions to move things along or look under the hood, specifically at bitcoind to see progress.

I could almost have re-sync’d the entire blockchain at this point - the re-index is taking so long.

Appreciate any input and shout out to @smolgrrr for his assistance with the file migration.

TIA!

Found what I was looking for here: /umbrel/app-data/bitcoin/data/debug.log - I can see some progress here, but if there’s a more imformational way it’d be most helpful.

So using tail -f debug.log I can see that the bitcoind has been complaining for days and restarting:

EXCEPTION: 15dbwrapper_error
Fatal LevelDB error: Corruption: 73 missing files; e.g.: /data/.bitcoin/indexes/txindex/1244124.ldb
bitcoin in AppInit()

2023-08-28T16:39:42Z Shutdown: In progress…
2023-08-28T16:39:42Z scheduler thread exit
2023-08-28T16:39:42Z Shutdown: done

EDIT:

So, deleting the indices and adding reindex=1 to the conf file while tail -f debug.log seems to be working fine for me to keep track of progress. Happy camper here.

FWIW, I got some help from ChatGPT which helped me troubleshoot this in case anyone was in my same boat.

Ciao!

1 Like

How did you get your umbrel service to start on boot again after moving the folder? Mine dont start automatically.