diff options
author | Felix <me@nutomic.com> | 2020-04-10 13:37:35 +0200 |
---|---|---|
committer | Felix <me@nutomic.com> | 2020-04-10 13:37:35 +0200 |
commit | 509005fa0c702d4909440a92cb4cf744dff72a97 (patch) | |
tree | 8845b30e05b859a165cdcdbcec5937393c8f7378 /docker/federation | |
parent | 492625f6d635a7345de71f538d9b9097d2e1c56a (diff) |
Rename federation-test to federation, puller.rs to fetcher.rs
Diffstat (limited to 'docker/federation')
-rw-r--r-- | docker/federation/Dockerfile | 17 | ||||
-rw-r--r-- | docker/federation/docker-compose.yml | 83 | ||||
-rw-r--r-- | docker/federation/nginx.conf | 73 | ||||
-rwxr-xr-x | docker/federation/run-federation-test.bash | 14 |
4 files changed, 187 insertions, 0 deletions
diff --git a/docker/federation/Dockerfile b/docker/federation/Dockerfile new file mode 100644 index 00000000..d8302ea7 --- /dev/null +++ b/docker/federation/Dockerfile @@ -0,0 +1,17 @@ +FROM ekidd/rust-musl-builder:1.38.0-openssl11 + +USER root +RUN mkdir /app/dist/documentation/ -p \ + && addgroup --gid 1001 lemmy \ + && adduser --disabled-password --shell /bin/sh -u 1001 --ingroup lemmy lemmy + +# Copy resources +COPY server/config/defaults.hjson /app/config/defaults.hjson +COPY ui/dist /app/dist +COPY server/target/debug/lemmy_server /app/lemmy + +RUN chown lemmy:lemmy /app/ -R +USER lemmy +EXPOSE 8536 +WORKDIR /app +CMD ["/app/lemmy"] diff --git a/docker/federation/docker-compose.yml b/docker/federation/docker-compose.yml new file mode 100644 index 00000000..f251a4f9 --- /dev/null +++ b/docker/federation/docker-compose.yml @@ -0,0 +1,83 @@ +version: '3.3' + +services: + nginx: + image: nginx:1.17-alpine + ports: + - "8540:8540" + - "8550:8550" + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf + depends_on: + - lemmy_alpha + - pictshare_alpha + - lemmy_beta + - pictshare_beta + - iframely + restart: "always" + + lemmy_alpha: + image: lemmy-federation:latest + environment: + - LEMMY_HOSTNAME=lemmy_alpha:8540 + - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_alpha:5432/lemmy + - LEMMY_JWT_SECRET=changeme + - LEMMY_FRONT_END_DIR=/app/dist + - LEMMY_FEDERATION__ENABLED=true + - LEMMY_FEDERATION__FOLLOWED_INSTANCES=lemmy_beta:8550 + - LEMMY_FEDERATION__TLS_ENABLED=false + - LEMMY_PORT=8540 + - RUST_BACKTRACE=1 + restart: always + depends_on: + - postgres_alpha + postgres_alpha: + image: postgres:12-alpine + environment: + - POSTGRES_USER=lemmy + - POSTGRES_PASSWORD=password + - POSTGRES_DB=lemmy + volumes: + - ./volumes/postgres_alpha:/var/lib/postgresql/data + restart: always + pictshare_alpha: + image: shtripok/pictshare:latest + volumes: + - ./volumes/pictshare_alpha:/usr/share/nginx/html/data + restart: always + + lemmy_beta: + image: lemmy-federation:latest + environment: + - LEMMY_HOSTNAME=lemmy_beta:8550 + - LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_beta:5432/lemmy + - LEMMY_JWT_SECRET=changeme + - LEMMY_FRONT_END_DIR=/app/dist + - LEMMY_FEDERATION__ENABLED=true + - LEMMY_FEDERATION__FOLLOWED_INSTANCES=lemmy_alpha:8540 + - LEMMY_FEDERATION__TLS_ENABLED=false + - LEMMY_PORT=8550 + - RUST_BACKTRACE=1 + restart: always + depends_on: + - postgres_beta + postgres_beta: + image: postgres:12-alpine + environment: + - POSTGRES_USER=lemmy + - POSTGRES_PASSWORD=password + - POSTGRES_DB=lemmy + volumes: + - ./volumes/postgres_beta:/var/lib/postgresql/data + restart: always + pictshare_beta: + image: shtripok/pictshare:latest + volumes: + - ./volumes/pictshare_beta:/usr/share/nginx/html/data + restart: always + + iframely: + image: dogbin/iframely:latest + volumes: + - ../iframely.config.local.js:/iframely/config.local.js:ro + restart: always diff --git a/docker/federation/nginx.conf b/docker/federation/nginx.conf new file mode 100644 index 00000000..6dbe13b4 --- /dev/null +++ b/docker/federation/nginx.conf @@ -0,0 +1,73 @@ +events { + worker_connections 1024; +} + +http { + server { + listen 8540; + server_name 127.0.0.1; + + # Upload limit for pictshare + client_max_body_size 50M; + + location / { + proxy_pass http://lemmy_alpha:8540; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + # WebSocket support + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /pictshare/ { + proxy_pass http://pictshare_alpha:80/; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location /iframely/ { + proxy_pass http://iframely:80/; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + } + + server { + listen 8550; + server_name 127.0.0.1; + + # Upload limit for pictshare + client_max_body_size 50M; + + location / { + proxy_pass http://lemmy_beta:8550; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + # WebSocket support + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + location /pictshare/ { + proxy_pass http://pictshare_beta:80/; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location /iframely/ { + proxy_pass http://iframely:80/; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + } +} diff --git a/docker/federation/run-federation-test.bash b/docker/federation/run-federation-test.bash new file mode 100755 index 00000000..7cf26206 --- /dev/null +++ b/docker/federation/run-federation-test.bash @@ -0,0 +1,14 @@ +#!/bin/bash +set -e + +pushd ../../ui/ || exit +yarn build +popd || exit + +pushd ../../server/ || exit +cargo build +popd || exit + +sudo docker build ../../ -f Dockerfile -t lemmy-federation:latest + +sudo docker-compose up
\ No newline at end of file |