Files
lemmy/docker/docker-compose.yml
Dessalines a5b0475436 Fast history no background (#5873)
* Finishing up post and comment actions

* Adding community_actions.

* instance and person actions

* Fixing person_actions.

* Fixing down migrations

* Adding person_content_combined.

* Search combined.

* Aggregates tables.

* Dont rename old tables

* Fixing some constraints.

* Convert bigints to ints

* Forgot a bigint.

* Rest of i64 -> i32

* Adding actions id columns.

* Fixing connection config.

* Formatting smoosh up.sql

* Use current_date instead of now

* Adding history tables for liked_combined

* Upping wal size

* Fix clippy

* Fixing clippy.

* Fixing i64

* Getting rid of let mut conn

* Adding the history status table.

* Adding published indexes to speed up history.

* Adding comment like history scanning.

* Fixing schema options setup.

* post_read history

* person_post_aggregates / read_comments history

* post_like history

* Fixing conflicts.

* Fixing clippy.

* Use constant batch_size.

* person content combined post and comment history.

* Fixing id scanning.

* post/comment_actions -> saved_combined history

* search history

* Post and comment aggregates -> post / comment history.

* Uncommenting full history building.

* Changing DB_BATCH_SIZE to i64

* Fixing clippy.

* Fix index names.

* Fixing diff check by removing indexes.

* Adding the uplete ignore actions::id columns.

* Fixing merge imports.

* Fixing submodule update

* Try trigger disabling.

* Fix clippy

* Remove history table, do faster bulk inserts. Smoosh first.

Comments about how this fast insert is done is within smoosh comments.

* Adding some timings.

* Fast person content combined history

* Adding search_combined

* Fix person saved combined unique names

* person_liked_combined

* Remove-aggregates

* Fixing up.sql issues

* Re-building schema.rs

* Fixing down migrations.

* Removing history updating.

* Format sql.

* Move postgres logging to customPostgresql.conf

* Try using postgres 16-alpine in CI

* Speeding up add_report_count.

* speed up inbox_combined

* Speeding up remove_post_sort_type_enums

* Fixing post_sort_type

* Speeding up person votes

* Fixing wrong conn.

* Fixing broken migrations

* Remove comment.

* Make sure to re-index table after re-enabling indexes.

* Removing id columns from actions tables.

* Fixing down migrations.

* Using create table as for smoosh migration

* create_table as for person_content_combined.

* Fixing person_content_combined uniques

* create table as for search_combined

* create table as for liked_combined

* create table as for inbox_combined.

* Fixing a few score types.

* Fixing id positions.
2025-07-23 17:43:23 -04:00

104 lines
3.5 KiB
YAML

x-logging: &default-logging
driver: "json-file"
options:
max-size: "50m"
max-file: "4"
services:
proxy:
image: nginx:1-alpine
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: unless-stopped
depends_on:
- pictrs
- lemmy-ui
logging: *default-logging
lemmy:
build:
context: ../
dockerfile: docker/Dockerfile
hostname: lemmy
restart: unless-stopped
environment:
- RUST_LOG=warn,extism=info,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_routes=debug,lemmy_utils=debug,lemmy_websocket=debug
volumes:
- ./lemmy.hjson:/config/config.hjson:Z
- ./plugins:/plugins:Z
depends_on:
- postgres
- pictrs
logging: *default-logging
lemmy-ui:
# use "image" to pull down an already compiled lemmy-ui. make sure to comment out "build".
image: dessalines/lemmy-ui:0.19.12
# 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 # assuming lemmy-ui is cloned besides lemmy directory
# dockerfile: dev.dockerfile
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_UI_HTTPS=false
- LEMMY_UI_DEBUG=true
depends_on:
- lemmy
restart: unless-stopped
logging: *default-logging
init: true
pictrs:
image: asonix/pictrs:0.5.17-pre.9
# 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
environment:
- PICTRS_OPENTELEMETRY_URL=http://otel:4137
- PICTRS__SERVER__API_KEY=my-pictrs-key
- 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: unless-stopped
logging: *default-logging
postgres:
image: pgautoupgrade/pgautoupgrade:16-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 config_file=/etc/postgresql.conf
ports:
# use a different port so it doesn't 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
- ./customPostgresql.conf:/etc/postgresql.conf:Z
restart: unless-stopped
logging: *default-logging