Andreas

joined 1 year ago
[–] Andreas@feddit.dk 1 points 1 year ago* (last edited 1 year ago) (3 children)

Oh shit, I forgot that your Caddy would be running on a bridge network by default because mine is on the host network where all ports are already exposed to it! (It's generally a bad idea to use the host network, so don't do this if you're only using Caddy with containers on the same network) I edited the Gist to expose 80 and 443 for HTTP/S on that container, the updated file uses the same Github link. Really sorry about that!

[–] Andreas@feddit.dk 1 points 1 year ago (5 children)

Ugh, that one is a problem with indentation because pasting the config into a Lemmy comment destroys the formatting. I uploaded it on Github to preserve the correct indentation.

[–] Andreas@feddit.dk 1 points 1 year ago (7 children)

Yeah, the config file on the documentation sucks. I had to poke through several discussions on /c/selfhosting to find a config that wasn't the extremely minimal one linked in the documentation. Your config.hjson is fine from what I can tell, although I'm not sure why you censored the hostname there as it's supposed to be lemmy.emphisia.nl and not anything confidential.

Honestly, I don't have enough understanding of NGINX to debug its config, so I'll just share my docker-compose.yml for leddit.danmark.party which worked correctly and federated out of the box, with a few adjustments to match your deployment. Note that you'll have to tear down your existing deployment if you want to use this docker-compose.yml because they use the same ports.

I should probably self-host my own pastebin

version: "3.9"
x-logging:
  &default-logging
  options:
    max-size: '10m'
  driver: json-file

services:
  caddy:
    image: caddy:2
    volumes:
      - ./volumes/caddy:/data
      - ./volumes/caddy:/config
    # See Caddy's documentation for customizing this line
    # https://caddyserver.com/docs/quick-starts/reverse-proxy
    command:
      - /bin/sh
      - -c
      - |
        cat <<EOF > /etc/caddy/Caddyfile && caddy run --config /etc/caddy/Caddyfile
        
        {
          debug
        }
        
        (common) {
        	encode gzip
        	header {
        		-Server
        		Strict-Transport-Security "max-age=31536000; include-subdomains;"
        		X-XSS-Protection "1; mode=block"
        		X-Frame-Options "DENY"
        		X-Content-Type-Options nosniff
        		Referrer-Policy no-referrer-when-downgrade
        		X-Robots-Tag "none"
        	}
        }       
        
        # Lemmy instance
        lemmy.emphisia.nl {
          log
          import common
          reverse_proxy http://lemmy-ui:1234 # lemmy-ui
          
          @lemmy {
        		path /api/*
        		path /pictrs/*
        		path /feeds/*
        		path /nodeinfo/*
        		path /.well-known/*
        	}
         
         	@lemmy-hdr {
        		header Accept application/*
        	}
          
          handle @lemmy {
            reverse_proxy http://lemmy:8085 # lemmy
          }
          
          handle @lemmy-hdr {
            reverse_proxy http://lemmy:8085
          }
          
          @lemmy-post {
        		method POST
        	}
        
        	handle @lemmy-post {
        		reverse_proxy http://lemmy:8085
        	}
        }
        EOF
    lemmy:
      image: dessalines/lemmy:0.18.1-rc.9
      ports:
        - 8085:8536
      volumes:
        - ./lemmy.hjson:/config/config.hjson
      depends_on:
        - postgres
        - pictrs
      restart: always
      logging: *default-logging
      
    lemmy-ui:
      image: dessalines/lemmy-ui:0.18.1-rc.9
      ports:
       - 1234:1234
      environment:
        - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8085
        - LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:1236
      depends_on:
        - lemmy
      volumes:
        - ./volumes/lemmy-ui/extra_themes:/app/extra_themes
      restart: always
      logging: *default-logging
   
    postgres:
      image: postgres:15-alpine
      ports:
        - 5432:5432
      environment:
        - POSTGRES_USER=MyPostgresUser
        - POSTGRES_DB=MyPostgresDb
        - POSTGRES_PASSWORD=MyPostgresPassword
      volumes:
        - ./volumes/postgres:/var/lib/postgresql/data
      restart: always
      logging: *default-logging
      
    pictrs:
      image: asonix/pictrs:0.4.0-rc.7
      user: 991:991
      hostname: pictrs
      environment:
        - PICTRS__MEDIA__VIDEO_CODEC=vp9
        - PICTRS__MEDIA__GIF__MAX_WIDTH=256
        - PICTRS__MEDIA__GIF__MAX_HEIGHT=256
        - PICTRS__MEDIA__GIF__MAX_AREA=65536
        - PICTRS__MEDIA__GIF__MAX_FRAME_COUNT=400
      volumes:
        - ./volumes/pictrs:/mnt
      restart: always
      logging: *default-logging
	  
    postfix:
      image: mwader/postfix-relay
      environment:
       - POSTFIX_myhostname=lemmy.emphisia.nl
      restart: "always"
      logging: *default-logging

[–] Andreas@feddit.dk 1 points 1 year ago (9 children)

I don't use NGINX as my proxy server, but it's a bit strange that you would need two configs for this while mine runs perfectly with one config and two open ports (:8536 for Lemmy-BE and :1234 for Lemmy-UI). And why are you using different versions of Lemmy-BE (18.1-rc9) and Lemmy-UI (18.1-rc4)?

If you are using the default docker-compose.yml on the Lemmy repo, that part of the NGINX config uses https:// + the name of the Docker containers. And you always give NGINX the external port (the number on the right side of the colon defined in ports:, like 1234 in 1234:5678). The port on the left is only known to the container the port is defined for.

If it's still broken after you correct the NGINX config, what are your docker-compose.yml and config.hjson like? There's several versions of them floating around and you might have combined incompatible versions with each other.

[–] Andreas@feddit.dk 1 points 1 year ago

Yes, it started from this terminology change at Twitter in 2020. They're the reason that version control systems call the primary branch 'main' instead of 'master' by default, because 'master' comes from the master/slave terminology that is used in electronics hardware design.

There's a comment here saying that master/slave in hardware design is being replaced by primary/secondary because of the software trend, which I think is stupid. Master/slave works much better in that context because the master device controls the slave device. Primary/secondary implies that the slave device is a fallback of the master device.

[–] Andreas@feddit.dk 3 points 1 year ago (1 children)

On 0.18.0, there is only the "Only moderators can post" checkbox which stops regular users from creating new posts, but it doesn't stop them from commenting on posts. I'm looking for a way to prevent both (instead of deleting comments after they have been posted).

[–] Andreas@feddit.dk 6 points 1 year ago

It will continue to work if you're the only user on your Teddit instance. Teddit (and Libreddit, and any of the Reddit alternative frontends) use the Reddit API un-authenticated and after July 1st, they will be rate-limited to 10 requests per minute. The limit is enough for the activity of one logged-out user but it will break the proxy instances that allow many users to combine their traffic under one IP.

[–] Andreas@feddit.dk 6 points 1 year ago (8 children)

It's great that they're going back to traditional, self-hosted forums instead of corporate social media for support and discussions, but damn, I don't miss having to manage hundreds of accounts with unique logins for each forum. I understand that they want more control over forum moderation and the Fediverse's "anyone can post there" system makes it troublesome. It would be great if there was more widespread adoption of decentralized, "one login to access everything" systems.

[–] Andreas@feddit.dk 3 points 1 year ago

USB-A is one-sided, unlike USB-C, so you can't do direct data transfers between two devices with USB-A ports. It's much slower too. Electronic waste is not ideal but it has to happen for a large-scale hardware upgrade. I try to reduce it by recycling my USB-A bricks and cables.

I also cannot understand why, unless you use Apple devices exclusively, you would be happy that one company's series of devices has to use a completely unique charging system from every other device in the world. I don't care if Lightning is better when it's proprietary. If Apple "sticks two fingers up" and doesn't integrate USB-C charging into the iPhone 15, I won't be buying another device from them, because I'm tired of having to carry two different cables around - one USB-C for my laptop, Android phone, power bank, speaker and other devices, and one Lightning charger for nothing else but the damn iPhone.

[–] Andreas@feddit.dk 4 points 1 year ago

Seeing the community get destroyed is hard, but seeing the whole company the community relies on being taken over by someone who doesn't care about is okay?! These unpaid janitors seriously need to re-evaluate their priorities.

[–] Andreas@feddit.dk 2 points 1 year ago (1 children)

First time I heard of migrating from Caddy to Traefik and not the other way around. The usual complaint about Traefik is that it's too complicated to manage all of the moving parts. I have only used Caddy with Dockerized setups though so I don't know what the others are like.

[–] Andreas@feddit.dk 3 points 1 year ago (4 children)

PiHole, Adguard Home and the like can't block ads on smart TVs? Or is it something like the TV refusing to start if it contacts the ad server and doesn't get a response?

view more: ‹ prev next ›