Repository navigation
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
122 lines (108 loc) · 6.9 KB
/
Copy pathconfig.example.yaml
File metadata and controls
122 lines (108 loc) · 6.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# AudioSilo server configuration.
#
# This file is written to <data-dir>/config.yaml on first run with secure
# defaults. Edit it and restart, change most of it in the admin console (Server >
# Settings, which saves here), or override selected values with environment
# variables (shown in brackets). A value an environment variable sets wins at
# every start, shows as locked in the console, and is never written into this
# file. Command-line flags are: --data (data dir), --ffprobe / --ffmpeg (tool
# paths; "" disables each), and --setup (first-run web setup wizard):
# `audiosilo --data ./data`.
# The server's display name: shown in the apps when someone connects, on invites
# and in the admin console. Empty = "AudioSilo".
name: ""
# Ask GitHub Releases once a day whether a newer AudioSilo exists (shown in the
# admin console's Server > About). Sends nothing but the request itself (this
# server's address and a User-Agent naming its version). false = never ask.
# [AUDIOSILO_UPDATE_CHECK]
update_check: true
# Address to listen on. [AUDIOSILO_BIND]
bind: "0.0.0.0:8080"
# Externally reachable base URL. Used to build QR pairing payloads. If empty it
# is derived from the incoming request. [AUDIOSILO_PUBLIC_URL]
public_url: ""
# The server's address on your home network, e.g. "http://192.168.1.20:8080".
# The apps learn it when they pair (and from GET /api/v1/addresses afterwards) and
# switch to it by themselves when they can reach it, using public_url when away.
# If empty, the address a request arrived on is used when it is a home-network
# one (a private or link-local IP, a .local/.lan/.home.arpa/.internal or single-label
# name; never localhost). [AUDIOSILO_LAN_URL]
lan_url: ""
tls:
# off - plain HTTP (use behind a reverse proxy that terminates TLS)
# selfsigned - generate & persist a self-signed cert (default; good for LAN)
# autocert - automatic Let's Encrypt certificates (requires public hostname)
mode: "selfsigned" # [AUDIOSILO_TLS_MODE]
hosts: [] # autocert: hostnames to obtain certs for [AUDIOSILO_TLS_HOSTS]
cache_dir: "" # autocert cert cache (default <data>/certs)
cert_file: "" # selfsigned: optional explicit cert path
key_file: "" # selfsigned: optional explicit key path
# CIDRs whose X-Forwarded-For header is trusted. Set this when running behind a
# reverse proxy so client IPs (used for rate limiting) are accurate.
trusted_proxies: [] # [AUDIOSILO_TRUSTED_PROXIES]
# e.g. ["127.0.0.1/32", "10.0.0.0/8"]
# Allowed browser origins for CORS. Empty = no cross-origin CORS headers granted
# (native apps and same-origin web clients still work). "*" disables the check.
cors_origins: [] # [AUDIOSILO_CORS_ORIGINS]
# Maximum request/upload body size in bytes (uploads land in Phase B).
max_upload_bytes: 2147483648 # [AUDIOSILO_MAX_UPLOAD_BYTES] (2 GiB)
# Directory holding the prebuilt web player, served at /web. Empty disables it
# (the web_player capability then reports false). The Docker image bakes a pinned
# build in at /app/web; for local dev point this at an Expo export (see
# scripts/build-web.sh). [AUDIOSILO_WEB_DIR]
web_dir: ""
# Native deep-link association. When set, the server serves
# /.well-known/apple-app-site-association and /.well-known/assetlinks.json so a
# phone can open the installed app straight from a pairing/invite link (iOS
# Universal Links / Android App Links). Leave empty to fall back to the web
# player. The app build must also claim this domain. (YAML only; no env override.)
app_links:
apple_app_ids: [] # ["<TEAMID>.com.anonymous.audiosilo"]
android_package: "" # "com.anonymous.audiosilo"
android_sha256: [] # ["AA:BB:CC:..."] signing-cert SHA-256 fingerprints
# Libraries to expose. Declaring them here syncs them into the database and
# scans them on startup; you can also create libraries at runtime via the admin
# API. Folder shape (single-file books, folder-per-book, multi-file parts) is
# auto-detected per folder by the scanner - there is no layout to configure; a
# folder the detector gets wrong is fixed via the admin folder-override endpoint
# (mode: book | collection).
libraries: []
# - name: "Main"
# root: "/srv/audiobooks"
# Public demo mode. When enabled, an unauthenticated visitor can mint a throwaway
# account via POST /api/v1/demo/session that is granted the named library; idle
# demo accounts (and their data) are reaped automatically. Intended for a public
# demo instance (e.g. demo.audiosilo.app). Seed the library with public-domain
# audiobooks via scripts/seed-librivox.sh.
demo:
enabled: false # [AUDIOSILO_DEMO_ENABLED]
library: "" # name of a library above to grant demo users [AUDIOSILO_DEMO_LIBRARY]
# max_users: 200 # cap on live demo users; omit for the safe default of 200, explicit 0 = unlimited (opt-in risk) [AUDIOSILO_DEMO_MAX_USERS]
idle_ttl: "24h" # reap demo users idle longer than this [AUDIOSILO_DEMO_IDLE_TTL]
# Community metadata lookup (Phase 1.5). When enabled, the server resolves a
# book's ASIN/ISBN against the community metadata API and exposes a composed
# enrichment envelope at GET /libraries/{id}/meta (author/narrator, description,
# series rail); answers are cached in memory and in the server's database (so a
# restarted server answers warm, and a known book keeps its details while the
# service is down). Disabling it stops all outbound calls (lookups and the mirror
# download alike) with one key, and the `metadata` capability then reports false
# so clients hide the UI. base_url must be an absolute http(s) URL when enabled.
metadata:
enabled: true # [AUDIOSILO_METADATA_ENABLED]
base_url: "https://meta.audiosilo.app" # metaserve base URL [AUDIOSILO_METADATA_BASE_URL]
# The Audible marketplace whose ASIN a community match takes when a recording
# sells in several: us, uk, ca, au, de, fr, es, it, jp, in or br. Empty takes
# the US store's. [AUDIOSILO_METADATA_REGION]
region: ""
# Where the lookups are answered (applies after a restart):
# remote - ask the service at base_url for each book (the default).
# mirror - keep a local copy of the service's database in <data>/meta-mirror/
# and answer from it, so no book is looked up over the internet. The
# copy comes from the audiosilo-meta releases on GitHub, checked once
# a day: about 450 MB downloaded per update and about 1.8 GB on disk
# (up to twice that while an update is swapped in). Until the first
# copy is ready, and for any question the copy can't answer, the
# server asks base_url as in remote mode. Switching back to remote
# deletes the copy at the next start.
# [AUDIOSILO_METADATA_MODE]
mode: remote