37 lines
990 B
Markdown
37 lines
990 B
Markdown
v2 architecture draft: see `docs/architecture-v2.org`
|
|
|
|
default v2 app run:
|
|
```
|
|
python3 ./youdis.py
|
|
```
|
|
|
|
`youdis.py` is the app-level runner. It starts the backend first, waits for health, then starts each enabled adapter explicitly.
|
|
|
|
direct component runs still work for testing:
|
|
```
|
|
python3 -m uvicorn youdis.main:app --host 127.0.0.1 --port 8000
|
|
python3 -m youdis.adapters.discord
|
|
```
|
|
|
|
adapter selection is controlled by env, currently:
|
|
```
|
|
YOUDIS_RUN_BACKEND=1
|
|
YOUDIS_ENABLED_ADAPTERS=discord
|
|
```
|
|
|
|
to add a new adapter:
|
|
1. add `youdis/adapters/<adapter>.py`
|
|
2. make it independently runnable
|
|
3. add `start_<adapter>()` to `youdis.py`
|
|
4. register it in the explicit adapter starter map in `youdis.py`
|
|
5. add any required env vars to `.env.example`
|
|
|
|
build and run the docker container
|
|
```
|
|
DISCORD_BOT_TOKEN = [discord bot token]
|
|
-v [downloads]:/downloads
|
|
-v [config]:/config
|
|
```
|
|
config contains data to persist across container updates, i.e., unraid appdata,
|
|
such as yt-dlp's archive.txt
|