I’m trying to set up my own Lemmy server with Docker. I think I have everything set up, but I’m getting an error Cannot autolaunch D-Bus without X11 $DISPLAY. This error kind of makes sense, because I’m SSHing into my server and have not forwarded D-Bus connections, so $DISPLAY is undefined. But why does a Lemmy server need a display in the first place? Is this a bug and a display isn’t actually needed? If I set $DISPLAY to whatever, will it still run okay?

25 points

Sounds like something is incorrect in your setup. Nothing Lemmy does requires x11, dbus, or any display technology.

permalink
report
reply
3 points

Thanks. Do you know what I could have done wrong? I’ve looked through all the config files and there’s nothing about a display in them, unless you count lemmy-ui

permalink
report
parent
reply
4 points

No idea. Sorry.

permalink
report
parent
reply
9 points

what’s your docker-compose.yml look like, and what command are you using to start it?

permalink
report
reply
4 points
*

I’m starting with sudo docker compose up -d and my docker-compose.yml is:

version: "3.7"

x-logging: &default-logging
  driver: "json-file"
  options:
    max-size: "50m"
    max-file: "4"

services:
  proxy:
    container_name: proxy
    image: docker.io/library/nginx
    ports:
      # actual and only port facing any connection from outside
      # Note, change the left number if port 1236 is already in use on your system
      # You could use port 80 if you won't use a reverse proxy
      - "8536:8536"
    volumes:
      - ./nginx_internal.conf:/etc/nginx/nginx.conf:ro,Z
      - ./proxy_params:/etc/nginx/proxy_params:ro,Z
    restart: always
    logging: *default-logging
    depends_on:
      - pictrs
      - lemmy-ui
  lemmy-ui:
    container_name: lemmy-ui
    image: dessalines/lemmy-ui:${LEMMY_VERSION}
    environment:
      - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8536
      - LEMMY_UI_LEMMY_EXTERNAL_HOST=${DOMAIN}
      - LEMMY_UI_HTTPS=true
    volumes:
      - ./volumes/lemmy-ui/extra_themes:/app/extra_themes
    depends_on:
      - lemmy
    restart: always
    logging: *default-logging
  lemmy:
    container_name: lemmy
    image: dessalines/lemmy:${LEMMY_VERSION}
    hostname: lemmy
    restart: always
    logging: *default-logging
    environment:
      - RUST_LOG=warn
    volumes:
      - ./lemmy.hjson:/config/config.hjson:Z
    depends_on:
      - postgres
      - pictrs
  pictrs:
    container_name: pictrs
    image: docker.io/c:0.4.3
    # This needs to match the pictrs url in lemmy.hjson
    hostname: pictrs
    environment:
      - PICTRS__MEDIA__EXTERNAL_VALIDATION=http://pictrs-safety:14051/api/v1/scan/IPADDR
      - 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
      - PICTRS_OPENTELEMETRY_URL=http://otel:4137
      - RUST_LOG=debug
      - RUST_BACKTRACE=full
      - PICTRS__API_KEY=${PICTRS_API_KEY}
      - PICTRS__STORE__TYPE=${PICTRS_STORE_TYPE}
      - PICTRS__STORE__ENDPOINT=${PICTRS_STORE_ENDPOINT}
      - PICTRS__STORE__BUCKET_NAME=${PICTRS_STORE_BUCKET_NAME}
      - PICTRS__STORE__REGION=${PICTRS_STORE_REGION}
      - PICTRS__STORE__USE_PATH_STYLE=${PICTRS_STORE_USE_PATH_STYLE}
      - PICTRS__STORE__ACCESS_KEY=${PICTRS_STORE_ACCESS_KEY}
      - PICTRS__STORE__SECRET_KEY=${PICTRS_STORE_SECRET_KEY}
    volumes:
      - ./volumes/pictrs:/mnt:Z
    user: 991:991
    restart: always
    logging: *default-logging
    deploy:
      resources:
        limits:
          memory: 690m
  postgres:
    container_name: postgres
    image: docker.io/postgres:15-alpine
    hostname: postgres
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - ./volumes/postgres:/var/lib/postgresql/data:Z
      - ./customPostgresql.conf:/etc/postgresql.conf
    restart: always
    command: postgres -c config_file=/etc/postgresql.conf
    logging: *default-logging
  pictrs-safety:
    image: ghcr.io/db0/pictrs-safety:v1.2.2
    hostname: pictrs-safety
    container_name: pictrs-safety
    environment:
    - FEDIVERSE_SAFETY_WORKER_AUTH="${PICTRS_SAFETY_WORKER_AUTH}"
    - FEDIVERSE_SAFETY_IMGDIR="/tmp/images"
    - USE_SQLITE=1
    - secret_key="${PICTRS_SECRET_KEY}"
    - SCAN_BYPASS_THRESHOLD=10
    - MISSING_WORKER_THRESHOLD=5
    ports:
      - "14051:14051"
    user: 991:991
    restart: always
    logging: *default-logging
    depends_on:
      - pictrs

