• 0 Posts
  • 6 Comments
Joined 1 year ago
cake
Cake day: June 9th, 2023

help-circle

  • Adding onto what TheMrDrProf said: basically LetsEncrypt just wants to know you actually control the domain you’re using to get the certificate. With HTTP challenges, your domain has to resolve to a working HTTP server. With DNS challenges, you need API access to your DNS provider so that Certbot can set a temporary record that proves ownership.

    If you’re using NPM to manage your certs, then as TheMrDrProf said as long as the HTTP request from LetsEncrypt can make it to your NPM through the VPS proxy, you should be able to pass the challenge and get a certificate. The IP address of the domain doesn’t really matter as long as the request makes it all the way to the challenge HTTP server, which in this case is NPM.

    In NPM, you should see “Use a DNS challenge” option. If you use that and your DNS Provider is supported (if not, I recommend Cloudflare), then your VPS proxy does not even need to be working in order to renew certificates. This has a few advantages such as being able to shut off unencrypted traffic on port 80 completely.


    1. The certificate and private key need to be on your home server since that’s where the TLS is decrypted.
    2. You should be able to tunnel TLS traffic through WireGuard, so no port forwarding is needed.
    3. You’d probably want to move Nginx Proxy Manager to your home server as an ingress gateway (and you can keep all the config + TLS certificates). Then on your VPS, you would no longer need the complexity and something like HAProxy, vanilla Nginx, or Traefik would suffice. Seems like NPM has an open issue to add support for TLS passthrough, but in my opinion it’s simpler to just have your VPS forward all traffic to one port on your home server.

    For added security, you can make sure the proxy on the VPS only routes traffic for the correct domain using SNI. That way if someone hits your IP randomly, it only goes to your home server if the correct domain name was requested as well.

    What you’re doing makes sense to me. Good luck!


  • An app that’s like Uber or Lyft, but it only calls your friends who have cars and would be willing/able to give you a ride. It shows you how far they are (if they share location with the app) and how long it would take to get you to your destination. Based on the trip distance and current prices, it could also suggest how much you would owe if you wanted to cover their gas.

    I have an inside joke with a friend who lives nearby that if she ever needs a ride she should download an app that’s like Uber but it only calls me. I think if I actually made it, she would actually put it in her rideshare folder and use it instead of forgetting to message me! So yeah if you made it and it was open source I might actually use it haha


  • I made a web app like this long ago! https://how2pizza.com, you could send a link out in advance of an event and then people could suggest types of pizza and vote for all the ones they liked. After all the votes, the organizer would decide how many people per pizza, and the app would tell you what to order.

    The algorithm was designed to balance popular options with the needs of those with dietary restrictions. It recognizes that some folks only have a few menu options they can actually eat, and it guarantees they won’t get stuck with cheese. The way it worked is the “pickiest” people (i.e. those who only voted for one or two types of non-cheese pizza) would be guaranteed a pizza they can eat first. If the individual voted for more than one type, then the more popular option is favored. Cheese was a special case and there was logic to make sure it was only chosen after everyone got a slice of something they specifically wanted.

    We used it a bunch in university for club events and stuff, and it worked great. Hopefully this is helpful and a good inspiration. Be warned about the code quality—the all hasn’t been updated in 8 years old!

    If you’re curious, the main algorithm can be found here: https://github.com/ianonavy/how2pizza/blob/master/how2pizza/pizza/static/main.js