I have self hosted immich on Debian on my homelab. I have also setup tailscale to be able to access it outside my home.

Sometime ago, I was able to purchase a domain of my choice from GoDaddy. While I am used to hosting stuff on Linux, I’ve never exposed it for access publicly. I want to do that now.

Is it something I can do within tailscale or do I need to setup something like cloudflare? What should I be searching for to learn and implement? What precautions to take? I would like to keep the tailscale thing too.

PS: I would like to host immich as a subdomain like photos.mydomain.com.

Thanks!

  • shaked_coffee
    link
    fedilink
    English
    arrow-up
    3
    ·
    7 months ago

    Is immich the only service you want to expose? And did you installed it using docker or directly on your system?

      • shaked_coffee
        link
        fedilink
        English
        arrow-up
        3
        ·
        7 months ago

        Then I would suggest you to take a look at Reverse Proxies, which are programs that let you publicly expose different services hosted on the same computer under different (sub)domains.

        The easiest to start with (and also probably the one that better fits your needs) afaik is NGINX Proxy Manager, which can be set up really easily using docker, and you can find plenty of tutorials online (here is one I watched when I was starting to look into docker and selfhosting, it’s a bit old but should still be valid).

        If after having set up that you will to thinker around it a little bit and dive a bit deeper, there’s also Traefik which is pretty cool and also has a lot of materials to learn online.

        I don’t remember if the video I linked mention it or not, but to use a reverse proxy to expose your services on the web you will first need to set up a dynamic dns (probably the easiest way is to use Cloudflare) or to ask your ISP for a static IP, then go into your routers settings and find the Port Forwarding section where you should tell your routers to send all the incoming traffic from ports 80 (HTTP) and 443 (HTTPS) to the local IP of your server. And then you should be ready to use spin up Nginx Proxy Manager or Traefik on your server.

        (idk if I was clear or not but I swear it’s easier that how it seems ahah)