Need a little help for a newbie

JustMarkov@lemmy.ml to Selfhosted@lemmy.world – 28 points –

Hi, everyone! I'm kinda new at self-hosting, so I need a few tips to get started. Is there any guides that you can recommend for the begginer? My goal is to run a vps with self-hosting tools for daily usage, like Jellyfin, Navidrome, Baïkal, proxy-tool, maybe a Gitea instance etc. I have a domain purchased and basic nginx configured, but I'm not sure where I should go next or if I need to take any special steps. Thanks in advance.

11

If you haven't, get yourself familiar with Docker and docker compose, and then use portainer to manage all your stuff. It's a lifesaver.

I'm already a little familiar with Docker, but I'll definetly need to get to know it better. Thanks!

And remember, friends don't let friends use latest. Pin the versions in your manifests and version control everything.

Definitely check DB Tech's videos put on YouTube. He covers a ton of self-hosted apps and how to set them up. You'll have to sift through a bit, not all the apps he talks about are really necessary, but I basically learned self-hosting through his channel.

Look for stuff on authelia, crowdsec or fail2ban with regards security for your server and decide what direction you want to go there.

Christian Lempa's channel is also good, though can be more technically oriented.

EDIT: also, this github repo has an amazing (though overwhelming) list if self-hosted services. Awesome Self-hosted.

Thanks for the advice! I'll definetly look into these channels. Btw, I already know about awesome-selfhosted, but I'll need to spend some more time going through the whole list and picking what suits me best.

Yeah, I hear you there. I usually get overwhelmed by the time I get to the "B" section.

I think (looking back at your post) the most important thing that helped me was learning how to use docker-compose. All of my services are in docker containers and are much more manageable then trying to do a bare metal install.

With that comes the struggle of security though, as docker containers use their own set of firewall rules distinct from the main firewall rules you might have setup on your server. If you end up using docker, do a few searches on how to secure those firewall rules for the containers themselves.

I have definitely benefited from other peoples current set up lists, I'll leave mine here in case it sparks some interesting directions for you.

  • Diun - notification service for when new images are released for any running docker apps I have up.

  • Immich - self-hosted photos backup. Incredible app, its extremely refined and feature complete.

  • Jellyfin (Linuxserver.io image) - personal media streaming service. The Linuxserver.io version was much easier to set up than the stock jellyfin version.

  • Joplin server - self-hosted back end for Joplin notes sync. Much faster and more reliable than the 3rd party sync targets like one drive or Dropbox.

  • Mealie - recipe management.

  • Nextcloud - so many things. Calendar, files, kanban, contacts, etc... Personally I find Nextcloud's documentation hard to follow, so I've linked the video tutorial I used to set mine up.

  • Nginx proxy manager - reverse proxy with basic protections built in. I'm on the fence on suggesting this one and have been considering switching to something else, as it rarely gets updates these days. It is the only one I've been able to wrap my head around though. Zoraxy, Traefic and Swag are all other options. You mentioned having Nginx set up already, so this might not even be an issue for you.

  • Paperless-NGX - document server and archive. All you need is the docker-compose.env and docker-compose.postgres.yml from the linked directory. Tweak the compose and env values as you see fit and remove the "postgres" from the file name before firing it up.

  • Portainer - basically just a GUI for viewing docker services. You can manage docker images and stacks with portainer, but I would recommend just learning the docker-compose method in general.

If you ever run into instructions for setting something up with a regular docker command but want to convert it to a docker-compose.yml file instead, this site is super useful: composerize.com

As an aside you can use Nextcloud’s WebDAV to sync Joplin if you wanted to reduce the number of services running on your server. Not sure how it compares in performance though.

I initially started out with that, it worked fairly well but I did notice a significant speed increase when syncing after getting the Joplin server set up. The downside is having another service publicly exposed though, a more minimal set up does have its benefits.

Here is an alternative Piped link(s):

Nextcloud

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I'm open-source; check me out at GitHub.

Here is an alternative Piped link(s):

this guy's

Piped is a privacy-respecting open-source alternative frontend to YouTube.

I'm open-source; check me out at GitHub.

My process for project identification has been:

  1. Be annoyed at ads/payment structure/whatever in some app or service
  2. Search https://alternativeto.net/ for alternatives to the thing I'm annoyed with (filtering by Open Source and my devices)
  3. Try out 1-2 of the top alternatives
  4. Settle on what service I want to run
  5. Install, route the subdomain, etc. if necessary (otherwise just access via my tailnet)

As for how to deploy, docker / podman are great! With podman I'd recommend looking into their systemd integrations too. Incus is a neat LXC option too, meant more for longer term services (less micro service focused, good and bad).

Hope this helps!