Can I Setup a Self-Hosted Site Accessed By Private Link

I already homelab a number of projects, but I would like to create a source of information (a private blog) that I can make accessible to just family and friends. For their benefit I would like to give them access only to a containerized static blog site in my homelab through a private link that I share just with family and friends. Making each person “log in” with user and password is not realistic for what I want to share in the private blog.

Basically, I would like something like a Google Doc, where I can get a link and only those who have the link can view the document. (Perhaps Google Doc is the best solution here, if it is, let me know.)

I already have Nginx proxy running on the home server so I could proxy to the containerized static site.

  • I have an URL from afraiddns, which I use to vpn into the network since I have a dynamic public address from my ISP. (curiously when I search on duckduckgo for my afraiddns URL nothing comes up, so I don’t know if all of their free URL’s are already hidden from search engines)
  • I don’t want the site easily found through search engines (although nothing too private will be there, I’m not planning to post pictures)
  • I want to give a link (can be long and cryptic) similar to the private links that Google docs gives you to share with those you want to be just viewers of the a document. Perhaps an extended URL that uses my afraiddns URL at the beginning then would end up just at my static site that is containerized.

I want to share personal information, not passwords or accounts or credit card numbers or SS#'s but just personal information like what is shared on a site like CaringBridge or something similar but self-hosted and accessible by a link. Is the best way to use a site like CaringBridge or a Google Doc?

If you use the reverse proxy feature of nginx, you should be able to pass a generated link to your family. It’s something like pass /test /jklkjshdlshfwtjkw or something like this, I don’t the proper setting. But that doesn’t mean the original page will be hidden, just that you are giving people a generated link that links to that page. They might not see the underlying website URI, but if they navigate, idk, home and manage to find the article linked somewhere else on the website,.

Okay, I think that makes sense. I’m not concerned about the people who would receive the link knowing my URL from afraid dns. I guess I was wondering if there was a way to give a private link to a friend or relative that couldn’t be found by just random people on the Internet. I’m not sure how Google Doc links work, but they are able to give out private links to your documents that can’t be found by random people on the Internet, but they have their own Google cloud and dns servers.

I’ve tried to do some searching for my afraid dns URL, but I haven’t been able to get a search result that resolves back to my homelab. Currently, we just have one website running open to the public internet (I can access it when I’m on networks outside of our home network) on top of Python Tornado platform inside a container. I can’t currently do searches for that and find it in any of the search engines so I’m guessing afraid dns must be doing something to keep the URL’s that they issue off of the search engines.

So perhaps, I do what we have done with the other website mentioned above. Put a Hugo static site inside of a container on the homelab. Use Nginx to proxy to the site inside the container based upon the URL that I create for this purpose and call it good enough…

Thanks @ThatGuyB for your help.

If we’re talking DNS, then DNS is public information. I prefer the web engine method. Instead of using, say gitea.example.com, I would prefer example.com/gitea. This was, the domain and reverse proxy stays the same, but the web engine does the redirection. Of course, people can just guess links like /admin, /gitlab, /nextcloud etc.

Simplest way would be to just add a 2 or 3 digit number in front of the pages. Something like example.com/11/gitea, example.com/14/nextcloud, example.com/69/nsfw, example.com/420/blazeit. This way, accessing just example.com/11 will leave potential bots with a 404 message, but people who have your links can just bookmark, or use their browser history to access the page, not needing you to generate weird random long strings like lehwkj314bklj to associate with a certain part of your website.

@ThatGuyB once again you have sparked my interest with this idea, and I was thinking something very similar. We already have our homelab web apps and Nginx reverse proxy organized in the way of example.com/gitea idea, so the idea of letting the webserver do the resolution is a good one, with throwing a random alpha numeric or number before the actual folder that contains the website. Thanks again for your thoughts.

1 Like