I mean it's easier to develop new features when you're using a language like PHP. I love Rust but it's going to be laughable at how slow they will move new features out compared to other platforms unless they can get a ton of more developer volunteer support (and way less people know Rust to begin with).
chromozone
Right I forgot the main Lemmy instance is filled with degenerate tankies. Go write more fan fiction about Lenin's (2nd btw) cat since you want to call out usernames so much lmfao
I disagree. Reading content online is inherently different from listening to someone speaking out loud. Internet discourse must be different in order for us to better understand each other. Tone and emotion do not come off well in text posts so we adjust our way of communicating accordingly.
I don't know why I bother though, you clearly have a problem with a large portion of society that has done nothing to harm you. The average person is not out to get you. Your anger at the middle class is exactly what the super rich want.
Does not appear to load at all on Opera GX
The thing I struggled with the most was adapting the provided docker-compose.yml
for my Caddy setup.
I am using caddy-docker-proxy, which I absolutely love but their documentation is not the greatest for matchers.
If anyone else wants a super basic Lemmy instance running on Caddy with their domain on Cloudflare here is a docker-compose.yml
Please make sure you update your lemmy.hjson
hostname
field to match the domain you used in the docker-compose.yml
for the caddy
labels
If you're not using Cloudflare you can replace build: .
(and not use the Dockerfile
I provided below) in the caddy service with image: lucaslorentz/caddy-docker-proxy:ci-alpine
(and remove the caddy.acme_dns
label) and I believe it will fall back to Let'sEncrypt
version: "3.9"
services:
caddy:
container_name: caddy
build: .
depends_on:
- lemmy-ui
- pictrs
ports:
- 80:80
- 443:443
environment:
CADDY_INGRESS_NETWORKS: caddy
networks:
- caddy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/docker/caddy/data:/data
- /opt/docker/caddy/config:/config
labels:
caddy.log.format: console
caddy.acme_dns: cloudflare YOUR_CLOUDFLARE_API_TOKEN
restart: unless-stopped
lemmy:
container_name: lemmy
image: dessalines/lemmy:0.17.3
depends_on:
- postgres
- pictrs
environment:
RUST_LOG: "warn,lemmy_server=info,lemmy_api=info,lemmy_api_common=info,lemmy_api_crud=info,lemmy_apub=info,lemmy_db_schema=info,lemmy_db_views=info,lemmy_db_views_actor=info,lemmy_db_views_moderator=info,lemmy_routes=info,lemmy_utils=info,lemmy_websocket=info"
networks:
- caddy
volumes:
- /opt/docker/lemmy/lemmy.hjson:/config/config.hjson:ro
labels:
caddy: "your.domain.com"
caddy.@lemmy: path_regexp ^/(api|pictrs|feeds|nodeinfo|\.well-known)/.*$
caddy.@post: method POST
caddy.@accept: header Accept application/*
caddy.reverse_proxy_1: "@lemmy {{upstreams 8536}}"
caddy.reverse_proxy_2: "@post {{upstreams 8536}}"
caddy.reverse_proxy_3: "@accept {{upstreams 8536}}"
restart: unless-stopped
lemmy-ui:
container_name: lemmy-ui
image: dessalines/lemmy-ui:0.17.3
depends_on:
- lemmy
environment:
LEMMY_UI_LEMMY_INTERNAL_HOST: lemmy:8536
LEMMY_UI_LEMMY_EXTERNAL_HOST: localhost:1234
LEMMY_HTTPS: true
networks:
- caddy
labels:
caddy: "your.domain.com"
caddy.reverse_proxy: "{{upstreams 1234}}"
restart: unless-stopped
pictrs:
container_name: pictrs
image: asonix/pictrs:0.3.1
environment:
PICTRS__API_KEY: API_KEY
user: 991:991
volumes:
- /opt/docker/pictrs:/mnt
networks:
- caddy
postgres:
container_name: postgres
image: postgres:15-alpine
environment:
POSTGRES_DB: lemmy
POSTGRES_USER: lemmy
POSTGRES_PASSWORD: password
volumes:
- /opt/docker/postgres:/var/lib/postgresql/data
networks:
- caddy
restart: unless-stopped
networks:
caddy:
external: true
Here is the Dockerfile used for the caddy container:
ARG CADDY_VERSION=2.6.4
FROM caddy:${CADDY_VERSION}-builder AS builder
RUN xcaddy build \
--with github.com/lucaslorentz/caddy-docker-proxy/[email protected] \
--with github.com/caddy-dns/cloudflare
FROM caddy:${CADDY_VERSION}-alpine
RUN apk add --no-cache tzdata
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
CMD ["caddy", "docker-proxy"]
I guess right now I have what I'd call 5 separate stacks (in 5 separate docker-compose files):
- Media Stack
- Radarr/Sonarr
- Prowlarr
- Bazarr
- Requestrr
- Overseerr
- Qbittorrent/Sabnzbd
- Tdarr
- Game Stack
- Pterodactyl Panel
- Pterodactyl Wings
- (Several other services supporting Pterodactyl)
- Utility Stack
- Watchtower
- Vaultwarden
- Gatus
- Gitea
- Lemmy Stack
- (... Lemmy and it's associated containers)
- Network Stack
- Caddy
- Cloudflare DDNS
- Cloudflared (Tunnel)
I'm planning on doing some more Home Assistant related stuff as well at some point
If you have Cloudflare you can set up an email alias for incoming email and then create a secondary Gmail address on top of your existing one for outgoing email. If you go to 'Settings > Accounts and Import > Send mail as' and add another email address (not an alias) with the same email as the one you setup on Cloudflare ([email protected]). You will likely need to create a Gmail app password to sign into the email server if you use 2FA.
Once you've created this email Gmail will send you a confirmation email to confirm it's all working. Then you can just enter Google's SMTP server info for Lemmy along with your email you used to login to the SMTP server when you added a new email in Gmail settings (your actual email, not the CF one), and the app password you created.
If done it this way for a few services beyond Lemmy and it's worked well so far. This way you're also using a Gmail account technically so you can hopefully avoid blacklists and spam filters.
Well thankfully it doesn't matter what instance you are on for the most part 😅
I agree, I think we should be pushing for experiences people are already most familiar with first.
Better profiles, followers, better community customization, better embeds, I can keep going on. Yeah, Reddit has a ton of stupid features that nobody asked for but it also has a lot of things that are very good for everyone. Obviously we're still in the early days but they're already running into issues (they are just finishing ripping out all the websockets and chat server stuff, which was one of the big things slowing down instances)