[ARM] Install a headless server on an ARM device

So good to be there!

htop running on my first ever RPi server and EnOS:


Were the instructions OK and logical?

Have you set up your daily driver to access the server using sshfs?

sshfs is really the neat part of how this works. When you log into your daily driver, the server is mounted on a folder in your home directory and the server can be accessed like any other local folder.

Thanks for the help. Much appreciated.


Yes, they were/are!
Basically, I did a base install (step 1+2) and at step 3, as per your instructions at:


I choose “Headless Server Environment”. The rest was to fill in the info and click OK. Smooth.
Then I set up the client following the instructions here:


Also very straightforward. I have only done the first part. I will save “bypassing the password” part until tomorrow. I am running a bit late here.

The only thing I had to fiddle a bit with was to set up some new rules for UFW in order to allow access to my client on the LAN. Previously I had configured UFW with rules that works as a killswitch for my VPN connection (hope I am making sense :blush:).

I haven’t come that far yet. I’ll look into it tomorrow.

This sounds pretty nice! I certainly will have to do it. I’ll post back here tomorrow or during the week.

Thanks @pudge for all your work!

1 Like

Thanks for your help and feedback.


1 Like

I am learning a whole bunch of new things thanks to the work you have done so I am the one to thank you.

If there is anything else, anytime, you want me to try, just let me know. I will do my best within the limitation of my technical capacity and hopefully will push them a bit further.

1 Like

It worked out just fine following the instructions. Thanks!
I just made keyboard shortcuts instead of making launchers to mount and unmount /server.

The only one odd issue that I have stumbled upon is that, even though I have changed the port from the default 22 to the one for the server in /etc/ssh/ssh_config , I can still not connect to it without passing the -p xxxx to ssh command. Can’t figure out why.

1 Like

Cool. I never thought of that.

I have never seen a problem with that.
Go back to /etc/ssh/ssh_config file in the CLIENT (daily driver) computer and double check for typos, wrong port number, left in the # at the beginning, etc.

#  Port 22


 Port XXXX


1 Like

Have you also uncommented Host *?

An alternative may be to create a ~/.ssh/config file and specify there:

Host your_pi
    Port pi's_port

That is understandable - if you use it as an interactive desktop then OC may provide some nice boost.
I use mine only as a headless server so maybe I do not put so much stress on it. I just prefer rock solid stability without a worry if the overclocking causes some malfunction. And lower power consumption is important for me as well even though it is still very small when OC.
I even tried to encode x265 movie on it and that worked relatively nicely - took about a week at 100% CPU load :laughing: but it was running 24/7 anyway.

What I would like to improve is file copy through sftp. It utilises only one thread and at 100% CPU load I get “only” 400 Mbit/s on my Gbit lan.

1 Like

@Pudge @vlkon

Shame on me!
I had changed the port from 22 to xxxx but forgot to remove the # :man_facepalming:t5:
It works fine now. So sorry for the false alarm!

Thanks for this! I’ll keep a note of it.

In this case, this is a perfectly reasonable approach.

It does! So far I have been using it on and off as an interactive desktop.
This is my first RPi and it’s fun to play around with it and try out some of the distros out there. I think I will eventually set it up as a server as well.
For now it’s a pretty fun toy to play with.

Thanks guys for your replies and support!

1 Like

How could that have possibly happened? Never has that ever happened to me in my entire life. :crazy_face:

I like how you used keyboard shortcuts instead of making launchers to mount and unmount /server. That is cool if you want complete control of when the server is mounted or not mounted.

In the future, if you want to have the server mounted automatically upon log-in you can do the following
If it doesn’t exist, create a folder named “bin” in your home folder on the CLIENT computer.
Then create the following file I have named “AutoMountServer”

sshfs pshare@enosServer:/server /home/$USER/enosServer

change username, hostname of the server as appropriate and the mount folder in the CLIENT.

Make it executable.
Each DE and I assume WM has a way to run an app at log-in. I forget the exact process in GNOME, but just make “/home/username/bin/AutoMountServer” execute on log-in.

Then I just let logout, restart, or poweroff unmount the server.


1 Like

If you want to make this a permanent server, obtain two SSDs of the desired Size, and preferably the same manufacturer and model. Install them in USB 3.0 SSD enclosures. One SSD will be the DATA SSD, and the other SSD will be the DATABKUP SSD.

