kakise

joined 1 year ago
[–] kakise@mlem.a-smol-cat.fr 5 points 1 year ago (1 children)

Yes, the official Reddit app makes me want to puke.

[–] kakise@mlem.a-smol-cat.fr 1 points 1 year ago

undefined> Idk man, if I wanted to write out this comment I can just whip out my phone

And what if you need to give an email to someone, quickly, you give them your phone? Go through the hoops of exchanging contact information? Potentially breaching your peace of mind ?

[–] kakise@mlem.a-smol-cat.fr 1 points 1 year ago* (last edited 1 year ago)

There are no 0.17.4 tags for arm64, but you can use this docker-compose.yml: (you'll need to start the services the first time using docker compose up --build)

version: "3.3"

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

networks:
  # communication between lemmy services
  lemmyinternal:
    driver: bridge
    internal: true
  # communication to npm
  my-main-net: 
    external: true

services:
  proxy:
    image: nginx:1-alpine
    networks:
      - lemmyinternal
      - my-main-net
    hostname: lemmy-proxy
    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
      - "90:80" # This gets proxied via nginx
      - "1236:1236"
      - "8536:8536"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro,Z
    restart: always
    depends_on:
      - pictrs
      - lemmy-ui
    logging: *default-logging

  lemmy:
    # use this to build your local lemmy server image for development
    # run docker compose up --build
    build:
      context: ./lemmy
      dockerfile: ./docker/prod/Dockerfile.arm
#        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
    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:
    #platform: linux/amd64
    #image: dessalines/lemmy-ui:latest
    # 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
      - LEMMY_HTTPS=false
      - LEMMY_UI_DEBUG=true
    depends_on:
      - lemmy
    restart: always
    logging: *default-logging

  pictrs:
    image: asonix/pictrs:0.4.0-rc.3-linux-arm64v8
    # 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.3-alpine3.18
    # 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
    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

Don't forget to change the different options It assumes this folder structure:

  • lemmy from git
  • lemmy-ui from git
  • nginx.conf check docs
  • lemmy.hjson check docs
  • docker-compose.yml the code I pasted