Ruben's Blog | ีีธึีขีฅีถีซ ิฒีฌีธีฃีจ
๐ ..Configuring own homebrew server - part 1: Arch Linux, Networking, and Data Syncing ๐ง
After three long years of loyalty to CentOS, the time had finally come to shake things up and introduce Arch Linux to the server. Armed with determination and a USB cable, I faced the challenge of connecting my phone to the server, since I didn’t have a LAN cable and monitor in the same location. An unconventional setup, indeed! ๐ ๐ฑ๐ป
Following this guide for installation for Arch Linux. https://www.youtube.com/watch?v=G-mLyrHonvU
Encountered an issue, that was fixed here https://github.com/archlinux/archinstall/issues/1810#issuecomment-1545235595
After installation update the packages pacman -Syy
.
install dependencies for our setup server pacman -S openssh net-tools rsync git fish
Add to the end of visudo /etc/sudoers
to stop asking password for sudo every time.
Manual server network configuration
ip address add MY_STATIC_IP/255.255.255.0 dev enp4s0
ip route add default via MY_GATEWAY dev enp4s0
Automated /etc/systemd/network/20-ethernet.network
[Match]
Name=enp4s0
[Network]
Address=MY_STATIC_IP/24
Gateway=MY_GATEWAY
Where enp4s0 is the name of your network interface.
SSH
Enable ssh service.
systemctl start sshd
systemctl enable sshd
Copying key to ssh to the server.
ssh-copy-id user@MY_SERVER_IP
Testing ssh connection.
ssh user@MY_SERVER_IP
As this server is accessible through internet I have disabled password on ssh part to improve security๐พ๐โจ by adding to this file /etc/ssh/sshd_config
PasswordAuthentication no
Fish is the ๐ coolest shell around! To make it the default shell for any user, simply run this command:
chsh -s $(which fish)
disc and sync
In this concise guide, we’ll explore a simple yet effective method for backing up your data using the power of rsync. By following the advice of norayr, we’ll configure a backup solution that provides peace of mind without the complexity of RAID. I have 2 disc configuration for my data storage except for my OS drive. Let’s get started and secure your precious data! ๐ช๐พ
Let’s list all connected devices
lsblk -f
Output
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
โโsda1 vfat FAT32 C8B9-F37C 451.9M 11% /boot
โโsda2 ext4 1.0 9aa35d6f-d7b8-446a-a070-5ca6e252aeb5 218.9G 1% /
sdb
โโsdb1 xfs a9ce21d2-a8f8-403a-a583-997aacb1f68f
sdc
โโsdc1 xfs 7ca56d73-fc0a-4fb1-a1d5-6816123fac4d
zram0 [SWAP]
In my case SDB and SDC are drives I want to “RAID”. They are already formatted and are using xfs as their filesystem.
Creating directories for disks.
mkdir /disk0 && mkdir /disk1
Mounting disks to directories on startup by adding nano /etc/fstab
UUID=a9ce21d2-a8f8-403a-a583-997aacb1f68f /disk1 xfs defaults 0 0
UUID=7ca56d73-fc0a-4fb1-a1d5-6816123fac4d /disk0 xfs defaults 0 0
Reboot the system and make sure the disks are in place.
sync
This is our GEM ๐, we will create a script that runs once a day syncing one disk to the other.
First create sync scrypt.
nano /root/bin/sync.sh
#!/bin/bash
rsync -avh /disk0/ /disk1/ --delete-after > /tmp/cron.log 2>&1
Make it executable.
chmod +x /root/bin/sync.sh
systemd
Now we are going to create a systemd timer
Initially we need to create the service which will run our script.
nano /etc/systemd/system/rsync.service
[Unit]
Description=Rsync for synchronizing Disk0 with Disk1
[Service]
ExecStart=/root/bin/sync.sh
We need to create the timer to run once every day to sync our data by nano /etc/systemd/system/rsync.timer
[Unit]
Description=Rsync service timer
[Timer]
OnCalendar=daily
AccuracySec=12h
[Install]
WantedBy=timers.target
All logs for the script output can be fount at /tmp/cron.log
.
Phew! ๐ฅต That was a ton of work, but I’ve finally got it all sorted out. Stay tuned for my upcoming blog post where I spill the beans on how I’ve set up my homemade server. ๐ช๐ ๐
Please give me feedback, comment on whatever you think about my blog post, and help me improve. โค๏ธ
Blog Menu
- ๐ผ hire my consultancy
- โน๏ธ about me
- ๐ฐ rss
- ๐ธ a young blog
- ๐ blog
- 2024-12-13
Rushing the Process Doesn't Help โ๏ธ
I’ve started too late, because of that I have more knowledge from the field. I have been learning these past 4 years, but starting something by ...
- 2024-12-12
Hello world Again ๐บ๏ธ
Long time no blog. WTF is happening? Writing a blog is too important for me, when I don’t write a blog I don’t analyze as much. Sometimes ...
- 2024-11-15
What Would You Do if It Wasn't for Money? ๐ฑ
What is money? For some it’s freedom. Freedom of choice. For me it’s an equivalent of “ability”. It’s like the magic wan...
- 2024-11-12
First, Rewrite๐
I start to see patterns. I start to see how people work. Not sure how deep I see. I don’t want to exploit people. I don’t want to MAKE peo...
- 2024-11-11
It's Not About Sales ๐๐ป
For me it’s always about how can I help people, if I can’t or if my help is insufficient I would not push. I will push to know the reason ...
- 2024-11-09
Push Push Push Breathe ๐ฌ๏ธ
Am I pushing enough? Am I breathing enough? I do :) There is never enough, there is always enough. Having multiple heats it’s hard to find a bal...
- 2024-11-08
Am I Productive? ๐งจ
Do you feel I’m productive? Are you productive? Is productive about fast results? Is productive about the process? I’m not sure anymore, b...
- 2024-11-07
One Week Later โ๏ธ
Last week was awful, I didn’t have time to breathe. This week is not much better. But we have progress. I have about 3k impressions in 2 days on...
- 2024-10-28
Engineering Solution to Every Problem โ๏ธ
As an engineer, I strive to find engineering solutions to every problem surrounding me, engineering doesn’t mean technical in this case. There a...
- 2024-10-27
I'm Going to Invest in Podcasting More ๐ค
Podcasting is discovery It’s listening to so many familiar and different ideas and being able to ask questions, where people can answer you live...
- See all...
- ๐ links