Added fediverse bridge draft

This commit is contained in:
2025-09-04 02:26:27 +02:00
parent 0e72dcbe36
commit d2fa90774b
12 changed files with 265 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
# Administration
## Local dev shell (inside container)
```bash
docker compose exec application bash
```
## Logs
```bash
docker compose logs -f application
docker compose logs -f emulator # if enabled
```
## Notes
- Upstream dev run example:
```bash
export APPVIEW_HOST=api.bsky.app PLC_HOST=plc.directory BGS_HOST=bsky.network PDS_HOST=atproto.brid.gy
flask --debug run -p 8080
```
(We run via gunicorn in this role.)

View File

@@ -0,0 +1,43 @@
{% include 'roles/docker-compose/templates/base.yml.j2' %}
application:
build:
context: .
dockerfile: Dockerfile
args:
BRIDGY_REPO_URL: "{{ BRIDGY_REPO_URL }}"
BRIDGY_REPO_REF: "{{ BRIDGY_REPO_REF }}"
CONTAINER_PORT: "{{ container_port | string }}"
image: "{{ BRIDGY_IMAGE }}"
container_name: "{{ BRIDGY_CONTAINER }}"
hostname: "{{ container_hostname }}"
env_file:
- "{{ docker_compose.files.env }}"
ports:
- "127.0.0.1:{{ ports.localhost.http[application_id] }}:{{ container_port }}"
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
{% include 'roles/docker-container/templates/base.yml.j2' %}
depends_on:
{% if EMULATOR_ENABLED | bool %}
- emulator
{% endif %}
{% include 'roles/docker-container/templates/networks.yml.j2' %}
{% if EMULATOR_ENABLED | bool %}
emulator:
image: "{{ EMULATOR_IMAGE }}"
container_name: "{{ BRIDGY_CONTAINER }}_emulator"
command: >
gcloud emulators firestore start
--host-port=0.0.0.0:{{ EMULATOR_PORT }}
--database-mode=datastore-mode
--quiet
ports:
- "127.0.0.1:{{ EMULATOR_PORT }}:{{ EMULATOR_PORT }}"
environment:
- CLOUDSDK_CORE_DISABLE_PROMPTS=1
restart: unless-stopped
{% include 'roles/docker-container/templates/networks.yml.j2' %}
{% endif %}
{% include 'roles/docker-compose/templates/networks.yml.j2' %}

View File

@@ -0,0 +1,18 @@
# Flask / Gunicorn basics
FLASK_ENV="{{ ENVIRONMENT | default('production') }}"
PORT="{{ container_port }}"
BRIDGY_ADMIN_EMAIL="{{ BRIDGY_ADMIN_EMAIL }}"
# Bridgy Fed upstream knobs (see README @ GitHub)
APPVIEW_HOST="{{ APPVIEW_HOST }}"
PLC_HOST="{{ PLC_HOST }}"
BGS_HOST="{{ BGS_HOST }}"
PDS_HOST="{{ PDS_HOST }}"
# Datastore emulator (Datastore-mode Firestore). If sidecar enabled, point here.
GOOGLE_CLOUD_PROJECT="{{ EMULATOR_PROJECT_ID }}"
DATASTORE_EMULATOR_HOST="{{ EMULATOR_ENABLED | ternary(EMULATOR_HOST_INTERNAL, '') }}"
# DATASTORE_DATASET not needed when GOOGLE_CLOUD_PROJECT is set
# Optional:
# GUNICORN_CMD_ARGS="--log-level info"