Do you have any advice or suggestions about it?

  • Hardware (what should be enough for a local PC, or VPS…)
  • Software (OS [Debian, Yunohost, other…], “containerization” (Docker, virtual machines?), dashboard, management, backups, VPN tunneling…)
  • “Utilities” to host (Lemmy, Peertube, Matrix, Mastodon, Actual Budget, Jellyfin, Forgejo, Invidious/Piped, local Pi-Hole, email, dedicated videogame servers like for Minecraft, SearXNG, personal file storage like Drive, AI [in the future, when I can afford a rig that can run a local model decently]…)

I’m aware it’s a lot of stuff to take on, so, do you have any advice on where to start? (how to find a cheap PC to experiment with, if not get a VPS, what to test on it, what “utilities” to try self-hosting first…)

  • hperrin@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    12 days ago

    Setup:

    You’ll need a domain and you’ll need to point the root domain at your public IP with an A record. Then you can set up subdomains for each service with a CNAME record to point to your root domain (use “@“ as the host name).

    From your router, give your server a DHCP reservation to make sure it’s IP address doesn’t change, then forward ports 80 and 443 to your server.

    Software:

    I prefer Kubuntu LTS, cause it’s super stable.

    Docker and Docker Compose for sure.

    NGINX Proxy Manager. Set up your SSL certificates with this, using the DNS option. Use “host” network mode, so it can talk to your services.

    Now you can set up some docker compose stacks with your services. Choose a port range for your services, like 8201, 8202, 8203, etc. Don’t forward ports to your DB. Machines in the same stack can talk to each other without having ports forwarded. Use regular directories for your shares, not Docker volumes.

    Set up the subdomain for each service to point to its port in NPM. The address is just “127.0.0.1”, and the port is whatever you set it up as in the Docker Compose stack.

    Start with Nextcloud using the “Nextcloud” docker hub image. It says it’s for advanced users, but I’ve been using it for years. It’s super easy.

    All of the stuff from linuxserver.io is great, except Nextcloud, cause you can’t run Nextcloud Office with the built in server.

    Next, try Immich. It’s awesome.

    Then Jellyfin, Nephele WebDAV, Wordpress, Home Assistant.

    Oh and RustDesk to access it remotely. You might need to get an HDMI dummy plug to make it work without a monitor. They’re super cheap.

    Oooorrr, you can access it with SSH, but that’s a little more dangerous if you don’t set it up correctly.

    Don’t try Podman, it’s very difficult to get working, and simply won’t work with NPM. Use the official Docker installation method, where you set up their repositories in Kubuntu.

    Every one in a while, go through your docker stacks and update them. Usually that’s just a “docker compose pull” and “docker compose up -d”, but sometimes it needs manual intervention, like with Nextcloud’s upgrade script, “occ”. For that you’ll use “docker compose exec -it”.

    Every once in a while, run “docker system prune -a --volumes” to clean up old stuff.