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.
Home internet IPs change randomly, breaking your sites. Install the auto-updater to fix this automatically.
Run this on the machine that is hosting your sites. That may be this device or a different one. SSH into it first if needed.
Your sites will randomly go down when your ISP changes your IP. You'll have to manually update each site.
Install once on each physical server. It automatically updates ALL your sites on that server when the IP changes.
1. After creating your site on yxorp
Sign in and go to any site's details page
2. Copy the installer command
Look for the "Fix Dynamic IP" section with commands for both Linux/Mac and Windows
curl -sSL ...irm ... | iex (run as Admin)3. Run it on your server
Linux/Mac/Pi: Open Terminal (ssh if needed) on the device and paste the command
Windows: Open PowerShell as Administrator and paste
Note: Install on the machine hosting your sites (could be the same device you're on now). One installation per physical machine.
Done!
ALL your sites on this server will auto-update every 5 minutes. They stay online even when your ISP changes your IP.
Linux/Mac/Pi commands:
• View logs: tail -f ~/.yxorp/updater.log
• Uninstall: ~/.yxorp/updater.sh uninstall
Windows commands:
• View logs: Get-Content ~\.yxorp\updater.log -Tail 20
• Uninstall: Unregister-ScheduledTask -TaskName yxorp-updater -Confirm:$false; Remove-Item -Recurse -Force ~\.yxorp
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. Install the auto-updater above to fix this automatically, or SSH into your Pi and run curl v4.ident.me to get the new IP, then update it in yxorp.
Still broken? Reach out to me: cyrus@freshman.dev.