Sample configurations
nginx.conf
This is the configuration used in the docker compose setup.
nginx.conf
server {
listen 80 default_server;
access_log /dev/stdout;
server_name localhost;
location ~ /(actor|inbox|outbox|.well-known|followers|following) {
auth_request /auth;
auth_request_set $requester $upstream_http_x_cattle_grid_requester;
rewrite /(.*) /ap/$1 break;
proxy_pass http://cattle_grid_app;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header X-Cattle-Grid-Requester $requester;
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-AP-Location "$scheme://$host$request_uri";
}
location ~ / {
proxy_pass http://rss_app;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header X-Cattle-Grid-Requester $requester;
proxy_set_header X-Original-URI $request_uri;
}
location = /auth {
internal;
proxy_pass http://cattle_grid_app/auth/auth;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-Original-Method $request_method;
proxy_set_header X-Original-Host $host;
proxy_set_header X-Original-Port $server_port;
}
}
docker-compose.yml
This is the docker compose file
docker-compose.yml
# SPDX-FileCopyrightText: 2023 Helge
#
# SPDX-License-Identifier: MIT
services:
rss_app:
image: ghcr.io/astral-sh/uv:python3.11-alpine
volumes:
- .:/opt
working_dir: /opt
environment:
UV_PROJECT_ENVIRONMENT: "/tmp/venv"
entrypoint: ./resources/dev/entrypoint.sh
command: "uv run uvicorn --factory rss:create_app --port 80 --reload --host 0.0.0.0"
rss:
image: nginx:1.25-alpine
volumes:
- ./resources/dev/nginx.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- 3343:80
depends_on:
- rss_app
rss_runner:
image: ghcr.io/astral-sh/uv:python3.11-alpine
hostname: rss_runner
volumes:
- .:/opt
working_dir: /opt
environment:
UV_PROJECT_ENVIRONMENT: "/tmp/venv"
entrypoint: ./resources/dev/entrypoint.sh
depends_on:
- rss
command: "/bin/sh"
profiles: ["skip"]
networks:
default:
external: true
name: fediverse-pasture