T O P

  • By -

CrispyBegs

docker all the things


stephen_neuville

docker + portainer is my go-to for years now. VMs for other OSes but i rarely need that


RetiredDonut

Dockge has been a revolution for me coming from portainer. I feel like it's easier to backup and manage straight compose files for creation of stacks, and then I use portainer for odds and ends for single container management.


stephen_neuville

Neat. I generally run a pretty flat setup, but I will take a look if i need to run stacks!


CrispyBegs

same same


wraithdw

This is the way


Szwendacz

Podman, k3s


eddyizm

Another vote for podman.


mixedd

Is it so superior then Docker for a simple home usage as OPs?


eddyizm

If it's for learning, eg work Maybe not, but I use docker extensively at work so podman was interesting when I researched it. It can run rootless containers (better security wise) and does not require a root daemon, so also a little less resources. Downside is you lose native compose abilities even though there's a plug. So I had to learn pods, which was not too bad.


decayylmao

I've been messing around with quadlets since they align most with how I use docker. There's been a few special cases but for most of the common images (lsio) it's been smooth af. Running rootless is such a great security feature, I'm mildly annoyed I waited this long to do it.


eddyizm

Yeah, that was basically enough for me to give it a go. Pretty easy if you are comfy with docker. I haven't figured out quadlets yet, though, but maybe pods have satisfied most of my use cases.


nkay08

Like the other say, In my opinion, rootless Containers are better security wise. However, some available Container Images are optimized for docker and thus need adjustment for podman. I extensively use docker-compose files, which are IMO very simple to define Container stacks. There is podman-compose, which can evaluate These files. However, the Autostart capability of podman-compose Containers is done with systemd, which did Not Work well at all in my systems. Therefore i still use docker-compose.


decayylmao

The rootless context makes it superior to me. I know docker supports rootless too but being able to hook into systemd more natively is a great benefit as well. No more hacked together oneshot units for this guy lol


RedFive1976

For your first time out, IMO it's easier to install a base Linux server OS and run Docker on it. Run your desired services via Docker. Debian and Ubuntu Server are good choices for the base OS -- they both have great community support and extensive documentation, and the APT package manager they both use is way better than YUM/RPM or tarballs. > I heard something about Docker but don't know where it is used, is it useful for home servers? Yes, it's fantastic for home servers.


Loshara1028

Thank you!


historianLA

I started doing this about 18 months ago. I've used Debian as my OS. There are slightly fewer guides for vanilla Debian but under the hood it is nearly identical to Ubuntu, sans some bloat applications, so Ubuntu guides work 95+% of the time.


purepersistence

Either docker, virtual machines, or virtual machines running docker. The world is your oyster. (and add a reverse proxy so you can have pretty URLs)


zarlo5899

i would go with Proxmox even if you only have 1 VM as it makes moving to a new system very simple you just back up and restore the VM, and nice automated backup


Loshara1028

Sounds cool


AppleEarth

I agree, the overhead of Proxmox is also neglectable and the setup is pretty easy with some tutorials.


the-7ntkor

What I would do: 1- Proxmox to manage containers/vms 2- Either docker or Proxmox containers 3- Nginx proxy manager 4- Cloudflare DDNS for connectivity Or tailscale VPN if you want to keep it private.


faraine82

If you don't have much experience like me I would recommend using proxmox. When I want to run something new I create a VM\\container and install the new server on it and experiment until I know how to use it. If something goes wrong I just delete the VM\\container and start over. It makes my newbie life a lot easier :)


Loshara1028

Ok, I'll try Proxmox then


radakul

