Fuck everything, I'll make my own server

Usually, everything is fine and nothing bodes well, as long as someone does not lose access to their confidential and / or business data, because they entrusted their storage to someone else.



You don't need to be an expert in information retrieval to find a bunch of stories about people who have been swept by monstrous corporations professing "don't be evil" principles.



Here are some examples:





How to keep control of your data and tools



It is far from enough to have backups of digital information to own your data. It's also about privacy control . It's about trust . I don’t know about you, but I don’t really trust many services in terms of storing my data (with rare exceptions).



Since this article is about self-hosting, I'm not going to preach (although it's hard to resist) that you need to consider switching from WhatsApp to Signal , from Google Maps to OpenStreetMap , or that you need to stop using Instagram and Facebook . You create a lot of information there, and the owners of these services do not use it in the best way . Well, I did start preaching, sorry.



Note: I haven't completely gotten rid of social media. I use Twitter and LinkedIn. Everything I have on Twitter is public and private, and I don't use the private messaging feature. LinkedIn is used for communication at work, and I will gradually begin to give it up, but it is difficult to quit.



Clarification: I understand that most people are not advanced usersand that not everyone wants to spend time configuring alternatives to the aforementioned services, and create backup strategies like I did. It really does take time (mostly set up) and money. If we take the most important thing from this post, then this is the conclusion that you always need to back up your data (yes, even if they are duplicated in five Google data centers). If serious problems arise, it can take time to adapt to new tools and workflows, but at least you will have backups. Save more often, save early .



What kind of system have I created?



I drew a simple diagram to show how my personal system works approximately. I understand someone would say that my self-hosting is not really self-hosting. I use Vultr * to host my web applications , not the server in my home. Unfortunately, so far the situation does not allow me to implement this.



So here's my diagram. A detailed description will be provided below.





I've divided the diagram into four parts, each part representing a separate physical layout of the data.



The most active part is the yellow one, located in the cloud.



Vultr



I live in Germany, so it was most logical to launch my instances in the Vultr * data center in Frankfurt, because before this center I have the lowest ping.



At the moment, I have six compute instances running in it. The cloud compute instance types are shown in the image below. They are almost identical to DigitalOcean or AWS EC2 products.



Why did I choose Vultr *? He has pretty good tech support here, and I found him even before DigitalOcean was big and popular, and AWS became the leader in the cloud computing market. Regardless, I would not choose AWS even if I had to choose today. I'll leave it as it is.





The breakdown by prices looks like this:



  • 1 x $ 10 / month VPS + 1 x $ 5 / month object storage - Nextcloud
  • 1 x $ 10 / month VPS - Gitea
  • 1 x 5 $ / month VPS - Monica CRM / Kanboard
  • 1 x 5 $ / month VPS - various development tools + analytics ( Plausible )
  • 2 x 10 $ / month VPS - several web projects that my friends and I are running


The total costs me $ 55 a month.



Nextcloud



Nextcloud is the main driving force behind my day-to-day data streams and manipulations. With the addition of applications, it becomes a very powerful all-in-one solution serving as an alternative to the popular FAANG monster products. Once properly configured, the system requires little or no support.



  • Tasks — Todoist Any.do, .
  • Notes — Google Keep. , Evernote OneNote, - , .
  • Calendar — Google Calendar, .
  • Contacts — Google/Samsung Contacts, .


I can also stream music from Nextcloud to my phone using Nextcloud music . Any Ampache or Subsonic compatible application can be used as a client. I chose Power Ampache . However, I don’t listen to much music via streaming. I always have 30-40 GB of MP3 files on my phone, which are replaced from time to time.



All data from Nextcloud is synced to Synology at my home via CloudSync. A big plus is the beautiful dark theme for the graphical web interface:





Gitea



I'm a developer and more than air and coffee I need version control. I chose git, which is fortunate because there are many hosting solutions for it. The choice came down to GitLab or Gitea .



GitLab was too powerful for my needs, so I chose Gitea. It's lightweight, easy to update, and just works. Its interface is clear and easy to understand because the UI is similar to that of GitHub; the people I work with said they didn't notice the difference. On the other hand, if you want to customize it for yourself, it can turn into torment.



Monica CRM / Kanboard



