01 / THE IDEA
Why I started.
I wanted a personal server I could learn from: a place to experiment with accessing files, connecting my own devices and understanding how network services fit together. I started small instead of trying to build everything at once.
02 / THE BUILD
From first request to a working prototype.
Learn HTTP and Python
Experimented with simple local services and learned how browsers and clients send requests.
Build file operations
Used FastAPI to develop file upload, listing and deletion routes, then tested the responses.
Connect devices
Experimented with SFTP and SMB to understand file access across my own devices.
Add a dashboard and HTTPS
Developed a dashboard, login flow and a local TLS setup. Network and certificate configuration required additional troubleshooting.
Think about permissions
Started designing clearer boundaries for device access and future AI integrations, with file changes reserved for human control.
03 / HOW IT FITS TOGETHER
A simplified architecture.
Phone · laptop
Authorized access only
Routes · authentication · dashboard
Files · SFTP / SMB · monitoring
This is a conceptual diagram, not a disclosure of my real network configuration. The ORVIAN website is hosted separately and does not connect to Prime Server.
04 / REAL LEARNING
What went wrong—and what I learned.
HTTPS didn't work immediately
Certificates, listening addresses, firewall rules and forwarding all affect connectivity. I learned to test each layer rather than changing everything at once.
Storage needs deliberate organization
File uploads are only one part of the problem. Permissions, backups and restore testing matter just as much.
More features create more responsibility
Every new service introduces configuration and access decisions. Keeping permissions narrow makes the system easier to reason about.
05 / YOUR TURN
Build your first local server.
This beginner exercise uses Python's built-in HTTP server. It runs on your own device only and does not require opening router ports.
- Create a folder
mkdir my-first-server cd my-first-server - Create an HTML file
Save this as
index.htmlin the folder:<!doctype html> <html lang="en"> <head><meta charset="utf-8"><title>My server</title></head> <body><h1>My first server works!</h1></body> </html> - Run the server
python -m http.server 8080 --bind 127.0.0.1Some Linux installations use
python3instead ofpython. - Open your browser
Visit
http://127.0.0.1:8080on the same device. You should see your heading. Press Ctrl+C in the terminal to stop the server.
06 / WHAT'S NEXT
Keep building.
My next documentation goals are to add verified screenshots alongside the concept design, explain the dashboard design, and publish a separate beginner lesson on HTTP requests and FastAPI routes.
Explore beginner lessons ↗Back to projects →