Software: First and foremost: must be unix-like, must be able to communicate in both ways with an open-wrt router firmware distro and the devices on the local network (android, windows, linux, ipadOS systems). Must be very secure, like enterprise-grade or almost like that. Must be free and open-source. Must be somewhat fault-tolerant (so no Arch or gentoo or anything like that, i don’t feel like recompiling the server’s system daily). Must have these in base repos or easily installed in other methods: secure ssh client (like openSSH or such caliber), a software that enables me to securely control and see the gui of the server from android (Rustdesk? or such), (optionally i2p, dnscrypt, vpn clients, not needed if the router has them, just in case of emergency), ip camera management software, high-security intrusion-detection system, https server with css and js support (preferably command-line). Window manager: must support a very easy to use and lightweight tiling window manager (like i3wm) or if not, its installation and configuration needs to be possible and documented.

Hardware: affordable, x86_64 architecture, should be able to handle all of these at the same time, without freezing or overheating (i live in Hungary, so should be able to handle up to 40°C air temperature with stock fans or there should be space for more fans. liquid cooling is no-go).

I have considered these operating systems. Are any of these bad ideas? What you recommend that is not here?

AlmaLinux Alpine Linux Ubuntu Server Rhino Linux (unofficial ubuntu rolling) Debian Testing Void Linux FreeBSD

  • habitualTartare@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    12 days ago

    Virtualization can be nice in that you can tinker and not worry about dependencies. Plus you can have one resource that’s stable on FreeBSD, another that works well on Unix, etc.

    Headless servers can run surveillance stuff via web interfaces or API/app integrations. Plus you can use the GUI via vnc, spice or another service to get to your x11 environment. I find proxmox easier than docker/containers as most of my troubleshooting is there. I’ve got security cameras linked to home assistant and it’s all headless. You could plug a monitor in and pass that to a virtual machine to get the desktop experience.

    Hardware recommendations are going to need more information. Number of users? Number of cameras/tasks the server is expected to do concurrently, will you have media/NAS hosting and if so, how much space and how fast do you want that to be?

    Your use case in the OP for less than 4 users could probably be run on a potato (my potato is bottlenecked by wifi @ 10MBps). 10-15 users streaming media or 20 cameras constantly streaming to a monitor could easily eat up a decent chunk of resources.

    If you’re not exposing anything to the Internet, you probably don’t need an IDS. It’s a lot of effort to reduce false positives/tune it and the benefits are probably not worth it unless this is a business use case. Enterprise IDS/SIEMS used by actual companies is typically not FOSS because it needs that support provided by the vendor.

    • kekmacska@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      12 days ago

      it will be around 5-15 users at the same time (end devices), 5-10 cameras (720p, 25fps, with lightweight motion detection), it will surely host that, and some ids like Snort or Suricata (not actual enterprise software, only something that is open-source and tries to imitate such security), maybe 1-5 static websites. In emergency, it will take the file server, i2p, dnscrypt, vpn hosting as well. And there should be still some resources free, for stability and performance. I have 15-20 mb/s wi-fi, according to ookla speedtests and torrent downloads (i’m living next to a forest). oh and i would like to mitigate ddos attacks, at least with the basic blackholing method (redirecting excess traffic to localhost). However, if i can configure a more reliable method, then i will use that

      • habitualTartare@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        12 days ago

        Based on your description, your exposing something to the Internet. You absolutely should have things virtualized/containers and use a reverse proxy. Use cloudflare for the domain name registration and take advantage of their ddos protection. Keeping everything virtualized/separated would also give an IDS a fighting chance since they’d have to pivot if you bothered to setup firewalls between the devices.

        If you have the space for some used servers, you can find something affordable. Any enterprise server will be loud and electricity costs should be factored.

        If you don’t have the space for a noisy server, an old workstation on the used market can be affordable. Otherwise you can build something yourself using consumer parts. Ryzen 5 (Ryzen will allow you to use ECC RAM which is something you might want) or an i7/Xeon from the previous generation or two should be more than enough. Add 32-64Gb of RAM and a SSD boot drive. I’d probably get HDDs designed for surveillance to save cost and put your file server storage on an SSD separate from the OS. Backups on VMs are stupid easy too which means you’re more likely to bother using and testing them.

        Edit: forgot about GPU. If you’re using as a media server and need transcoding or another reason, an external GPU like the Nvidia p600 m4000 will work. Use this link to figure out what you need (you don’t have to use Plex it’s just a guideline)

        • kekmacska@lemmy.zipOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          12 days ago

          i really need such strong hardware for hosting these basic things? my dream gaming pc isn’t that powerful. This seems very unrealistic, what you mentioned is top-tier hardware

          • habitualTartare@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            12 days ago

            All of those components should be used and a few generations behind to save cost. A used Quadro m4000 is about $100 usd in the US. A used Xeon based office PC all in should be ~$400-600 USD max stateside and you can find whichever drives you need to add. I don’t know what your local economy is like or what you can expect. If you’re able to find a used office PC or and older device, give that a try and see if it works. If you have 15 users all hitting a computer it’s going to take resources. Those resources are going to depend on what they’re doing. If you want enterprise fault tolerance, ECC may be worth the extra cost. If you want to budget it out you can probably get everything you want running on something 4-5 generations behind for around $100 USD + drives cost.

            Consider if you’re going media streaming like a Plex/jellyfin server. It would be kinda similar to playing 15 YouTube videos on your desktop.

            If it’s 15 users with maybe 2-3 hitting it at any one time then you can build cheaper and get decent performance. If you’re just hosting static pages/simple programs with low resource requirements anything post 2010 with 4 cores and 8GB RAM will probably run it fine and work as file storage for cameras.

            • kekmacska@lemmy.zipOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              12 days ago

              any quadro cards are very rare in my country, it is hard to find one, especially on the used market. And around 4-5 users will go on the network at the same time, plus the cameras. 400$ would be too much, but 100$ is pretty good. currently i’m browsing used PCs from 2012-2016 around the 100$ category

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

                In that case, and if you do need a gpu (such as jellyfin, Plex or another reason) look at the GPU transcoding link in my previous comment. You can flash Nvidia consumer cards or price compare with Intel A series GPUs. This means a bit of tinkering but if you need transcoding and cheap Quadros aren’t available to you, it’s an option.

                You can always go for a used PC with integrated graphics like Intel and see if that works for your use case. Follow the recommendation for a big case with lots of space, look at any of the dell Optiplex or similar office PCs. If you have specific applications Google them + minimum or recommended requirements. An SSD as a boot drive is absolutely worth it over an HDD.

                Your camera setup probably won’t need an external graphics card but if it does you can always upgrade later.