Monica is a personal CRM. Some people find me strange because I use personal CRM. She seems amazing to me. After meeting people, I often write down information about them that I would otherwise have forgotten. Sometimes I take notes on long phone calls if I know the information from the conversation will be useful in the future. Birthdays of colleagues and friends, gift ideas for them and the like - all this is saved in CRM.



I talked about Monica in my post about not ignoring rejection emails , it has another example of how this CRM helps me.



KanboardIs free and open-source Kanban project management software. I use it to manage my side projects, but I also keep track of books I read, do financial planning, keep track of the learning process, etc. Kanboard is written in PHP, is highly customizable, and supports multiple users. Usually, when I start joint projects, I immediately create an account for a person in Gitea and Kanboard.



Development tools and analytics



Plausible is my choice for analytics and I use it on several of my websites. It's lightweight, open-source, and most importantly, it respects your privacy . I wrote a tutorial on how to install it myself on an Ubuntu machine . A bonus is the developers' approach to doing business, which I really like. They have a great blog to read about it.



The development tools I spoke about above are, in fact, a set of scripts that I have accumulated over time. Text encoders / decoders, color pickers, WYSIWYG layout pickers, Swagger editor, etc. If I often use something and it is easy to implement it myself, then I do it.



What's at my house



The desktop PC and NAS are part of my schema, labeled "Home".



The desktop is nothing special. I do not play games or do work that requires high processing power. I have an eighth generation i5 with integrated graphics, 1TB SSD and 16GB of RAM. Ubuntu is used as OS, the latest version of LTS. It is installed on both desktop and laptop.



Everything except OS and applications is synchronized in real time with Synology using Synology Drive Client.



The Synology NAS I am using is the DS220j model. Not the fastest, but, again, suits me. I have two Western Digital Red drives, 2TB each.



Every last weekend of the month, I manually back up all data to Blu-ray discs. And not once, but twice. One copy is sent to a secure storage location in the house, the other ends up in a completely different location.



Backups elsewhere



This is my defense against the situation "everything is broken, burned out or stolen." I am not entirely happy with the physical protection organized at home, so one of the concerns is the possibility of stealing drives and backups. There is nothing I can do about it, except to move to another location, where it would be easier to work on improving physical protection (but I hope not for long).



Other incidents may also occur, such as fires, floods, etc. Of course, this is a little confusing, but I believe that you need to be prepared for any situation, no matter how unlikely it may be.



Laptop and smartphone



When you are on your own, this naturally reflects in the applications you choose for portable devices. Previously, my phone screen was mostly filled with Google apps - Calendar, Keep, Maps, Drive. Then there was Dropbox, Spotify / Deezer. Now everything is different.



I have weaned my phone off Google with / e / and F-Droid. If you choose to take this path, you have to make compromises. Sometimes everything happens without problems, but from time to time it is terribly enraging. For me, the game was worth the candle. I value my freedom and privacy so much that I put up with the glitchy software issues that arise from time to time.



Here is a list of self-hosting applications that I use frequently:



  • OsmAnd ~ - global map view and navigation for offline and online OSM maps
  • Nextcloud Notes - Client application for Nextcloud Notes
  • PowerAmpache - lets you stream music from my cloud
  • PulseMusic is my main music app that I use to listen to the music collection stored on my phone (about 30-40 GB, the list changes from time to time)
  • Nextcloud is a phone sync client and file manager
  • K-9 Mail is an extremely ugly looking email client and at the same time the best Android client in my opinion.


As mentioned above, Ubuntu LTS is installed on the laptop, as well as on the desktop. For partial synchronization with NextCloud, I use the official desktop client . It would take another two thousand words to list the other self-hosting related tools I use as a developer, so I won't go into that for now.



Output



Was it worth the time and effort? Only you can answer this question.



Finding alternatives to commercial cloud products and setting everything up has certainly taken a while. I did not record it so I cannot say how many exactly, but definitely a two-digit number of hours. I would say about 40 hours.



Fortunately, after this step, everything works (mostly) without my intervention. I have a monthly reminder to check for updates and keep the software running on me up to date. I don’t bother with minor updates - I don’t need to fix something that’s not broken.



If I have motivated at least one person to at least think about the possibility of self-hosting, then I will be happy. Email me if you dare to go for it!



All Articles