Hi! I want to self host lemmy on my homelab. I have a lot of services installed but only a couple of them are exposed on the internet using subpaths like host.com/plex or host.com/nextcloud.
I want to do the same with lemmy, so host.com/lemmy. Does lemmy support this particular URL configuration? Thank you!
I don’t know if lemmy supports sub-paths, I’ve never seen a lemmy hosted at one though. If it doesn’t nginx definitely supports vhosts. So a single server/vm/container can definitely respond both at my.host.com and lemmy.host.com with appropriate content.
+1 to using a subdomain. You’ll probably have a much better time even if you get a path working.
You might be able to setup a mod_rewrite rule to load a specific file path or other url based on the URL path, but a subdomain would probably be easier/cleaner.
From Apache mod_rewrite docs:
The mod_rewrite module uses a rule-based rewriting engine, based on a PCRE regular-expression parser, to rewrite requested URLs on the fly. By default, mod_rewrite maps a URL to a filesystem path. However, it can also be used to redirect one URL to another URL, or to invoke an internal proxy fetch.
Just remember the old adage about regular expressions: when you use a regular expression to try to solve one problem, you create two problems.
A subdomain would likely be cleaner and easier.
It won’t work well. Other instances make assumptions about paths as it’s standardized. For example they don’t store the full pictrs path, just the ID. It’s assumed the path is /pictrs/image. You would have to set 301 redirects. Other instances may link directly to your root uri when making links back to you. The api requests are also likely going to your root uri.
The front end can do whatever you want. Just change the paths typescript files before you compile as those also use root urls.
I have my instance setup to use a CDN and separate URL for all static content including pictrs. I have a script that modifies the front end while compiling to accomplish this. I use 301 redirects to fix all the assumed paths and requests from other instances.