Building My Onion Vanity URL Generator on a Headless VPS — Live, Public, and Transparent 🚀🧅
For the last few days, I have been running a live marathon where I generate custom Tor vanity onion addresses in real time on a headless VPS server — fully public, fully transparent, and with nothing hidden from viewers.
Unlike many private backend systems where people only see the final result, I decided to show the full journey live: the code, the process, the waiting time, the randomness, the server limitations, and the actual mining progress.
Why I Built This
I wanted a simple way to generate custom .onion addresses with a chosen prefix such as:
-
vickykuma...onion -
brand-based prefixes
-
custom identity strings for privacy projects
Instead of building a heavy system, I used Flask because I wanted an MVP that works with minimum overhead. Check it out : https://youtu.be/MkRlffBV1Vk
The core generation engine is powered by mkp224o, a fast vanity onion generator written in C, which I call internally from Python.
That means:
-
Python handles the web interface
-
C handles the heavy cryptographic search
-
Linux handles the process control
-
Docker makes deployment portable
How the System Works ⚙️
My backend does the following:
-
Accepts a desired prefix
-
Starts mkp224o as a subprocess
-
Creates output folders automatically
-
Tracks generated onion results live
-
Shows estimated remaining time
-
Allows secure ZIP download after authentication
The interesting part is that everything runs on a headless VPS.
No monitor.
No GUI.
No physical display.
Still, I stream the full dashboard live using a virtual browser session directly from Linux.
Live Marathon Running on Headless Server 🎥
I am currently streaming the generation marathon live on YouTube.
You can watch the live mining marathon here:
This is not a recorded demo.
It is the actual live VPS process running in real time.
People can watch:
-
countdown timer
-
generated addresses
-
process stopping/starting
-
live prefix attempts
-
server endurance
Why the Timing Is Random ⏳
Many people think if the system says:
1000 hours
then it must take exactly 1000 hours.
That is not true.
Vanity onion generation is probabilistic.
For example:
I started generating vickykuma
Estimated time showed around 1000 hours
But one result appeared within only 20–30 hours
That happens because probability can hit early.
The estimate only means:
around 50% probability by that time
It may happen earlier.
It may happen later.
That is why even longer prefixes sometimes surprise you.
Why I Did Not Choose Full "VickyKumar"
Adding just one extra character increases complexity massively.
For my current VPS period (1 month), generating:
vickykumar
would theoretically take years.
So I selected:
vickykuma
because it still fits practical VPS rental time and just hoping next character would be "r" but in first attempt it came out to be "c" see YouTube Live.
Docker Deployment and Public Access 🐳
The full system is containerized using Docker.
My Docker image is public.
My source code repository is also public.
That means technically anyone can run the same service themselves.
The value I provide is not hiding code.
The value is:
-
VPS setup
-
process running
-
secure delivery
-
monitoring
-
client support
Public Image and Repository Philosophy
I intentionally kept the project public because transparency builds trust.
Anyone can inspect:
-
backend logic
-
authentication
-
ZIP generation flow
-
process handling
I believe showing everything openly increases confidence.
Privacy Policy 🔐
Privacy is the most important part of this service.
When a client requests a custom onion prefix:
-
a dedicated VPS can be used
-
output files remain isolated
-
generated ZIP contains hostname + keys
-
protected by authentication
-
no public download access
The ZIP download endpoint requires:
-
email/password authentication
-
protected access
-
direct secure delivery
Without valid login:
-
no download
-
no process stop
-
no control access
Important Privacy Promise
Generated keys can be delivered directly to the client without unnecessary viewing.
That means the client receives:
-
hostname
-
secret key
-
private key
securely.
Parallel Generation Plan 🔥
Currently one port is active.
The next plan is parallel deployment on multiple ports.
That means:
same Docker image
multiple containers
same prefix target
more probability lanes
This can improve result speed depending on CPU availability.
VPS Limitation Reality 💻
My current server:
-
4 GB RAM
-
live streaming enabled
-
mining running together
If I start too many parallel heavy processes, live stream quality drops.
So balance matters.
Service Offer — Limited Sale Running Now 💸
Right now the service is available at:
https://24x7stream.pythonanywhere.com/product/29/
Only ₹99 per month
This is a limited sale price.
The public code remains free, but if someone wants:
-
ready VPS setup
-
hosted generation
-
monitored execution
-
client delivery
then I handle the deployment.
Ideal For
-
privacy projects
-
custom Tor branding
-
researchers
-
hidden service creators
-
personal onion identity
Final Thought 🌐
This project is not only about generating an onion address.
It is about showing real infrastructure openly.
No fake screenshots.
No hidden backend.
No hidden process.
Just live systems, real code, and visible results.
And if you want, you can literally watch the marathon while the server keeps searching.
2 Comments
Vicky Kumar
GitHub repo is publicly visible here, you can clone it and run on railway.com in free trial : https://github.com/imvickykumar999/Vanity-Image
BlogForge
Price is not for code, but for VPS server (sale @Rs.99/month) to run parallel containers. Public Docker Image : https://hub.docker.com/r/imvickykumar999/onion-vanity