101: Self-hosting information for beginners

Self-hosting is managing your own applications and data instead of relying on external services. It offers greater control, privacy, and customization but comes with a steep learning curve. Before diving in, it’s crucial to understand that self-hosting requires technical knowledge and can be time-consuming.

recommendations

  • start with a purpose: Identify what you want to achieve through self-hosting (e.g., privacy, control) to stay motivated.
  • start small and gradually scale: Don’t overwhelm yourself by trying to host everything at once. Don’t get a public server first, start on a local virtual machine, or use a Raspberry Pi/Old computer/…
  • Time: Take your time,
  • Join the Communities: Resources like this forum, subreddits r/selfhosted and r/nextcloud offer support and guidance.
  • Security: Prioritize securing your server
  • Backups: frequently back up your data to prevent loss.

additional Notes

If you are scared of this lengthy list of technologies to learn or simply don’t want to care about all this stuff - use “managed” instances.. depending on your needs you it scales from single user shared instance account to a full-blown installation for a family, club or small company: Nextcloud providers - Nextcloud

There are many great projects simplifying installation and operation of such complex piece of software as Nextcloud take a look before you start from scratch:

conclusion

Self-hosting offers many advantages, empowers you to manage your own data and applications but it comes with responsibilities. Be sure to understand the pros and cons and ensure you have the time and technical aptitude to manage your own system and enjoy taking control of your digital life.
Self-hosting on the other hand means: YOU ARE ON YOUR OWN (but not left alone). Especially if it comes to problems. Make sure you are able and willing to solve these by your own experiences and/or the internet (see above)

required Technical Knowledge

Self-hosting requires technical knowledge.
Be prepared to learn at least basics about ALL following topics:

  • Linux Essentials: Familiarity with the Linux operating system is helpful.
  • Command Line: Basic ability to navigate the command line is necessary for configuration.
  • Backup/Restore (backup)
    is the most important topic. at some time you will experience data_loss so you want to be prepared!
    • see 101: backup what and why (not how)
    • always have proper 3-2-1 Backup to recover from the biggest disaster you can imagine (server breakdown/malware/fire/earthquake/NSA)
    • understand implement and continuously perform tasks to protect your system from software, hardware and human error, including malicious actors
  • Networking routing and firewall basics: Understand how devices connect and communicate on the internet.
  • Server management: add/remove/configure server and applications
    • resource usage (cpu/memory/disk)
    • storage
  • Database: Nextcloud runs on postgresql or MariaDB (Mysql) mariadb
  • Webserver: Nextcloud runs on Apache or Nginx
  • Clients: every device accessing your server has it’s own specifics:
    • Windows/Linux/Mac desktop client desktop-client
    • Android/IOS devices mobile
    • different web browser (Chrome/Firefox/Safari/mobile)
  • Security (security):
    • understand attack vectors and choose protecting measures
    • choose/enforce secure passwords, MFA
    • constantly keep your server up to date
    • monitor for unusual patterns
  • Troubleshooting
12 Likes

Continuing the discussion from How do you self-host Nextcloud?:

What guides for getting started with Nextcloud do you recommend?

Please edit this and add links to any documentation that has helped you.