Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
@TrinityTek@lemmy.world @selfhosted@lemmy.world Everything on your server has a URL, like https://your.server.name.example/c/your_community_name. Unless you want all the official public URLs to everything on your server to have a port number in them (https://your.server.name.example:1234/TrinityTek) you probably want to figure this out before deploying anything.
I suggest using vhosts. You can for example run Lemmy on port 8001 and Mastodon on port 8002 (both should be bound to 127.0.0.1 without HTTPS). Then you get two domain names pointing at the same server. Then you install nginx on your server, as your actual web server, and you configure it so requests for lemmy.trinitytek.com gets proxied to lemmy and mastodon.trinitytek.com gets proxied to mastodon
I found it easiest to get them running on docker. The documentation wasn't FANTASTIC, but it got me there in the end.
Then I have nginx proxy manager running in another docker container, which handles the virtual hosts for me. It's the one actually bound to 80 and 443. Will help you get set up with SSL certs easily, too.
Thanks for the advice. I'm actually very experienced with vhosts, but my understanding was that vhosts are an Apache thing and Nginx uses different terminology. Unfortunately I am still very green when it comes to Nginx. What you described is exactly what I intend to implement though, and I believe my Mastodon install is already configured properly for that to work. It's just the Lemmy Easy Deploy script that tries to bind all traffic on port 443 where I run into problems.
@TrinityTek vhosts also refers to the general concept. In nginx you configure multiple servers with the same listening addresses but different names.
Yes, it's very similar in Apache, but different enough for me to feel a little out of my comfort zone. I appreciate the tips.
Here's what I have for Pleroma.
server {
server_name social.immibis.com; # this is what matches the domain name
root /var/www/social_html; # empty folder
location / {
proxy_pass http://localhost:4000;
}
# this block was from the pleroma documentation, I think. Mastodon and Lemmy might have their own recommendations. Upgrade is to enable proxying websockets. and the rest seems generally sensible for proxying.
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 16m;
ignore_invalid_headers off;
# when you run Certbot it will change this to 443, insert SSL configuration, and set up a redirect on port 80
listen [::]:80;
listen 80;
}
Thank you for sharing your config and advice! I appreciate it. I got it working along with ssl certs installed with certbot and all is well. Cheers!
Hi there! Looks like you linked to a Lemmy community using an URL instead of its name, which doesn't work well for people on different instances. Try fixing it like this: !your_community_name@your.server.name.example
Nice that somebody has already made a bot for this