I’m following this guide: https://patrickwu.space/2023/11/04/install-lemmy-simplified/. My .env file is:

LEMMY_VERSION=0.19.3
DOMAIN=lemmy.soulism.net
# postgres
POSTGRES_USER=admin
POSTGRES_PASSWORD=**redacted**
POSTGRES_DB=
# pictrs
## keys
PICTRS_API_KEY=stars
### 15 random characters
PICTRS_SAFETY_WORKER_AUTH=p70nkXCN1UEcyN3
### 80 random characters
PICTRS_SECRET_KEY=**redacted**
## storage type; by default is filesystem for object storage please set it to object_storage
PICTRS_STORE_TYPE=filesystem
PICTRS_STORE_ENDPOINT=
PICTRS_STORE_BUCKET_NAME=
PICTRS_STORE_REGION=
PICTRS_STORE_USE_PATH_STYLE=false
PICTRS_STORE_ACCESS_KEY=
PICTRS_STORE_SECRET_KEY=
permalink
report
parent
reply
3 points

The image for the pictrs service is wrong.
No idea what it should be, but it shouldnt be docker.io/c:0.4.3

permalink
report
parent
reply
1 point

Thanks. I get the same error even with pictrs image set to docker.io/asonix/pictrs:0.5.4

permalink
report
parent
reply
7 points

I think there is some info missing. You’re using SSH to access the server where you are running the docker image? Why does your server have X server installed?

I have no experience running Lemmy. It could be the Lemmy instance includes X server to run some kind of GUI? Seems strange.

permalink
report
reply
3 points

My server is running the default ubuntu image from Oracle Cloud. I don’t think it has X server installed.

permalink
report
parent
reply
1 point

What’s the error you’re seeing?

permalink
report
reply
1 point

Cannot autolaunch D-Bus without X11 $DISPLAY

permalink
report
parent
reply
2 points

Ah my bad. Memmy didn’t display the code block in your OP or this post. I see it on the web version.

That error might be less about needing X11 and more about wanting D-Bus. Since D-Bus isn’t running, it’s trying to start it by itself using X11, which also doesn’t work.

Does the error actually make Lemmy quit out?

FWIW I have a sanitised copy of my Lemmy k8s config on Gitlab that might help: https://gitlab.com/conorab/k8s-lemmy

permalink
report
parent
reply
1 point

I haven’t even got Lemmy running yet, I’ll still trying to compose Docker.

permalink
report
parent
reply
6 points

It doesn’t. No idea what you’ve done.

permalink
report
reply

Lemmy Support

!lemmy_support@lemmy.ml

Create post

Support / questions about Lemmy.

Matrix Space: #lemmy-space

Community stats

  • 152

    Monthly active users

  • 1.2K

    Posts

  • 5.6K

    Comments

Community moderators