I’d like to have my own server at home sorta like a home AWS.

How to set up one and make it available to anyone over the Internet? What tech specs should I buy (RAM, CPU, # of cores, operating system, etc.)?

How much does it cost to keep one running all the time?

15 points

make it available to anyone

To do what?

permalink
report
reply
4 points

Say: let them use a web app?

permalink
report
parent
reply
13 points
*

You can host most basic web apps off a raspberry pi. You just need to:

  1. connect your device to the internet
  2. start your server application
  3. set up port forwarding on your router to forward the port your application is being hosted on
  4. get a domain name
  5. configure ddns
  6. Maybe get some SSL certs

.

Edit: BearOfaTime brings up a great point. I’m telling you how to do what you asked but you probably shouldn’t. If you do, try to airgap the server from your personal network as best as you can

Edit edit: You know people will let you use their servers for small projects for free right? Check out https://ctrl-c.club/#what or hang out in the LowEndTalk forums and provide quality input and enter some of the giveaways for server space

Although the drawback to ctrl-c club is that you’re not going to get full control of how you install libraries and applications

permalink
report
parent
reply
7 points

That’s a REALLY broad definition.

A web app that does what?

Are you running your own Netflix-ish server? Transaction processing? Cloud storage? Ai chatbot?

Each one has very different requirements, and this is just the first four that came to mind .

AWS has hundreds of buildings filled with millions of servers, so you aren’t going to compete with that, even on a small scale.

But could you run your own little Facebook type thing? For a handful of users, sure. Could you handle the number of users that Facebook actually has in a day? You are looking at buildings filled with Computers, not a single machine’s spec 

permalink
report
parent
reply
35 points

Generally speaking, not a well-advised idea, especially for someone who has to ask how to do it (truly not being snarky).

I was a cisco instructor in the 90’s, (so teaching networking and security were my bread and butter for a while) and I wouldn’t think of doing this - except… If the only access was via a mesh network client such as Tails/Tailscale, the server was dedicated to just this purpose, it was isolated on its own LAN segment/DMZ with no routing path to my home network segment, the server was not Windows, but Linux, and I had a robust backup plan, access control plan, and access monitoring with alerts.

There’s just too much risk exposing a port to the world.

permalink
report
parent
reply
2 points

If you’re only accessing the server remotely via Tailscale and no ports are open, is it necessary to have the server on its own isolated VLAN? I like accessing my server locally most of the time and via Tailscale when I’m out and about.

permalink
report
parent
reply
20 points

If you let random people install stuff on your server all you get is assholes install monero miners to gain 1 cent from you wasting 30 dollars in electricity

permalink
report
parent
reply
8 points
*

Install proxmox on a computer with plenty of RAM and CPU and you’ll be able to create VMs which you can give out or rent out to anyone.

In regards to access, ipv4 is not a good idea. Especially not residential IP addresses., You should get ipv6 addresses maybe from a tunnelbroker. But anyways, first you need the server with the hypervisor (which is what you’re looking for) and then you can slowly run tests, learn and eventually figure out networking.

Btw, it might be cheaper to simply rent a server, which would solve the issue of ip addresses. OVH has cheap servers and a proxmox install wizard.

Just please don’t use it for anything sensitive until you can find someone to give a quick check up in regards to security to make sure you haven’t missed anything. Unlike a regular PC, this one is expected to receive inbound connections which has its risks.

But don’t worry about that too much now. Find an old computer or rent a server, install proxmox and start testing, playing around and learning.

Edit: chatgpt is good when wanting to learn this stuff. Especially gpt-4, but even gpt-3.5 will do. Just don’t trust it blindly as it still messes up about 20% of the time. But it’s often better than googling for tutorials since you can’t often find what you’re looking for.

Edit2: the setup I propose will allow you to divide a regular computer into 100s of virtual ones limited only by the total RAM, disk and CPU. If you only want a web server on dedicated hardware get a raspberry pi, because my proposal would be overkill. But it’s the closest to “being your own cloud provider”.

permalink
report
reply
-6 points

That’s a question ChatGPT would excel at… It sounds like it might be a big task for your shoes, but here goes (100% organic reply, mind you):

  • get a Raspberry Pi, install your web app, make sure you can reach it on the LAN
  • forward the port your web-app is running on to the Raspberry Pi: app is now reachable under IP:port from the internet)
  • set up a domain with a provider that supports dyndns, set up a job on the Pi to regularly check in with the dyndns provider and tell it your current WAN IP: app is reachable on your own domain; success

This is leaving out any security measures and you will want to take care of those before opening your home LAN to the world! Have fun learning!

permalink
report
reply
6 points

First of all you need that your ISP actually gives you an IP that points back to your home network. It’s not uncommon that your IP points to some ISP NAT that routes the internet to many houses, making it impossible to expose some device in your network to the internet.

It was my case, then I needed to call them and ask to have an IP that goes directly to my gateway.

After that you can go to your gateway and do port forwarding from the internet to your server in your home. For example, you can forward port 80 from internet to your server private IP on port 80, so when someone browsers your IP it will get whatever page is hosted on your server.

About server tech specs, it depends on what you want to host. I used to host a personal Nextcloud server in a raspberry pi, which is really power efficient and cheap to maintain. Maybe you’ll want a server with higher specs that might draw more power. It’s really up to what you wanna do specifically.

permalink
report
reply
2 points

None of that is needed with cloudflare zero trust + tunneling. You simply install an agent on the machine and configure internal IP:port you want to access the outside in the cloudflare portal, pointing to a domain you own. You can even allow passwords to access internal IPs directly if you want.

permalink
report
parent
reply
2 points

Of course you can use a reverse proxy to expose your apps to the internet.

Here’s another similar solution that you can self host in a cheap cloud VM:

https://github.com/fatedier/frp

permalink
report
parent
reply
1 point
*

That also requires you to manage updates and security on that device… If you want less work not more zero trust cloudflare is a great free solution. I used to use nginx proxy manager which is free as a reverse proxy but again one less machine to worry about. I literally just migrated days ago and I couldn’t be happier.

permalink
report
parent
reply
9 points
*

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

Fewer Letters More Letters
CGNAT Carrier-Grade NAT
DNS Domain Name Service/System
HTTP Hypertext Transfer Protocol, the Web
HTTPS HTTP over SSL
IP Internet Protocol
NAT Network Address Translation
RPi Raspberry Pi brand of SBC
SBC Single-Board Computer
SSH Secure Shell for remote terminal access
SSL Secure Sockets Layer, for transparent encryption
TCP Transmission Control Protocol, most often over IP
VPN Virtual Private Network
nginx Popular HTTP server

12 acronyms in this thread; the most compressed thread commented on today has 5 acronyms.

[Thread #240 for this sub, first seen 25th Oct 2023, 05:25] [FAQ] [Full list] [Contact] [Source code]

permalink
report
reply
2 points

I am a big fan of this not. The worst thing about tech is all the bloody acronyms.

permalink
report
parent
reply

Selfhosted

!selfhosted@lemmy.world

Create post

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

  1. Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

Community stats

  • 4.8K

    Monthly active users

  • 3.6K

    Posts

  • 80K

    Comments