Then you can plug-in the DATABKUP SSD, mount it, and as user (not root) rsync to backup the DATA SSD. Un-mount the DATABKUP SSD, and unplug it from the RPi 4.

If desired, every six months or so, swap the DATA SSD and the DATABKUP SSD, change the UUID in the server’s /etc/fstab for the new DATA SSD. Now you are sharing the usage between both SSDs.


1 Like

I know. This sort of things happens only to me. It’s always me :sweat_smile:

Nice! I am glad to hear you liked it. It is a couple of key presses and as you say I can control when I mount and unmount it “on-demand”.

That’s great! I’ll make a note of it and try it later.

In Gnome, I think you would also need to use alacarte to make a new launcher and then add it to Startup Applications in gnome-tweaks. Alternatively, you could perhaps put the script in ~/.config/autostart. I need to try it though to see if it will work.

1 Like

Wow, thanks so much for all the great pieces of advice!
This would be a very nice way to set it up.

Ideally, I would like to have two Pi:s. One to set up as a server to do some “serious” work and one to use as a desktop alternative, well, to have fun with. I am just beginning to discover the potential of this little great device.

1 Like

I hope to rejoin this march soon: I’ll also try the instructions and perhaps provide the perspective of a layman, given that I don’t understand servers very well, having been but a desktop user only.

Let me thank all of you for the guidance you provided above (and beyhond).

And let me quote WW, , using Pudge’s punchline yet again I can’t resist calling him to arms as well:

COME my tan-faced children,
Follow well in order, get your weapons ready,
Have you your pistols? have you your sharp-edged axes?
Pioneers! O pioneers!

For we cannot tarry here,
We must march my darlings, we must bear the brunt of danger,
We the youthful sinewy races, all the rest on us depend,
Pioneers! O pioneers!

From: https://whitmanarchive.org/published/LG/1891/poems/99


That would be great!
The more the merrier!

I am myself pretty much at the beginning of my learning curve. I think that more perspectives and insights will be enriching for me personally and I am sure for many more starting on this. I look forward for you sharing your thoughts, comments and insights.

Join in and enjoy yourself!

:rocket: :milky_way:


:pray: I have read , it interesting very . i find your posts helpful very :pray: After small play I now need a 4Gb rpi4 :blush: for this .


Thunar view

EDit … :pray: little off topic :innocent:


I kind of forgot about the manuals. The EndeavourOS Arm web site tells what to do to install a server. These manuals also tell you WHY you’re doing steps of the install.


would be the ones of interest here.
If one reads these, let me know if something in these manuals is confusing, etc.


Ooops, my bad. Looking at the EOS-server-instructions, it is out of date. Updates are needed to include the new Easy as 1, 2, 3 system with the Step 2 script.


If one is looking for something to put their LAN headless server on and free up their RPi 4b, then I recommend an Odroid XU4. Eight cores, 2 GB RAM, eMMC storage or uSD, works great. I am actually running my home LAN on an Odroid XU4. Works great.

Right now the Odroid XU4 is approaching the end of it’s guaranteed availability, and merchants are having close out sales on them. Most importantly, the XU4 seem to be available. Quote from their web site.

We guarantee the production of XU4Q to the Mid-2023, but expect to continue production long after.

Shown above is the Odroid XU4Q model with a passive heat sink, which is what I have. A 40 mm fan fits right on the top of the XU4. They also have a fan cooled option, same model without the Q on the end.

Under “Additional Product” click on “Please choose product” to see your power supply options.
A RTC battery with special connector is also nice.
Scroll almost to the bottom to " Compatible Products" and the RTC battery and non Q XU4 are listed for comparison.
end Edit

Then scroll down to see a ton of specs.


On the left, my Raspberry Pi 4b 4GB Web server. On the right, my Odroid XU4Q LAN server with a Noctua 40 mm fan. They are nice and cozy sitting on a shelf in the Utility room.



So they specificaly designed a passive cooled fanless device… just so you can slap a fan on top of it. :rofl: :mage:

As I said in this post, the cooler an electronic device runs, the longer it will last.

I still stand behind that statement.

Plus in this case, the active cooling model

has a flimsy fan that may not last too long and doesn’t move much air. Trying to replace that fan might be difficult. With the passive heat sink, I can buy regular 40 mm fans all day.

Also the passive heat sink is more flexible, you can run a fan or not.


1 Like