lemmy/docker/federation/docker-compose.yml
Dessalines 55f84dd38a
Fixing proxy images (#4722)
* Adding an image_details table to store image dimensions.

- Adds an image_details table, which stores the height,
  width, and content_type for local and remote images.
- For LocalImages, this information already comes back with
  the upload.
- For RemoteImages, it calls the pictrs details endpoint.
- Fixed some issues with proxying non-image urls.
- Fixes #3328
- Also fixes #4703

* Running sql format.

* Running fmt.

* Don't fetch metadata in background for local API requests.

* Dont export remote_image table to typescript.

* Cleaning up validate.

* Dont proxy url.

* Fixing tests, fixing issue with federated thumbnails.

* Fix tests.

* Updating corepack, fixing issue.

* Refactoring image inserts to use transactions.

* Use select exists again.

* Fixing imports.

* Fix test.

* Removing pointless backgrounded metadata generation version.

* Removing public pictrs details route.

* Fixing clippy.

* Fixing proxy image fetching. Fixes #4703

- This extracts only the proxy image fixes from #4704, leaving off
  thumbnails.

* Fix test.

* Addressing PR comments.

* Address PR comments 2.

---------

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-05-22 10:28:47 +02:00

158 lines
3.9 KiB
YAML

version: "3.7"
x-ui-default: &ui-default
init: true
image: dessalines/lemmy-ui:0.19.3
# assuming lemmy-ui is cloned besides lemmy directory
# build:
# context: ../../../lemmy-ui
# dockerfile: dev.dockerfile
environment:
- LEMMY_UI_HTTPS=false
x-lemmy-default: &lemmy-default
build:
context: ../..
dockerfile: docker/Dockerfile
environment:
- RUST_BACKTRACE=1
- 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"
restart: always
x-postgres-default: &postgres-default
image: postgres:16-alpine
environment:
- POSTGRES_USER=lemmy
- POSTGRES_PASSWORD=password
- POSTGRES_DB=lemmy
restart: always
services:
nginx:
image: nginx:1-alpine
ports:
- "8540:8540"
- "8550:8550"
- "8560:8560"
- "8570:8570"
- "8580:8580"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:Z
restart: always
depends_on:
- pictrs
- lemmy-alpha-ui
- lemmy-beta-ui
- lemmy-gamma-ui
- lemmy-delta-ui
- lemmy-epsilon-ui
pictrs:
restart: always
image: asonix/pictrs:0.5.13
user: 991:991
volumes:
- ./volumes/pictrs_alpha:/mnt:Z
lemmy-alpha-ui:
<<: *ui-default
environment:
- LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-alpha:8541
- LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8541
depends_on:
- lemmy-alpha
lemmy-alpha:
<<: *lemmy-default
volumes:
- ./lemmy_alpha.hjson:/config/config.hjson:Z
depends_on:
- postgres_alpha
ports:
- "8541:8541"
postgres_alpha:
<<: *postgres-default
volumes:
- ./volumes/postgres_alpha:/var/lib/postgresql/data:Z
lemmy-beta-ui:
<<: *ui-default
environment:
- LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-beta:8551
- LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8551
depends_on:
- lemmy-beta
lemmy-beta:
<<: *lemmy-default
volumes:
- ./lemmy_beta.hjson:/config/config.hjson:Z
depends_on:
- postgres_beta
ports:
- "8551:8551"
postgres_beta:
<<: *postgres-default
volumes:
- ./volumes/postgres_beta:/var/lib/postgresql/data:Z
lemmy-gamma-ui:
<<: *ui-default
environment:
- LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-gamma:8561
- LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8561
depends_on:
- lemmy-gamma
lemmy-gamma:
<<: *lemmy-default
volumes:
- ./lemmy_gamma.hjson:/config/config.hjson:Z
depends_on:
- postgres_gamma
ports:
- "8561:8561"
postgres_gamma:
<<: *postgres-default
volumes:
- ./volumes/postgres_gamma:/var/lib/postgresql/data:Z
# An instance with only an allowlist for beta
lemmy-delta-ui:
<<: *ui-default
environment:
- LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-delta:8571
- LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8571
depends_on:
- lemmy-delta
lemmy-delta:
<<: *lemmy-default
volumes:
- ./lemmy_delta.hjson:/config/config.hjson:Z
depends_on:
- postgres_delta
ports:
- "8571:8571"
postgres_delta:
<<: *postgres-default
volumes:
- ./volumes/postgres_delta:/var/lib/postgresql/data:Z
# An instance who has a blocklist, with lemmy-alpha blocked
lemmy-epsilon-ui:
<<: *ui-default
environment:
- LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-epsilon:8581
- LEMMY_UI_LEMMY_EXTERNAL_HOST=localhost:8581
depends_on:
- lemmy-epsilon
lemmy-epsilon:
<<: *lemmy-default
volumes:
- ./lemmy_epsilon.hjson:/config/config.hjson:Z
depends_on:
- postgres_epsilon
ports:
- "8581:8581"
postgres_epsilon:
<<: *postgres-default
volumes:
- ./volumes/postgres_epsilon:/var/lib/postgresql/data:Z