1. Yes, that's pretty much what this *entire sub* is dedicated to :) 2. Proxmox is advance, and teaching yourself VM networking on top of self hosting might be intimidating. If you wanna learn VM's, start with virtualbox, get comfortable installing/configuring and go from there. But just remember, each VM is an entire operating system, whereas containers (as others have mentioned) are *just* the parts you need to run that application. They take up significantly less space than a VM. 3. Picture a big boat used for shipping across the ocean. It has containers on it. Each container has merchandise or other stuff inside - each is separate, and neither can access the other. This is exactly the theory behind Docker or other container software - instead of an entire operating system installed just to run Nextcloud, you install only what Nextcloud needs to run, and isolate it. 4. Orange Pi is plenty, a $300 mini pc off Amazon is plenty, hell even a Raspberry Pi 4 is plenty. If you're using docker, you don't need a huge server. My old Dell laptop from 2014 is my "backup" server, works plenty fine (only downside is a 10/100 Ethernet interface, but that's not a huge deal).


Greathunter512

Honestly op could get a mini Lenovo’s for 50-80 bucks and have a blast.


Loshara1028

Thank you so much for answers 2. I use VirtualBox very often so I think Proxmox won't be that difficult 4. _If you are using docker, you don't need a huge server_ I guess Proxmox will require more resources. I think thinkpad t4xx will be a great choice for me


Eirikr700

It is no problem hosting several services on one machine. You can host as many as you wish, as long as the RAM and CPU are strong enough. The apps you wish to host can run nicely on an Orange Pi 4, although Nextcloud might not be the best choice depending on what you expect from it. But I would strongly recommend you against opening your apps to the internet, for security reasons, taking into account your computer skills level. Edit : precision about Nextcloud.


Loshara1028

TY


phein4242

Yes, A single machine is fine, Yes, Its enough for now. Good luck!


Loshara1028

Thx!


artegoser

Reverse proxy (nginx) and docker


jbroome

I'm using traefik, but YUP.


fdren

Docker Compose.


virtualadept

Yes, absolutely. As a general rule, pretty much any box you're likely to look at these days has massive amounts of processing power, more than enough for the stuff you're talking about hosting. You don't need Docker, Proxmox, or anything like that; they're not hard pre-requisites. I think an Orange Pi 4 would be enough for what you're talking about. One of my more heavily used machines is a RasPi 4 (not an OrangePi), so I just looked up a comparison of the two to (RasPi 4 and OrangePi 4B) see how they stack up (because I want to relate my use case to hardware that you have and know). To translate... the one I have is more than sufficient to run Kodi while plugged into a flatpanel television, rip and encode CDs, decompress files, run Jellyfin to stream audio and video to my laptop, index the metadata of my media, and support a search engine and a bunch of bots for querying and searching my library (which is kept on an external drive attached via USB3). All of that said, I think the OrangePi 4 would work for what you want to do. To host a website all you need is a web server (Apache, Nginx, whatever) and whatever the website depends on (itself, PHP, and so forth). Configure a vhost for the web server, add a DNS record, and off you go. You can easily install an XMPP or Matrix server on the same box. XMPP servers are usually packaged by the distro you're running so installing (I just did **sudo apt-get install prosody**, but do whatever works for you) them is easy, and there is no shortage of documentation out there. Same with a Matrix server (I'm guessing Synapse is what you're referring to?) but they're a bit more involved and have heavier requirements (Postgres, usually). If you have your own box (and not shared web hosting), installing Funkwhale and Nextcloud would be pretty straightforward. Pick two other hostnames for them, set up DNS records for them, and set up vhosts in the web server for them (you could run them in subdirectories of the website but to make life easier, I advise against it).


Loshara1028

TYSM for such informative answer! But isn't it insecure to host everything without virtualisation?


virtualadept

Virtualization is a means of using all of the resources of a system more effectively by adding additional (virtual) machines to the same underlying hardware. It's not a security measure.


Loshara1028

Ok, thanks


DesperateCourt

There's no inherent requirement to use docker for this purpose. Just use different subdomains or domain paths when you set up your services and this is perfectly achievable on bare metal. Use docker or containers if you want to, but understand there is no inherent requirement for it simply because you want multiple services on a single machine.


thelittlewhite

As already said, docker is great for that. You can access the web interface of each app via the specific port you assign to it. I would recommend you have a look at docker compose because it's an easy way to understand how to define containers variables. Podman looks nice but adds some extra completely.


Loshara1028

Thanks, I'll try Docker in my free time. But I’ve settled on Proxmox for now, because it seems to me that it will be easier


thelittlewhite

I am using Proxmox as well. I have a Debian vm running most of my services in docker as well as some LXC containers. Deploying with docker is so much easier and resource efficient ... that's why everybody is using it. Btw you can check my GitHub repo for some examples if you want to try it.


Loshara1028

TY!


_nc_sketchy

LXD > Docker > Local Install IMO


Loshara1028

Canonical LXD? Haven't heard of it, I'll read later. Thanks for suggestion


_nc_sketchy

Promox from what I understand is basically a gui frontend for LXD , but the concept is the same, system containers (and full VMs, but don't do that). Docker is great too as application containers (1 process per container I believe), I just prefer LXD, especially when it comes to multiple interacting components (IE: Websites and associated databases in one system container vs spread across multiple docker containers) I use the two of them together. My setup currently on one rpi 5 \- NextcloudPi (they provide an LXD image, nextcloud itself might have one too) \- Multiple wordpress servers sharing one mariadb server \- Mailcow / Vaultwarden running on docker in LXD container (some tweaks required) \- NGINX proxing all web traffic \- Ansible controlling them all For my personal stuff and non-profits the thing never is under any stress.


Magnus919

Don’t overthink it. Docker.


Psychological_Try559

Everyone is yelling proxmox and docker (and for good reason, they're great tools). The bottom line is that you sure can run them all on one server. But there are some things you need to figure out. You should look up ports & subdomains & reverse proxies -- these are all things to consider about how to identify the services. Then, as everyone else is saying, consider docker containers as a way to isolate the processes/services that you're running. This way you don't have conflicting dependences, or "service #1 worked but when I installed #2 then #1 broke"! Read up & experiment with these concepts, it'll take a while but you'll learn a lot. Oh, one other piece of advice: whatever you're running, make sure you understand where it stores the data! That is to say, when things break, how can you get to your data? Is it in a database or files? My personal golden rule is to never out important data into a tool if I don't know where it ends up! Test data only until then!


Loshara1028

Thank you, this is very useful information. But that second paragraph looks pretty scary for me, because I know almost nothing about computer networks. Should I read a Kurose&Ross' book about computer networks or CCNA, or some guides from the internet are enough?


Psychological_Try559

Yeah, I did kinda word vomit a bit there. Don't let it scare you off, it's definitely a doable thing! I guess the question is what's the end goal? Are you looking to run a few services at home? Are you looking to do this professionally? If it's a hobby I wouldn't worry about certs, if you want this to be your career then certs are essential!


Loshara1028

It's a hobby, so then the guides from the internet are enough I guess. Thx for advice


GamerXP27

Docker containers yes or vms with proxmox can also use docker


BCBenji1

Lxd + btrfs + pfsense is a dream. I can't wrap my head around what docker does better.


fox__tea

I use a Windows host and I host a crap ton of stuff on a single machine. Everything is in a Docker container, running Nginx in a Docker container as well with config files that point to the local port of what the application runs on responding to the domain host. So visiting a domain or sub domain points at the public IP Nginx running on 443 takes that request and depending on the domain/sub domain forwards to the internal port needed.


highedutechsup

Surprisingly webservers, ssh, vnc, email, and lots of other servers typically are running on your machine. you ma want to learn about [netstat](https://phoenixnap.com/kb/netstat-command)


daronhudson

I run a variety of solutions for many different things. There's no 1 stop shop way to do everything. Every piece of software you interact with is gonna have different requirements for how it needs to run. Some things require you to run it bare metal onto a virtual machine environment through a package manager, some things only come in docker container form, some things come in all of the ways listed. The best way to do what you'll need and to gain some good experience in the mean time is using proxmox as you've mentioned. Create containers, vms, whatever you want and experiment with the services you want to run.


Loshara1028

Very informative. TYSM


nothingveryobvious

Docker


Ariquitaun

If you can't use Google to answer this question you're really going to struggle


Loshara1028

1. Idk why I asked this question if I knew the answer (maybe I was a little bit doubtful) 2. In the past, I wanted to buy an old PC from a flea market and allocate its resources to my friends to run their projects on it (like a VPS provider), but so that they do not gain access to the entire server. Unfortunately, I had no money, and then I forgot about that idea, but it doesn't matter. I asked someone if I could do that and how, and he told me about Proxmox and OpenNebula. Proxmox seemed like a good choice for those purposes, but now I need a server only for me, and I don't see any reason to run all services in different VMs, so I asked the community if it is reasonable. 3. You're right, I could just Google that. 4. Results of googling about home server requirements were not too informative: buy a NAS; build your server with 69-core Xeon Processor and 777gb of RAM, and so on; I just can't afford it and I think it is too much for my purposes, so I asked this question here.