Simply put, lohost is a way to serve a website to the internet from any local computer where you install the lohost website client. You keep all the files on your local computer and pick the subdomain where the website lives (https://{yourApp}.lohost.io)
No reviews yetBe the first to leave a review for lohost.io
Looks cool! What in the way of security have you implemented? Curious about what makes it distributed exactly? Isn't the service itself centralized in order to create the subdomain?
@puppycodes Thanks for asking!
There is really only the most basic of security implemented to be honest. It checks for things like ../ to try and stop people pulling back out of the URL into the file system. DEFINITELY something that I could make better.
It does rely on a central API to route the request but I see that as more of VPN/secondary DNS. It is decentralized as you can break up the website over as many computers as you like through specifying routing configs. Combining that over multiple computers for secondary backups would then mean there isn't a central computer that is the source of truth for the hosted files.
But I agree, there is the centralized routing portion to the API. I was just trying to describe that aspect to it :) I would be more than happy for anyone to disagree with that
Report
@gdot thank you so much for the explanation and your work! appreciate that your project is open source :)
Report
@gdot I feel like self hosting is getting more and more important these days and in a lot of ways is the future oddly :P
@puppycodes I totally agree with you! This project was really an itch I was trying to scratch in trying to do something in that direction.
I really feel stuff like this needs to be open source. If people get inspired and make something better I'd be more than happy :)
Report
Saying it's distributed or decentralized seems misleading at best. The content is served from a single host. If it goes down, so does the website (am I understanding correctly?). It doesn't appear to be distributed in any way other, all of the data is stored on the users host.
@vezaynk It does rely on a central API to route the request but I see that as more of VPN/secondary DNS.
You can break up and distribute the website over as many computers as you like through specifying routing configs. You can distribute where you host different pieces of content and have them all seen as one individualy application to the user.
Combining that over multiple computers for secondary backups would then mean there isn't a central computer that is the source of truth for the hosted files. It's decentralized in that for the website itself, there is no single computer to take down that particular site.
But I agree, there is the centralized routing portion to the API. I was just trying to describe that aspect to it. I can see why someone would make that argument.
Report
I really wanted to learn more about the distributed and decentralized web hosting environment. I'm working on my client's website of https://karencannon.com/ and strongly believe that it would work more efficiently with the distributed environment.
This was a project I worked on over the Christmas break. It may not come through in the video but this is serving the webite straight from your computer, not backdoor uploading files.
There's no reason this could serve documents or any other file types of a computer.
I would love any thoughts and feedback on it! The code is up on GitHub too in case anyone feels like making ure it's not doing anything funky :)
@indev I can definitely see why you would say that but I would say it horses for courses. ngrok uses tunnels to connect to your computer, this uses websockets to load and serve the requested documents.
The reason for this is that I wanted this to be a distributed solution. You can shard up the different routes across as many computers as you like and the front end will route and patchwork it together at the front end.
Along with that you can run the client over any number of computers and they will act as backups for eachother. So, if you turn off one computer, one of the others will pick up the slack.
I'm not super familar with ngrok, but if it does all that then I guess, beyond the technology, there isn't a massive amount of difference :)
@frexuz haha I program on a windows computer and I'm lazy :) It's a .net 6 solution so anyone who would like to compile it in order to create the linux client is more than welcome to. It's built in such a way that it should work with the different path seperators
lawnmower
lawnmower
lawnmower
lawnmower
SurfChat
lawnmower
lawnmower
lawnmower