I am trying to establish infrastructure I can use to remotely develop my Python project. For now, for testing I am using ProBook G640 with Ubuntu as base for Docker. To connect remotely I use Twingate - it allows me to connect to containers I am running, so it works.
My plan is to switch to low power-mini-form-pc and run everything on Ubuntu Server with Portainer/Docker, later Kubernetes? Not sure about later, it will be at much later stage of my Python project.
My requirements for containers:
Portainer
Webtop to run VSCode to be able to use extensions that allow attaching to Docker containers with development enviroments (code-server does not seem to allow to install extensions for remote development)
Python Development Enviroment that will be running code for number crunching of financial markets.
PostgreSQL - to hold results/data for that number crunching
PgAdmin or something similar
Twingate Connector to be able to access containers from Android phone/tablet. Might look into setting up VPN using Tailscale if I want to complicate my life, but what I like about Twingate is that each device on VPN network can connect to internet independently, not only to home server and to internet from there (fair enough, didn’t do enough research into Twingate alternatives yet)
AdGuard/PiHole to be more successful with blocking unwanted crap that tyrants want me to waste my time on “looking at” (more like locating those damn x buttons for pop ups and so on) and hope it will work with ManifestV3.
Be very silent, it will most likely live somewhere around my head when I will be sleeping.
My internet connection is around 150Mb, so I don’t need to worry about presence of 2.5-5-10-whatever gigabit?
Looking for something around 300$ or pounds if possible, though not really sure how powerful it needs to be.
Why am I not trying to keep using that laptop? a) power consumption b) tried to install ubuntu server on it, but I can connect it to my router only via wifi, and to do that in Ubuntu I need to install linux-firmware package, which i try to do in Ubuntu Server, but that did not allow wifi to work during installation, so assuming this issue will continue after installation. I have seen tutorial on youtube how to install wpa_supplicant package, tried that, didn’t work. And its loud from time to time when fans spin up for few moments.
So, anyone have recommendations? I did watch playlist with small form factor pc’s, I’m just not sure if those cheaper or low-power ones will do the job, or is there something not reviewed on the channel that will do the job? What do I need to look for?
is there a specific reason to not just use the cloud? A tiny Digital Ocean dedicated VPS is like $14/month, prices going up from there based on compute and storage needs
by doing it in the cloud you will negate a lot of these requirements
That’s $140 year… and for that money, you could get a 16G ram HP G3 (mini or just sff), or a dell 5050… run tailscale, run codeserver variant of vscode (access vscode from a chromebook / or bad old laptop / or from other stuff while on the go).
k8s is “maybe complicated” depending on what you’re after is complicated … as much as every k8s environment is the same, the stuff that people run in k8s that provides infrastructure is not the same across k8s environments, … e.g. your storage and network provisioning will be different, either slightly, … or hugely… A good stepping stone is to try running proxmox and ceph, and k3s, so you can deploy your apps in a kubernetes environment, scale them up/down however, and have some kind of storage around to play with, maybe run a few other services (will probably need a few nodes to get this running).
running a server is a lot more than just buying hardware.
The Digital Ocean cloud VPS is always running, no downtime, always reachable, one-click solution that just works with almost zero effort
You could put that same money into bare metal to store in your closet, sure, but then you would need to do a hell of a lot more work to ensure it has the same degree of reliability and configuration that a cloud instance would give you.
I know we all love to buy new gear and bright shiny new server is hard to resist but also gotta evaluate the labor and reliability involved with doing your own home-setup, compared with just paying an industrial-grade data center to do it for you, better. The choice is yours.
Doing it in the cloud would be too expensive considering how big my database will get, then how much compute I will need (which I can solve a bit by switching to Kubernetes and adding my laptop and gaming pc as nodes).
And then there is matter of being able to power down own server and not having to worry about monthly subscription (got some issues with procrastination when it comes to scripting/sitting down to gaming pc, while at work I have times when I sit bored waiting for anything to happen that I can use).
Then there is access to said database, hate to loose it all because I forgot to pay subscription, or was too bpsy to pay subscription because I was too busy at work driving taxi.
And I get extra layer of adblocking becaose why not
Thanks for suggestions, I will look into those two you mentioned.
As for Kubernetes, its just what I am thinking about at the moment. Later on I will either run my project in a lot of containers or, if possible, on gpu’s if I can figure it out. Then just pool my computing “power” together. But I will evaluate how to do that exactly later on, need one server first to get ball rolling on my project (and have potentionally good adblocker as bonus)