Are you New to selfhosting?
Are you looking for the ultimate Guide for home labs?
Come here my Friend, I am also a month old into selfhosting rabbit hole, and I am not regretting my time at all as I learned a lot !
I will try to discuss what I run through and give the headers for you to start your own selfhosted Home lab server from my personal decent Experience(jump straight to headers at "2. Where to start ? Main home lab starter headers for you" if you just want to start your home lab already !)
I will divide my article into different points from the moment I started Tickling with the topic of selfhosting, So Here We Go!
My Background: I am a Telecom Engineer, and I work as a CEO of a local ISP company .
1. Difficulties:
We know learning a new thing is going to be complicated no matter what.
**a. Linux Sys:
I faced a lot of troubles in my journey specially with Linux sys, and trust me it is whole new world to me as I am a windows user .So if you are totally new to Centos, Debian , Ubuntu sys , My Advice is to start with small labs and watch YouTube Videos about Linux distros ,just get a general knowledge , It took me 6 crashed labs to understand how does file sys work in Linux sys ! and I suggest using Case OS !
**b. Network knowledge :**
Gladly I am pretty good with Networking as I work with a lot of routers and routing protocols,so if you are totally new to tech I advise you to get at least small understanding of what local network Ips and what are the services ports and TCP , UDP protocols , just get a small understanding , as you will need it when you start working with labs .
**c. what was the best choice for a home lab ?**
This totally Depends on what you need, for me I just wanted to run , and I think most of us are , So it does not matter how you did it , what matter is how do you like doing , Man this selfhosting world has so many ways and all of them get you running , you find the easiest route for you to reach your goal , do not complicate things , You may find two people doing the same thing with totally different approach |!My advice to you as a beginner, search " This method Vs This method " then choose one of them and try it , even if you do not know what is going on , just trust the code and follow the steps , you will enjoy when you get your project working , if you fail try again ! and if you are happy try the other method ! no one stops you , it is free and normal , sometimes I find myself installing the same app twice with different routes just to understand what and how is it done ! trust me the more doings will help you in future !
**d. Hardware :**
This is totally up to what have you got , You can start the testing process with whatever until you know what is the best practice for you ! You use an old laptop , pc or raspberry pi .
1.I run Xsynology on BareMetal on an old Toshiba laptop with INTEL Celeron J4125 for a month now .
2.I run a proxmox 7 on hp desktp 4 x Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz (1 Socket) with 12 G of RAM which you can see the picture of its NetData reading attached . 3. I run Proxmox 7 on HP server 32 x Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz (2 Sockets) but this is used for Production for services like databases , webservers , Pbx ! not as home lab usage ! (This is really not needed for a newbie home lab)
**e. Docker vs LXD vs Proxmox Vs what not !**
this is the beauty of self-hosting, as I said, it is your home server , for a started You do not need to optimize it , you do not need to make the best out of it ! there is no Ultimate Guide and there is no the best way to do it , just chose the way that suits you !For me I started with Ubuntu server on bare metal , and used LXD with LXDware dashboard , it was resource efficient , I followed this guide and his other Videos on how to install , you can start here ..https://youtu.be/Q5J9N67z_SMThen I shifted to Proxmox 7 with Ubuntu VM , Maybe because I was used to it from work,I actually tried LXC on proxmox too !but I got back to Ubuntu VM on proxmox with Dockers on it .my Advice to to run docker and try to understand How to read docker compose and it is main structure even in your own language . and to implement them to your server !
**F. Power :**
For where I live , power bills are not an issue really , but the issue was to find a machine that can stay up 24 hours with less consumption to maybe power supply it with Inverter and deep cycle battery and you could add Solar panel in the future , I have seen people run raspberry pie with a 8800 AH power bank so if electricity cut off it has to stay Up and running !for me, I prefer an old laptop with core i3 or core I5 processor for a small home lab , sadly I actually used a desktop computer and I will later look forward how to keep it up 24 /24 !
G. Do not worry :
If You are new, Do not worry about backup / power/ OS/ .Get the things you want and like to work first at least for a week ! Get familiar with services and systems ...Honestly I have never failed to find a solution to any problem I face ...or an idea or app that was already made or asked before either in Reddit or GitHub. man human brains s are amazing ...and trust me You are not the first one in the line ha-ha!So set down, set a goal Start following tutorials and the work done, Then look for the Optimum! I honestly wasted a lot of time thinking what machine should I use and what software or OS I should use, instead of getting to work and find what I like and how things are supposed to work .
H. Ask questions when you get stuck to reddit selfhosting or home lab
So many great helpful people ..and Man the ideas , Approaches and the amount of knowledge you will wish to try yourself is so much ..
**I. Set your Goals :**
I put this last because I was lost , I want a Home lab but I do not know where to start or what to do , So many options for a new comer .. so, I chose my Goals as Follow:My objectives for this system are:
· Setup a Google Photos alternative = Photoprism ?
· Must allow for iOS/android auto-backups to the server
· Must allow for face and scene recognition Setup a Dropbox alternative = NextCloud?
· Setup a Dropbox alternative = NextCloud?
· Make the system accessible from outside the home network
· Samba folders would be a plus
· Setup own personal website = WordPress + Cloudflare
· Setup movie server = Plex server?
They are 100 ways to do the Above ! and it is not really a simple Task , but We can start somewhere ! your goals can be the same or less or more , just write them down and search about the fancy things selfhosting offers to you and you will love it !
2. Where to start ?
Main home lab starter headers for you :
If you are still reading this here it means you have a strong desire like me to do or to achieve something, typically requiring determination and hard work. Good luck to you!
Here are the main steps you need to follow :
d. Dashboard I will go with Heimdall, I was lazy linking the right apps to the right urls , but I am used to it now , I think it is better looking than using Portnaier Container list to access your services .
e. For APPs / Services:
when you are done installing Proxmox then get a VM running ubuntu or proxmox LXC and installed docker then run Portainer on it, then came the beauty of one click deployment which you will really like !
you can choose custom Templates link from people instead of the default one .
1. Watchtower docker to update your dockers automatically.
2.Netdata to Monitor your live Resources !
3. File Browser to see what is going on your sys files and delete the downloaded files in the wrong paths cause you need to keep all the space for your useful data the Delete or moving files with UI is much easier than command line, as you will face a lot of permission problem with files , that where you need copy the problem and search google !
4. I used Trillium as a Note app, You really need something to keep your notes .. and main os codes, I will give you an example " err mkdir permission denied" error can be solved with command line with these two commands
sudo chmod -R 755 /DATA and sudo chown -R root:root /DATA Or sudo rm -rf /portainer/AppData/ if you want to remove a dir in Linux . These commands and many others has to stay close as you are using linux everywhere now !
5. Dozzle is a real-time log viewer for docker containers. At one place , even though you can use Portainer logs as well .
6. FOR Media Center you gotta search the following :
How to bind docker folders to local host H.d or a remote Hard drive ! and how to use the same Folders with different Docker Containers (This is very important)
a- Jacket to get the Indexers and link them to Sonar and Raddar
b- Sonar and Radarr for Movies and TV shows choices , they get the
downloads running by linking them both to Qtorrent app
c- Qtorrent to download torrents your choose in Sonarr and radarrd- Bazarr
to get subtitles for what you downloaded , and it has to get linked to
Sonarr and Radarr !
d- Finally Plex to watch all your downloads and watch on your smart TV! For
the Media Center, I recommend this Playlist
https://youtube.com/playlist?list=PLr9j0qoPYDKRO90QcEJrOuDVMOAkbgr0h
7.Remotly to control or your Network ! works great for me as you can specify the server IP from the client side as Mechcentral does not work well In the same LAN with different Subnets ! so many other options I tested but they mostly need WAN – and MY whole setup is LOCAL ! 8.Next cloud for backingUp my files! with Photoprism synced to nextcloud for manging my photos and Videos Timeline with face recognition, even though Nextcloud has got an app recently called "Memories" it was cool too. I was looking for a combination like google photos and d drive but free and unlimited in a way! 9.Syncthing to sync Media folder to another Ubuntu machine that runs Casa OS as a dashboard.
3. BACK UP my data:
as I mentioned that I use Proxmox backup server to back up my VM regularly.
4. Next Steps :-
install a VPN- to make my server public so I can reach It from everywhere !
4. Conclusion for an Article:
Why Go Self-Hosted? You own and control everything !
Are you looking for the ultimate Guide for home labs?
Come here my Friend, I am also a month old into selfhosting rabbit hole, and I am not regretting my time at all as I learned a lot !
I will try to discuss what I run through and give the headers for you to start your own selfhosted Home lab server from my personal decent Experience(jump straight to headers at "2. Where to start ? Main home lab starter headers for you" if you just want to start your home lab already !)
I will divide my article into different points from the moment I started Tickling with the topic of selfhosting, So Here We Go!
My Background: I am a Telecom Engineer, and I work as a CEO of a local ISP company .
1. Difficulties:
We know learning a new thing is going to be complicated no matter what.
**a. Linux Sys:
I faced a lot of troubles in my journey specially with Linux sys, and trust me it is whole new world to me as I am a windows user .So if you are totally new to Centos, Debian , Ubuntu sys , My Advice is to start with small labs and watch YouTube Videos about Linux distros ,just get a general knowledge , It took me 6 crashed labs to understand how does file sys work in Linux sys ! and I suggest using Case OS !
**b. Network knowledge :**
Gladly I am pretty good with Networking as I work with a lot of routers and routing protocols,so if you are totally new to tech I advise you to get at least small understanding of what local network Ips and what are the services ports and TCP , UDP protocols , just get a small understanding , as you will need it when you start working with labs .
**c. what was the best choice for a home lab ?**
This totally Depends on what you need, for me I just wanted to run , and I think most of us are , So it does not matter how you did it , what matter is how do you like doing , Man this selfhosting world has so many ways and all of them get you running , you find the easiest route for you to reach your goal , do not complicate things , You may find two people doing the same thing with totally different approach |!My advice to you as a beginner, search " This method Vs This method " then choose one of them and try it , even if you do not know what is going on , just trust the code and follow the steps , you will enjoy when you get your project working , if you fail try again ! and if you are happy try the other method ! no one stops you , it is free and normal , sometimes I find myself installing the same app twice with different routes just to understand what and how is it done ! trust me the more doings will help you in future !
**d. Hardware :**
This is totally up to what have you got , You can start the testing process with whatever until you know what is the best practice for you ! You use an old laptop , pc or raspberry pi .
1.I run Xsynology on BareMetal on an old Toshiba laptop with INTEL Celeron J4125 for a month now .
2.I run a proxmox 7 on hp desktp 4 x Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz (1 Socket) with 12 G of RAM which you can see the picture of its NetData reading attached . 3. I run Proxmox 7 on HP server 32 x Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz (2 Sockets) but this is used for Production for services like databases , webservers , Pbx ! not as home lab usage ! (This is really not needed for a newbie home lab)
**e. Docker vs LXD vs Proxmox Vs what not !**
this is the beauty of self-hosting, as I said, it is your home server , for a started You do not need to optimize it , you do not need to make the best out of it ! there is no Ultimate Guide and there is no the best way to do it , just chose the way that suits you !For me I started with Ubuntu server on bare metal , and used LXD with LXDware dashboard , it was resource efficient , I followed this guide and his other Videos on how to install , you can start here ..https://youtu.be/Q5J9N67z_SMThen I shifted to Proxmox 7 with Ubuntu VM , Maybe because I was used to it from work,I actually tried LXC on proxmox too !but I got back to Ubuntu VM on proxmox with Dockers on it .my Advice to to run docker and try to understand How to read docker compose and it is main structure even in your own language . and to implement them to your server !
**F. Power :**
For where I live , power bills are not an issue really , but the issue was to find a machine that can stay up 24 hours with less consumption to maybe power supply it with Inverter and deep cycle battery and you could add Solar panel in the future , I have seen people run raspberry pie with a 8800 AH power bank so if electricity cut off it has to stay Up and running !for me, I prefer an old laptop with core i3 or core I5 processor for a small home lab , sadly I actually used a desktop computer and I will later look forward how to keep it up 24 /24 !
G. Do not worry :
If You are new, Do not worry about backup / power/ OS/ .Get the things you want and like to work first at least for a week ! Get familiar with services and systems ...Honestly I have never failed to find a solution to any problem I face ...or an idea or app that was already made or asked before either in Reddit or GitHub. man human brains s are amazing ...and trust me You are not the first one in the line ha-ha!So set down, set a goal Start following tutorials and the work done, Then look for the Optimum! I honestly wasted a lot of time thinking what machine should I use and what software or OS I should use, instead of getting to work and find what I like and how things are supposed to work .
H. Ask questions when you get stuck to reddit selfhosting or home lab
So many great helpful people ..and Man the ideas , Approaches and the amount of knowledge you will wish to try yourself is so much ..
**I. Set your Goals :**
I put this last because I was lost , I want a Home lab but I do not know where to start or what to do , So many options for a new comer .. so, I chose my Goals as Follow:My objectives for this system are:
· Setup a Google Photos alternative = Photoprism ?
· Must allow for iOS/android auto-backups to the server
· Must allow for face and scene recognition Setup a Dropbox alternative = NextCloud?
· Setup a Dropbox alternative = NextCloud?
· Make the system accessible from outside the home network
· Samba folders would be a plus
· Setup own personal website = WordPress + Cloudflare
· Setup movie server = Plex server?
They are 100 ways to do the Above ! and it is not really a simple Task , but We can start somewhere ! your goals can be the same or less or more , just write them down and search about the fancy things selfhosting offers to you and you will love it !
2. Where to start ?
Main home lab starter headers for you :
If you are still reading this here it means you have a strong desire like me to do or to achieve something, typically requiring determination and hard work. Good luck to you!
Here are the main steps you need to follow :
a. Proxmox with Ubuntu VM as a base sys all the way instead of baremetal , as it is a newbie friendly and setting it up take very less time and They offer a lot of features , What I like the most is to schedule backup the Whole VM as 2 times a week or as you like to another machine with Proxmox backup server and it works like a charm on the other machine if anything wrong happens .. so you avoid the sudden loss!
b. docker with Portainer as for services instead of LXD on BareMetal or Proxmox LXC for each service or casa OS > Here is my experience with Casa Oshttps://www.reddit.com/r/selfhosted.../?utm_source=share&utm_medium=web2x&context=3
.. I find this is the most optimal way for me to run my apps and services and I tried all of the other mentioned ways , and there are 10s more ..
c. Porintaner as a docker manager instead of yackt dashboard, as it they help you with one click docker deployment , and you can use Costume Template links for different services ! just search " Costume Portainer template "
d. Dashboard I will go with Heimdall, I was lazy linking the right apps to the right urls , but I am used to it now , I think it is better looking than using Portnaier Container list to access your services .
e. For APPs / Services:
when you are done installing Proxmox then get a VM running ubuntu or proxmox LXC and installed docker then run Portainer on it, then came the beauty of one click deployment which you will really like !
you can choose custom Templates link from people instead of the default one .
1. Watchtower docker to update your dockers automatically.
2.Netdata to Monitor your live Resources !
3. File Browser to see what is going on your sys files and delete the downloaded files in the wrong paths cause you need to keep all the space for your useful data the Delete or moving files with UI is much easier than command line, as you will face a lot of permission problem with files , that where you need copy the problem and search google !
4. I used Trillium as a Note app, You really need something to keep your notes .. and main os codes, I will give you an example " err mkdir permission denied" error can be solved with command line with these two commands
sudo chmod -R 755 /DATA and sudo chown -R root:root /DATA Or sudo rm -rf /portainer/AppData/ if you want to remove a dir in Linux . These commands and many others has to stay close as you are using linux everywhere now !
5. Dozzle is a real-time log viewer for docker containers. At one place , even though you can use Portainer logs as well .
6. FOR Media Center you gotta search the following :
How to bind docker folders to local host H.d or a remote Hard drive ! and how to use the same Folders with different Docker Containers (This is very important)
a- Jacket to get the Indexers and link them to Sonar and Raddar
b- Sonar and Radarr for Movies and TV shows choices , they get the
downloads running by linking them both to Qtorrent app
c- Qtorrent to download torrents your choose in Sonarr and radarrd- Bazarr
to get subtitles for what you downloaded , and it has to get linked to
Sonarr and Radarr !
d- Finally Plex to watch all your downloads and watch on your smart TV! For
the Media Center, I recommend this Playlist
https://youtube.com/playlist?list=PLr9j0qoPYDKRO90QcEJrOuDVMOAkbgr0h
7.Remotly to control or your Network ! works great for me as you can specify the server IP from the client side as Mechcentral does not work well In the same LAN with different Subnets ! so many other options I tested but they mostly need WAN – and MY whole setup is LOCAL ! 8.Next cloud for backingUp my files! with Photoprism synced to nextcloud for manging my photos and Videos Timeline with face recognition, even though Nextcloud has got an app recently called "Memories" it was cool too. I was looking for a combination like google photos and d drive but free and unlimited in a way! 9.Syncthing to sync Media folder to another Ubuntu machine that runs Casa OS as a dashboard.
3. BACK UP my data:
as I mentioned that I use Proxmox backup server to back up my VM regularly.
4. Next Steps :-
install a VPN- to make my server public so I can reach It from everywhere !
4. Conclusion for an Article:
Why Go Self-Hosted? You own and control everything !
- I hope you found this article useful and helped you build your thoughts as I tried to keep it as Newbie Friendly as Possible as I am one myself and at least helped you Open your perceptions to selfhosting and give you the first push thorough your Super Home lab!It took me a more than 2 hours to write this article of 5 word pages for the first time ever, so people like me can find something to start from . and bot to get lost like I did in this whole new world of selfhosting <3 !
- please share it so more people read it . Help spread the word