openvibers/openvibe.mediahub .env.example

.env.example

main 4.8 KB · 100 lines · plaintext

1# OpenVibe.MediaHub — environment (production: /etc/openvibe/media-hub.env). Names only; never commit values.
2
3NODE_ENV=production
4PORT=4990
5HOST=127.0.0.1
6BASE_URL=https://openvibe.download
7TRUST_PROXY=2
8# PostgreSQL (ADR-035), written by OpenVibe.Host roles/data/add-service.sh media-hub: the runtime role through PgBouncer,
9# the owner on a direct connection (migrations), and Valkey (shared limit counters).
10# Without DATABASE_URL, development uses an embedded PGlite database in data/pglite.
11DATABASE_URL=
12DATABASE_DIRECT_URL=
13VALKEY_URL=
14VALKEY_PREFIX=ov:media-hub:
15# Per-caller limits (server/http/caller-limits.js): requests one caller may make to the API per minute and per hour.
16#MEDIAHUB_LIMITS_MINUTE=120
17#MEDIAHUB_LIMITS_HOUR=3000
18
19# OpenVibe.Network: SSO (OAuth client `media-hub`, PKCE S256) and its JWKS; app tokens for audience openvibe.download.
20OV_NETWORK_URL=https://openvibe.network
21OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000
22OV_OAUTH_CLIENT_ID=media-hub
23OV_OAUTH_CLIENT_SECRET=
24# OV_OAUTH_REDIRECT_URI=https://openvibe.download/auth/callback
25# MEDIAHUB_AUDIENCE=openvibe.download
26
27# OpenVibe.Events: the ADR-033 account export/deletion deliveries (POST /internal/events, v2 signature, loopback
28# only). Without it the route answers 503 and Events retries.
29MEDIAHUB_EVENTS_SECRET=
30# Where the two account export/deletion subscriptions are created at boot (OpenVibe.Events, loopback on the host).
31MEDIAHUB_EVENTS_URL=
32
33# ── OpenVibe.Media: where the bytes live ────────────────────
34# The host-internal address of the Media object API. MediaHub calls it with its Network service token.
35# Grant [media-hub, media.object.upload, openvibe.media] and [media-hub, media.object.read, openvibe.media]
36# on namespace media-hub. Media's `media-hub` tenant holds the bytes.
37MEDIAHUB_MEDIA_URL=http://127.0.0.1:4100
38# The public origin Media's /t/ cover URLs are made absolute on.
39MEDIAHUB_MEDIA_PUBLIC_URL=https://openvibe.media
40MEDIAHUB_MEDIA_APP=media-hub
41#MEDIAHUB_MEDIA_TIMEOUT_MS=30000
42
43# ── Per person (Media's quotas are per tenant, so these are enforced here) ──
44#MEDIAHUB_QUOTA_BYTES=26843545600
45#MEDIAHUB_MAX_FILE_BYTES=2147483648
46#MEDIAHUB_UPLOADS_PER_DAY=50
47#MEDIAHUB_MAX_SHARES=20
48# The most a plain <input type=file> form may post in one request; keep it in step with client_max_body_size for
49# `location = /files/upload` in deploy/nginx/openvibe.download.conf. Larger files go up in parts.
50#MEDIAHUB_SINGLE_UPLOAD_BYTES=268435456
51# One part of a chunked upload. Media requires at least 5 MB and at most 256 MB; MediaHub clamps to that range.
52#MEDIAHUB_PART_BYTES=8388608
53# How long an unfinished chunked upload may be resumed.
54#MEDIAHUB_UPLOAD_TTL_SECONDS=21600
55# Where a no-JavaScript upload is spooled before it goes to Media (default: the system temp directory).
56#MEDIAHUB_TMP_DIR=
57
58# optional: defaults to true in production
59# COOKIE_SECURE=true
60
61# ── OpenVibe.Video: public watch pages for OpenVibe.Live's recordings and clips ──
62# Served by Host header on openvibe.video; Live is called server-side, signed out. liveUrl and chatUrl
63# are the host-internal addresses (production sets them to the loopback address); links people click
64# use livePublicUrl.
65MEDIAHUB_VIDEO_URL=https://openvibe.video
66# Where "Edit in Studio" goes for a finished upload (the hand-off route).
67MEDIAHUB_STUDIO_URL=https://openvibe.studio
68# On by default. Set off to hide the Edit in Studio action while leaving the hand-off API.
69# MEDIAHUB_STUDIO_VIDEO_EDIT=off
70# The AI cut of an upload (server/video/cut.js): edited copies made here with ffmpeg, one at a time under nice.
71#VIDEO_CUTS=off
72#VIDEO_CUTS_PER_DAY=5
73#VIDEO_CUTS_MAX_SOURCE_SECONDS=10800
74#VIDEO_CUTS_SILENCE_DB=40
75#VIDEO_CUTS_THREADS=2
76MEDIAHUB_LIVE_URL=https://openvibe.live
77MEDIAHUB_LIVE_PUBLIC_URL=https://openvibe.live
78MEDIAHUB_CHAT_URL=https://openvibe.live
79# IndexNow for openvibe.video (8–128 letters and digits): new watch pages are sent to search engines. Unset: off.
80#INDEXNOW_KEY=
81
82# ── OpenVibe.Pics (openvibe.pics, server/pics) ──
83# Served by Host header on openvibe.pics. Pictures are private Media objects served through this process.
84MEDIAHUB_PICS_URL=https://openvibe.pics
85#MEDIAHUB_PICS_MAX_IMAGE_BYTES=20971520
86#MEDIAHUB_PICS_MAX_PIXELS=100000000
87#MEDIAHUB_PICS_QUOTA_BYTES=5368709120
88#MEDIAHUB_PICS_IMAGES_PER_DAY=200
89#MEDIAHUB_PICS_ALBUMS_MAX=200
90#MEDIAHUB_PICS_ALBUM_IMAGES_MAX=500
91#MEDIAHUB_PICS_REPORTS_TO_HIDE=3
92# Alt text drafted by OpenVibe.AI when the uploader asks (needs OV_AI_INTERNAL_URL): off with off; a daily cap.
93#MEDIAHUB_PICS_AI=off
94#MEDIAHUB_PICS_AI_PER_DAY=300
95# Signed-out uploads stay off (unset) until the DMCA designated agent and the CSAM hash-matching account exist.
96#MEDIAHUB_PICS_ANONYMOUS=1
97#MEDIAHUB_PICS_ANONYMOUS_MAX_IMAGE_BYTES=10485760
98#MEDIAHUB_PICS_ANONYMOUS_PER_DAY=20
99#MEDIAHUB_PICS_ANONYMOUS_IDLE_DAYS=30
100