A tiny computer that runs your website 24/7 from home.
Estimated time: 1-2 hours
A. Install Raspberry Pi OS
⚠️ Step 5 is critical — basically every setting matters or it won't set up correctly.
B. Boot it up
C. Test the connection
ssh username@hostname.local (use the username and hostname from step A5)exit to disconnectIf it doesn't connect, go back to step A and make sure you filled in all the settings correctly.
On your computer (not the Pi):
A. Install Node.js
B. Download file-social
C. Install dependencies
cd then a space, then drag the file-social-m folder into the window, then press Enternpm install and press EnterD. Test it locally
npm run devhttp://localhost:7650This tells file-social where your Pi is and sets up automatic deployment.
Configure once
npm run pi:configurePi username: what you set in Step 1
Pi hostname: something like raspberrypi.local
Port: 8080
This installs software on your Pi, sets up security, and copies your SSH key. Takes about 5 minutes.
This copies everything to your Pi and starts it running.
Deploy
npm run pi:deployTest it:
On your computer, go to: http://raspberrypi.local:8080
(Replace raspberrypi.local with whatever hostname you used)
Right now only your home network can see it. Let's make it visible to everyone.
A. Find your Pi's address
SSH into your Pi: ssh username@raspberrypi.local
Type: hostname -I → write down the first number (e.g., 192.168.1.50)
B. Log into your router
192.168.1.1 in a browser (or try 192.168.0.1)C. Add a rule
Name: file-social
External Port: 8080
Internal IP: (your Pi's 192.168 number)
Internal Port: 8080
Protocol: Both
Test it:
curl v4.ident.me → copy that numberhttp://YOUR-NUMBER:8080Right now people have to type a weird number to visit. Let's give it a real name like yourname.file-social.com
1. Pick a name and sign up
Go here and choose a name.
2. Connect it
Fill out the form:
Domain: yourname.file-social.com
IP Address: (the number from curl v4.ident.me)
Port: 8080
Click "Create Site"
Done!
Go to yourname.file-social.com in any browser. Your stream is live with HTTPS.
Now you can add content to your stream:
Add content
npm run newpublic/data/ if you wantnpm run pi:deployUse a code editor to edit HTML files. Cursor is a good option that includes an AI assistant.
Every time: npm run new → edit → npm run pi:deploy
It costs almost nothing
Uses about 5 watts. That's $2/year in electricity. No monthly hosting bills.
You own everything
Your photos, your posts, your hardware. No company can shut you down or change the rules.
It's fast enough
Even a Pi Zero W can serve a personal website to dozens of people at once. You're not running a business — you're sharing with friends.
Always running, hands-off
Once deployed, your Pi just runs 24/7. No need to keep a laptop on or babysit anything.
Can't connect to Pi?
Try the IP address instead of raspberrypi.local. Find it in your router's admin page (look for "connected devices").
Deploy failed?
Make sure your Pi is on and connected to WiFi. Try pinging it first.
Site stops working randomly?
Your internet provider probably changed your public IP. Run curl v4.ident.me and update it in yxorp.
Still broken? Reach out to me: cyrus@freshman.dev.