So, while this post is cool, I wish there was less emphasis on the hardware, which is pretty irrelevant for running a Node-base app and serving it to the Internet. You also don't need a static IP—you just need to figure out dynamic DNS :).
So, while this post is cool, I wish there was less emphasis on the hardware, which is pretty irrelevant for running a Node-base app and serving it to the Internet. You also don't need a static IP—you just need to figure out dynamic DNS :).
Sadly Google and DDG are useless now, the last time I wanted to find this story it took a lotttt of time.
https://www.remote.org/frederik/projects/railserver/history....
I think it got relatively lucky with the query, since tried a few variations, you.com and Perplexity and they all failed to find it.
I personally just a regular PC desktop because I need the expansion slots. But SFF PCs are amazing home servers, and have more than enough power for what you actually need.
Also don't forget laptops. They're designed from the group up to be efficient AND have a built in UPS. My home server for the longest time was an old laptop with 32 gigs of ram (back when that was a huge amount).
So I bought a 2018 Dell laptop with a messed-up screen. Now when there is downtime, the laptop stays on, connectivity goes away for a few mins (which doesn't bother me) and everything is resolved fast.
So, I suggest either your desktop+UPS, or a 5yo laptop (just make sure it's 'high-end' - for its age). I then upgrade RAMs & SSD/M2 from Crucial (I like the convenience of their app) so I end up making decent "server laptops" for under €300.
- batteries might not like being constantly charged. You might kill them, hopefully they don't swell. It might be interesting to remove the battery if you can, but then you indeed lose the feature they provide to survive power cuts.
- the disk drives are constantly parking their heads, make sure that the parking policy is ok (won't wear them to fast). Maybe less of an issue with many laptops coming with SSDs.
- some laptops just heat too much and power off too often, especially in summer.
- their hardware might end up dying quite fast.
I think I would still use an old laptop as a home server if I had suitable one, especially since it helps making such a machine useful for a longer time even when they are not quite usable for the web of today anymore (I like the reuse spirit it has), but I've found my rockpro64 (a nice single board computer) way more reliable in this role.
I guess YMMV depending on the laptop models. I can definitely imagine that a solid laptop with its battery removed can work well as a server.
I've never had any laptop die while operating like this. I only replace them when I replace my primary use laptop with something new, demoting my last primary use laptop to the server role.
I’m surprised that the Linux distributions I use don’t do this automatically but I bet it could be configured.
If I'm to believe this bug report [1], KDE actually offers throttling charge, but I suspect the Linux kernel lacks support for this kind of stuff for many laptops, maybe also because sometimes the laptop itself does not support this.
Apparently, one should be able to see these files on a supported laptop:
/sys/class/power_supply/BAT0/charge_control_start_threshold
/sys/class/power_supply/BAT0/charge_start_threshold
/sys/class/power_supply/BAT0/charge_stop_threshold
I don't have them on the HP EliteBook G6 laptop I'm currently using.But thanks for reminding me this. I was considering using an original PinePhone as a Bluetooth receiver. Unfortunately, Wifi and Bluetooth require a battery to be present in this phone and I was a bit concerned leaving it plugged in at all times. I'll need to check if the kernel the hardware and support this. Still a bit concerned that the battery will be wearing out fast, I'm afraid Bluetooth will be using the battery power even if the phone is plugged, which is a bummer.
Would be interesting to know which chipsets support it.
Does a computer with charging throttle like described draw power from battery too, or does it use the power from the plug directly?
A battery level check every five minutes should be more than enough, not a big draw from the battery for a laptop.
Frame.work laptops have a firmware setting to stop charging at 90%, to extend battery life.
I'm curious if we'll see 16GB and 32GB RAM options to make it easier to run models like Mixtral 8x7b?
The Ryzen 7840 stuff is great but even a 5800 would be fantastic. They have been getting quite cheap lately.
If you know of such a product I’m very interested. It’d make a great base for a router.
There are plenty of x86 dual and quad cores around 100-150 "dollars". They are just as bad as the new Pi. Better spend a bit more and get a much better product.
It's been running for over 6 years I think. It's only noisy for a couple minutes when starting up, then it's pretty quiet.
It was not powerful nor did it have tons of memory or storage. But it was mine to do with as I pleased. I ran IRC bots and a web server hosting shitty Perl scripts I wrote. It was also the router (via dial-up) for the house once I got a network card for it.
I learned so much messing around on that machine. I credit my ability to exit vim to working on that machine.
I get the same kind of joy today when I build my own Linux distros. First boot always brings a smile to my face :)
If you were lucky you'd be able to escape a bad config. Messing with X11 is what taught me to use a serial console since I could connect from another machine (before I had a network) to kill the errant X server.
I bought so many damn O'Reilly books trying to master my little home Unix machine.
I learned so much and appreciate having that knowledge but I do not miss the process of learning it at all. No StackOverflow, just assholes on IRC dismissively saying "RTFM" despite the manual being terrible or non-existent. That was unless of course you were being berated for calling it X Windows because assholes have to asshole.
That would be transparent for me as a subscriber, though? I imagine the packets are routed to my cable modem based on some other identified like a MAC?
https://tailscale.com/blog/how-nat-traversal-works#concernin...
How could I reliably tell if I'm behind a CGNAT or not? If I poll one of those "what is my IP" websites, and the IP my router has assigned from the wan matches the what is my IP then I'm fine, I'm not behind one, right?
And if you can access the services using a dydns kind of thing, then you're safe, you're not behind a CGNAT as well. Only catch where you could be wrong is if you try to access from the same CGNAT network (is this how you call it?) But since the dydns is probably swing your wide internet IP that should still not work?
My layman understanding is that the WAN IP on your router will match the "what is my ip" website, but the problem is that it will also match many other people's routers.
Basically imagine your home router and NAT has been moved into the ISP and is serving thousands of end users as well as you... you can't just configure the ISP's CGNAT to forward port 80 to you alone.
I'm not sure if there is a definitive way to know if you are behind CGNAT, however its definitely the case on all mobile networks.
That's interesting. So the ISP is directing packets at the various customer routers using some other identifier than the WAN IP the router sees? MAC address or something?
HFC (Hybrid Fiber Coaxial) and FttN (Fiber to the Node) are such examples. The rest of them if you don't have a static IP or an internet routable address, use NAT (Network Address Translation) and in some even more exotic environments they use Port Address Translating (PAT), but it's been many years since I've seen PAT in any way at commercial, residential or enterprise setups in ISP space.
But PAT is quite common in the reverse and forward proxy space.
You'll get your public IP, it won't signal whether you are behind CGNAT or not.
Check your WAN, if it's in a private range then you're behind CGNAT, likely going to be 10.0.0.0/8 for most ISP's but all the other private ranges count too. Otherwise it will show a public address that matches your "whats my IP" website.
(With such internet connections you are always classified as a bot/spam with captcha services that don't understand IPv6 btw)
As a customer, you cannot influence the IPs and neither the ports that get routed through, so you have to connect to a server that you host somewhere else, just for the purpose of tunneling the traffic. So the server at home is actually a client that reconnects to the reverse proxy as there's no other way to have the open connection.
I saw a big chance for WebRTC data channels to fix exactly that, but I've given up because Google and Mozilla both put a lot of restrictions in the protocol to make it unfeasible for this use case.
And this kinda applies for most cable internet providers in Europe because RIPE ran out of IPs a long time ago. On one hand we got Daimler blocking a whole /8 subnet, and on the other hand we have ISPs that have less than 16 IPv4s. Doesn't make sense to me how this is handled tbh.
Thankfully, there are some pretty cheap VPS options out there. I actually have my homelab behind some, with the nodes running WireGuard to bypass CGNAT.
There's also a few proxy services mentioned in other comments that basically do the same.
Of course, you can also just run things "in the cloud" because the non-enterprise VPS providers come at many different price points, but at the same time it's also just really nice to put your own devices to a good use and have the data be on your own drives (hopefully with adequate backups)
> always connected to the network
If you speak about smartphones, they are usable because they mostly sleep most of the time and thus can last enough without being plugged to be useful. They are always connected to the network, but also in a very specific way: they are mostly waiting for a specific wake up notification from the network, while most of their hardware is actually sleeping. Being actually always fully on might also hurt their battery.
Their connection is also often unreliable. As you move, their will be disconnections. That's good enough to casually browse the web. It's fine if some page does not load, or loads slowly, occasionally.
But I suspect it's not good enough for serving a website: making this randomly fail might be less than ideal.
Many people also light putting their phones in airplane mode, or turning them off during the night.
Now, maybe we could still figure out something useful from this "always" "connected" network, with some sort of paradigm change, maybe with more asynchronicity.
NT Server was something MSFT could market to enterprise customers for big dollars. It did have meaningful tools for Active Directory and administering a Domain... but if you're a person and not an IT department, it's a safe bet that you'd end up using exactly zero of those tools.
TL;DR: they could have named it Expensive Corporate Seat Licencing Edition.
I feel like perhaps they went through awkward contortions of releasing kid glove versions of MSSQL for a while, too. At least before eventually realizing that mySQL was at least as much an existential threat as Oracle was.
All devices with CPUs can be servers. Your phone, your car...