My ultimate goal with learning this is I want to self host my own Monero node and eventually maybe even self host emails and after that learn docker as well.

But I am a long, long way from there.

Where do I start with something like this if I have no experience with networking?

Should I just start with learning a VPS? I just don’t like the idea of me not being able to physically control the server because I think one day Monero might be outlawed or something.

But I’ll do whatever I have to to learn.

  • monkeyman512@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    ·
    edit-2
    11 days ago

    First based on everything I have ever heard, don’t host your own email server. If you want to learn it that’s fine, but don’t do it for something you actually rely on. My understanding it’s a constant miserable slog to keep it functioning.

    Second for getting started, get a cheap used computer and install Linux on it. Also be prepared to wipe it and install something different. Docker may be a good place to go next. You can find lots of guides online, there are tones of apps setup to run with docker you can test out. You could also explore virtual machines. Both have the advantage of making it easier to experiment with different things.

    • catloaf@lemm.ee
      link
      fedilink
      English
      arrow-up
      10
      ·
      11 days ago

      Yes. Every other email server will mark you as spam, and every spammer will be trying to use your server to spam others.

      • emon@masto.top
        link
        fedilink
        arrow-up
        3
        arrow-down
        3
        ·
        11 days ago

        @catloaf @monkeyman512 well i might disagree on this.
        I started selfhost a couple of services for private use with a pi2 some time ago, and after gaining experience, I finally selfhost almost everything I need : cloud, photos, backups, website, media streaming etc. Including a mail server, on a low voltage unit.
        Okay the mail server was a bit trickier to setup but works fine now for 3 years. I’m not get spammed or mark as spam, even without static IP.

        • emon@masto.top
          link
          fedilink
          arrow-up
          3
          arrow-down
          1
          ·
          11 days ago

          @catloaf @monkeyman512 If I can give one advice : learn docker first, rent a vps. If you want to move to physical self host it will force you to test how to deploy everything from one host to another which is a critical step after being able to have things just working.
          The mail suite I use is mailcow-dockerized and it’s awesome.

          • jws_shadotak@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            3
            ·
            11 days ago

            I know a VPS is a simple thing in theory but sometimes it’s a lot for a beginner.

            A VPS paired with Docker may also unintentionally expose something not meant for the outside world due to it ignoring iptables and ufw

    • themachine@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      11 days ago

      I constantly hear this but I just want to be the counter argument here.

      Self hosting email is not the impossible tasks that people make it out to be. It is on the more advanced side of things though if you are hosting your primary email that you rely on.

      I’ve been hosting my own email forany years now and have had no issues whatsoever but I also have years of experience and know how email works better than many that have no interest in such.

      I would NOT recommended starting your self hosting journey with email but I will never discourage people from doing it.

      Take your time. Ask questions any time you don’t understand something. Be ready to learn a lot and design a solid plan for disaster recovery.

  • macattack@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    ·
    11 days ago

    One suggestion is to look at getting any useful docker container up and running first to get a feel for it, then pivot towards heavier lifts. Self-hosting emails is going to be a headache as others have said, and monero nodes sounds like it could be a technical as well but that’s admittedly an uneducated guess.

    You can look at the recent selfh.st poll for the most popular docker containers, see if any strike your interest and start there.

  • foggy@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    ·
    11 days ago

    Everyone is gonna learn best differently. There’s no best place to start.

    Id start with solving a problem. For me, this was not wanting to make a backup to transfer my data from my old machine to my new one. So I built a little Ubuntu Server, setup a rudimentary samba share, setup users/groups, and figured out how to access that data from my network.

    Docker is easy, you’ll learn it by mistake. It’ll haunt you like it’s some complicated thing until you realize you’re doing it and it’s literally incredibly straightforward.

    From there, Id maybe say go to WordPress and follow instructions about setting up a WordPress site in a docker container. Oops, you just learned docker.

    Id hold off on hosting email. I mean it’s a noble goal but it’s a fucking headache. But that’s just me! Like I said, everyone’s different.

    Piece of advice, before you go hosting a monero server, dig into cybersecurity. Particularly server hardening. I recommend Hack The Box. There’s tons of platforms, though.

  • PieMePlenty@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    11 days ago

    Install linux somewhere, ssh to it and set up a web sever and an ftp server. Access it locally and then access it from the internet. This should be your first goal. It will make you comfortable with the command line and linux. You can try a montero node then.

    ChatGPT will be able to help with the basic stuff like how to check logs, configs, or what SSH is or how to set it up.

  • cron@feddit.org
    link
    fedilink
    English
    arrow-up
    5
    ·
    11 days ago

    For a start, try hosting something in your own home. A raspberry or an older PC or laptop should be enough.

    My first projects were a print server (so I can print via wifi) and a file server. Try to find something that is useful for you.

    Only start hosting on the internet when you’ve learned the basics and have more experience.

  • TheButtonJustSpins@infosec.pub
    link
    fedilink
    English
    arrow-up
    4
    ·
    11 days ago

    Start with running something in docker. Probably get containous/whoami running, then portainer, then either traefik or caddy.

    Once you’ve got that all working, you can run anything you want easily.

    If you’ve got an old machine lying around, you can use that to start.

  • Saiwal@hub.utsukta.org
    link
    fedilink
    arrow-up
    3
    ·
    11 days ago

    I would suggest to familiarize yourself with basics of networking and linux first, something like freecodecamp has decent tutorials and you would learn a lot from just a few chapters (#[1](https://www.youtube.com/watch?v=qiQR5rTSshw)%2C) and there are also some youtubers who have self hosting tutorials that you can follow along and learn (Jim’s garage is my favorite since i learnt a lot from him and his discord channel is also a helpful place for discussions, questions, etc.). So join such communities and you’ll learn at your pace.


    1. https://www.youtube.com/watch?v=qiQR5rTSshw)%2C ↩︎

  • subtext@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 days ago

    I started with the 2020 tutorial from these guys. They’ve updated it a few times through the years so I can’t speak to how good the new version is, but I’m sure it’s probably plenty to get started.

    https://www.smarthomebeginner.com/traefik-v3-docker-compose-guide-2024/

    After I followed this guide, I’ve deviated significantly as I learned and started to do my own thing. It’s a great place to start and learn the basics of containerized applications and once you have that then you can host most things that are dockerized. All I need to do now to start up a new service is pull up the README on Docker Hub (or better yet, if LinuxServer.io has a container that does what I want to do, on their website), figure out what I want to do with the variables and any setup that needs to happen, and then I add it to my .yml and start it up!

    I’ve got it all tracked now on GitHub so I can see what I’ve changed and when and if something were to go wrong I could revert back to a known-good configuration.

  • snekerpimp@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    11 days ago

    If your main goal is a monero node/mining, start with AMD 3000 series processors, 3700x is a good place to start, and build a used system. If it’s just a node, any SoC will work with enough storage. A few months of a VPS could cost the same as buying your own hardware, that and you own the hardware and data instead of some corporation.

    Everything runs in a docker container, so you will probably want to wrap your head around that first thing. Most people start with portainer or dockge for easy docker management and learning with a gui, although learning everything through the command line has its merits as well.

    I would get a raspberry pi or an old NUC and just dive right into figuring out how to run the monero node. I believe the monero project maintains docker images. The monero communities are super helpful and nice, and so are the self hosted communities, if you hit a snag or don’t understand something.

  • brewery@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 days ago

    My experience has taught me not to ‘apt autoremove’ unless im really sure what they are!

    Take it one software at a time. See it’s running fine then move on to another. You’ll often realise something down the line will be helpful so will go back to make changes.

    Keep a running list of software and the ports used.

    With docker, do not automatically do :latest on important software (nginx proxy manager, SSO software, password database, anything you use regularly, etc). I did that and was burned a few times.

    Also that at some point you’ll either mess up or realise it would just be easier and start again with a fresh OS install. Keep copying data (docker compose files and persistent storage) on working software before starting a new one, or before installing anything directly onto the OS, or before major updates.