]> Untitled Git - lemmy.git/blobdiff - docker/docker-compose.yml
add enable_federated_downvotes site option
[lemmy.git] / docker / docker-compose.yml
index e33a3ecdcba6420c7da49c22c0d14f44fef95827..3a68ea1310efad58c637db6f970d3f561192d015 100644 (file)
@@ -1,21 +1,18 @@
-version: "3.3"
+version: "3.7"
 
-networks:
-  # communication to web and clients
-  lemmyexternalproxy:
-  # communication between lemmy services
-  lemmyinternal:
-    driver: bridge
-    internal: true
+x-logging: &default-logging
+  driver: "json-file"
+  options:
+    max-size: "50m"
+    max-file: "4"
 
 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:
@@ -24,50 +21,60 @@ services:
     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
+    # use "image" to pull down an already compiled lemmy. make sure to comment out "build".
+    # image: dessalines/lemmy:0.18.1
+    # platform: linux/x86_64 # no arm64 support. uncomment platform if using m1.
+    # use "build" to build your local lemmy server image for development. make sure to comment out "image".
+    # run: docker compose up --build
+
     build:
       context: ../
       dockerfile: docker/Dockerfile
       # args:
       #   RUST_RELEASE_MODE: release
+      #   CARGO_BUILD_FEATURES: default
     # 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
+    ports:
+      # prometheus metrics available at the path /metrics on port 10002 by default
+      # enable prometheus metrics by setting the CARGO_BUILD_FEATURES build arg above to "prometheus-metrics"
+      - "10002:10002"
     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
+    # use "image" to pull down an already compiled lemmy-ui. make sure to comment out "build".
+    image: dessalines/lemmy-ui:0.18.1
+    # platform: linux/x86_64 # no arm64 support. uncomment platform if using m1.
+    # use "build" to build your local lemmy ui image for development. make sure to comment out "image".
+    # run: docker compose up --build
+
     # build:
-    #   context: ../../lemmy-ui
+    #   context: ../../lemmy-ui # assuming lemmy-ui is cloned besides lemmy directory
     #   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_HTTPS=false
       - LEMMY_UI_DEBUG=true
     depends_on:
       - lemmy
     restart: always
+    logging: *default-logging
+    init: true
 
   pictrs:
     image: asonix/pictrs:0.4.0-beta.19
@@ -75,8 +82,6 @@ services:
     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
@@ -91,6 +96,7 @@ services:
     volumes:
       - ./volumes/pictrs:/mnt:Z
     restart: always
+    logging: *default-logging
 
   postgres:
     image: postgres:15-alpine
@@ -112,10 +118,6 @@ services:
         "-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"
@@ -126,3 +128,4 @@ services:
     volumes:
       - ./volumes/postgres:/var/lib/postgresql/data:Z
     restart: always
+    logging: *default-logging