-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathdigarr.xml
More file actions
131 lines (108 loc) · 6.84 KB
/
Copy pathdigarr.xml
File metadata and controls
131 lines (108 loc) · 6.84 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
123
124
125
126
127
128
129
130
131
<?xml version="1.0"?>
<Container version="2">
<Name>Digarr</Name>
<!-- Digest pin (synced via scripts/sync-deploy-digests.ts): sha256:28d72da6c40fa58b4baf1c8e3ce8c3e6534602324380e5a2bbb59c11e05dcb99 -->
<Repository>docker.io/iuliandita/digarr:1.15.1</Repository>
<Registry>https://hub.docker.com/r/iuliandita/digarr</Registry>
<Branch>
<Tag>1.15.1</Tag>
<TagDescription>v1.15.1 release</TagDescription>
</Branch>
<Network>bridge</Network>
<Shell>sh</Shell>
<Privileged>false</Privileged>
<Support>https://github.com/iuliandita/digarr/discussions</Support>
<Project>https://github.com/iuliandita/digarr</Project>
<Overview>
AI-powered music discovery engine for self-hosted music stacks.
Connects to Lidarr, Last.fm, ListenBrainz, Spotify, and more to find
new artists you will actually like. Supports auto-playlists, subscription
feeds, mood-based discovery, and genre browsing.
Ships with a built-in embedded database -- no separate PostgreSQL
container needed. Data is stored in the mapped data folder
(/mnt/user/appdata/digarr/data), which must be writable by the
container user (uid 1000). To use an external PostgreSQL instead,
set the (advanced) Database URL variable.
</Overview>
<Requires>
No separate database required -- uses a built-in embedded database by
default. The data folder (/mnt/user/appdata/digarr/data) must be
writable by the container user (uid 1000). Optionally point Database URL
at an external PostgreSQL instance.
</Requires>
<Category>MediaApp:Music</Category>
<WebUI>http://[IP]:[PORT:3000]</WebUI>
<Icon>https://raw.githubusercontent.com/iuliandita/digarr/main/docs/logo.png</Icon>
<!-- Required -->
<Config Name="Web UI Port" Target="3000" Default="3000" Mode="tcp"
Description="Port for the web interface" Type="Port" Display="always-hide"
Required="true" Mask="false">3000</Config>
<Config Name="Data" Target="/app/data" Default="/mnt/user/appdata/digarr/data" Mode="rw"
Description="Persistent storage for the built-in embedded database. Must be writable by the container user (uid 1000)."
Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/digarr/data</Config>
<Config Name="Data Path" Target="DB_PATH" Default="/app/data"
Description="Container path for the built-in embedded database (matches the Data folder mapping)"
Type="Variable" Display="advanced" Required="false" Mask="false">/app/data</Config>
<Config Name="Database URL" Target="DATABASE_URL" Default=""
Description="Leave empty to use the built-in database. Set only to use an external PostgreSQL, e.g. postgresql://user:pass@host:5432/digarr"
Type="Variable" Display="advanced" Required="false" Mask="true"/>
<!-- Auth (recommended) -->
<Config Name="Initial Username" Target="DIGARR_INITIAL_USERNAME" Default=""
Description="Auto-create this admin user on first boot"
Type="Variable" Display="always" Required="false" Mask="false"/>
<Config Name="Initial Password" Target="DIGARR_INITIAL_PASSWORD" Default=""
Description="Password for the initial admin user (min 8 chars)"
Type="Variable" Display="always" Required="false" Mask="true"/>
<!-- AI Provider -->
<Config Name="AI Provider" Target="AI_PROVIDER" Default=""
Description="AI provider: anthropic, openai, gemini, ollama, openai-compatible (or configure in UI)"
Type="Variable" Display="always" Required="false" Mask="false"/>
<Config Name="AI Model" Target="AI_MODEL" Default=""
Description="Model name, e.g. gpt-4o-mini, claude-sonnet-4-5-20250514"
Type="Variable" Display="always" Required="false" Mask="false"/>
<Config Name="AI API Key" Target="AI_API_KEY" Default=""
Description="API key for the AI provider"
Type="Variable" Display="always" Required="false" Mask="true"/>
<Config Name="AI Base URL" Target="AI_BASE_URL" Default=""
Description="Base URL for openai-compatible or ollama (e.g. http://ollama:11434)"
Type="Variable" Display="always" Required="false" Mask="false"/>
<!-- Lidarr -->
<Config Name="Lidarr URL" Target="LIDARR_URL" Default=""
Description="Lidarr instance URL, e.g. http://lidarr:8686 (optional -- discovery works without Lidarr)"
Type="Variable" Display="always" Required="false" Mask="false"/>
<Config Name="Lidarr API Key" Target="LIDARR_API_KEY" Default=""
Description="Lidarr API key (Settings > General in Lidarr)"
Type="Variable" Display="always" Required="false" Mask="true"/>
<!-- Listening sources -->
<Config Name="ListenBrainz Username" Target="LISTENBRAINZ_USERNAME" Default=""
Description="ListenBrainz username for taste analysis"
Type="Variable" Display="advanced" Required="false" Mask="false"/>
<Config Name="ListenBrainz Token" Target="LISTENBRAINZ_TOKEN" Default=""
Description="ListenBrainz user token"
Type="Variable" Display="advanced" Required="false" Mask="true"/>
<Config Name="Last.fm Username" Target="LASTFM_USERNAME" Default=""
Description="Last.fm username for taste analysis"
Type="Variable" Display="advanced" Required="false" Mask="false"/>
<Config Name="Last.fm API Key" Target="LASTFM_API_KEY" Default=""
Description="Last.fm API key"
Type="Variable" Display="advanced" Required="false" Mask="true"/>
<!-- Security -->
<Config Name="Allowed Origin" Target="ALLOWED_ORIGIN" Default=""
Description="CORS allowed origin, e.g. https://digarr.example.com (required for reverse proxy)"
Type="Variable" Display="advanced" Required="false" Mask="false"/>
<Config Name="Allow Insecure Cookies" Target="DIGARR_ALLOW_INSECURE_COOKIES" Default="false"
Description="Cookies default to Secure in production, even behind a TLS-terminating proxy. Set true ONLY for an intentional direct-HTTP deployment (pair with an http:// Allowed Origin); direct HTTP exposes the session cookie to interception."
Type="Variable" Display="advanced" Required="false" Mask="false">false</Config>
<Config Name="Encryption Key" Target="DIGARR_ENCRYPTION_KEY" Default=""
Description="32+ char key for encrypting API keys, tokens, and connection passwords (blank stores those fields unencrypted)"
Type="Variable" Display="advanced" Required="false" Mask="true"/>
<Config Name="Disable Registration" Target="DIGARR_DISABLE_REGISTRATION" Default="true|false"
Description="Set to false to allow new user registration"
Type="Variable" Display="advanced-hide" Required="true" Mask="false"/>
<Config Name="Skip TLS Verify" Target="SKIP_TLS_VERIFY" Default="false|true"
Description="Skip TLS certificate verification for Lidarr/Jellyfin connections"
Type="Variable" Display="advanced-hide" Required="true" Mask="false"/>
<Config Name="Webhook URL" Target="WEBHOOK_URL" Default=""
Description="Discord HTTPS webhook or public HTTPS endpoint that accepts Digarr JSON"
Type="Variable" Display="advanced" Required="false" Mask="true"/>
</Container>