this post was submitted on 17 Jun 2023
12 points (92.9% liked)

Selfhosted

40137 readers
612 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. 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.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

cross-posted from: https://lemmy.world/post/226995

Hi guys, I am trying to bring a lemmy instance up but I have no idea why it freezes on "building lemmy"

This is what I get: https://i.imgur.com/GjcHPkd.png

and when I check my $ docker images https://i.imgur.com/wIUw54R.png

This is my docker-compose.yml for refenrece:

version: "3.7"

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

networks:
  # communication to web and clients
  lemmyexternalproxy:
  # communication between lemmy services
  lemmyinternal:
    driver: bridge
    internal: true

services:
  proxy:
    image: nginx:1-alpine
    networks:
      - lemmyinternal
      - lemmyexternalproxy
    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
      - "1236:1236"
      - "8536:8536"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro,Z
    restart: always
    depends_on:
      - pictrs
      - lemmy-ui
    logging: *default-logging

  lemmy:
    # image: dessalines/lemmy:dev
    # use this to build your local lemmy server image for development
    # run docker compose up --build
    build:
      context: ../
      dockerfile: docker/Dockerfile
      # args:
      #   RUST_RELEASE_MODE: release
    # this hostname is used in nginx reverse proxy and also for lemmy ui to connect to the backend, do not change
    hostname: lemmy
    networks:
      - lemmyinternal
      - lemmyexternalproxy
    restart: always
    environment:
      - RUST_LOG="warn,lemmy_server=debug,lemmy_api=debug,lemmy_api_common=debug,lemmy_api_crud=debug,lemmy_apub=debug,lemmy_db_schema=debug,lemmy_db_views=debug,lemmy_db_views_actor=debug,lemmy_db_views_moderator=debug,lemmy_routes=debug,lemmy_utils=debug,lemmy_websocket=debug"
      - RUST_BACKTRACE=full
    volumes:
      - ./lemmy.hjson:/config/config.hjson:Z
    depends_on:
      - postgres
      - pictrs
    logging: *default-logging

  lemmy-ui:
    image: dessalines/lemmy-ui:0.17.1
    # use this to build your local lemmy ui image for development
    # run docker compose up --build
    # assuming lemmy-ui is cloned besides lemmy directory
    # build:
    #   context: ../../lemmy-ui
    #   dockerfile: dev.dockerfile
    networks:
      - lemmyinternal
    environment:
      # this needs to match the hostname defined in the lemmy service
      - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8536
      # set the outside hostname here
      - LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:1236
      - LEMMY_HTTPS=false
      - LEMMY_UI_DEBUG=true
    depends_on:
      - lemmy
    restart: always
    logging: *default-logging

  pictrs:
    image: asonix/pictrs:0.4.0-beta.19
    # this needs to match the pictrs url in lemmy.hjson
    hostname: pictrs
    # we can set options to pictrs like this, here we set max. image size and forced format for conversion
    # entrypoint: /sbin/tini -- /usr/local/bin/pict-rs -p /mnt -m 4 --image-format webp
    networks:
      - lemmyinternal
    environment:
      - PICTRS_OPENTELEMETRY_URL=http://otel:4137
      - PICTRS__API_KEY=API_KEY
      - RUST_LOG=debug
      - RUST_BACKTRACE=full
      - 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
    user: 991:991
    volumes:
      - ./volumes/pictrs:/mnt:Z
    restart: always
    logging: *default-logging

  postgres:
    image: postgres:15-alpine
    # this needs to match the database host in lemmy.hson
    # Tune your settings via
    # https://pgtune.leopard.in.ua/#/
    # You can use this technique to add them here
    # https://stackoverflow.com/a/30850095/1655478
    hostname: postgres
    command:
      [
        "postgres",
        "-c",
        "session_preload_libraries=auto_explain",
        "-c",
        "auto_explain.log_min_duration=5ms",
        "-c",
        "auto_explain.log_analyze=true",
        "-c",
        "track_activity_query_size=1048576",
      ]
    networks:
      - lemmyinternal
      # adding the external facing network to allow direct db access for devs
      - lemmyexternalproxy
    ports:
      # use a different port so it doesnt conflict with potential postgres db running on the host
      - "5433:5432"
    environment:
      - POSTGRES_USER=lemmy
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=lemmy
    volumes:
      - ./volumes/postgres:/var/lib/postgresql/data:Z
    restart: always
    logging: *default-logging
you are viewing a single comment's thread
view the rest of the comments
[–] death916@lemmy.death916.xyz 3 points 1 year ago (1 children)

I wrote a small guide here. https://lemmy.death916.xyz/post/3068

But suffice to say their docker compose sux and requires some tweaking. I got mine running behind nginx proxy manager on a remote host

[–] ChaosAD@lemmy.world 1 points 1 year ago (1 children)

Thanks! I just tried the docker-compose.yml you shared and I am getting the follwoing error:

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for networks: 'lemmyinternal'
Unsupported config option for services: 'pictrs'
[–] death916@lemmy.death916.xyz 2 points 1 year ago (1 children)

If you're not using arm remove the arm tags. Not sure about the network issue as u should be able to declare networks in compose easily. Id check if some formatting got messed up in copying it over as the yaml is usually whitespace sensitive. Is there more to the pictrs error because that image is pretty basic and jus pulls it doen

[–] ChaosAD@lemmy.world 1 points 1 year ago (1 children)

I added the version line and it did the trick

version: "3.7"

[–] death916@lemmy.death916.xyz 1 points 1 year ago (1 children)
[–] ChaosAD@lemmy.world 1 points 1 year ago (2 children)

are you using nginx? I am trying with caddy (because I already use it with other apps) but I can't access, do you have some idea how I could debug where the issue is?

[–] death916@lemmy.death916.xyz 2 points 1 year ago

https://gist.github.com/Death916/0da841d45923cded1e479427f1cde6e8

this is the nginx conf i used sinc elemmy used nginx for the server in the container. then in nginx proxy manager had to add locations for /pictrs /api /pictrs

/feeds

/nodeinfo

[–] death916@lemmy.death916.xyz 1 points 1 year ago (2 children)

ya i used nginx proxy manager. you have to put some custom locations in and passthrough some headers for reverse proxy to work.

[–] ChaosAD@lemmy.world 1 points 1 year ago (1 children)

I get this error: When I try to access http://localhost:1236

[–] death916@lemmy.death916.xyz 2 points 1 year ago (1 children)

instead of hostnames try and use an ip for everything. if not im not sure sorry

[–] ChaosAD@lemmy.world 1 points 1 year ago

Don't be sorry friend, you are helping and you are awesome for that :)

[–] ChaosAD@lemmy.world 1 points 1 year ago

I gave up to publish it and am trying now just run locally to see what's going on. And still I can't.

I am out of ideas :(