-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathegg-navidrome.json
More file actions
142 lines (142 loc) · 7.15 KB
/
egg-navidrome.json
File metadata and controls
142 lines (142 loc) · 7.15 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
132
133
134
135
136
137
138
139
140
141
142
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2026-03-08T15:10:33+01:00",
"name": "Navidrome",
"author": "contact@krasserserver.com",
"description": "Navidrome Music Server - A lightweight music server for your personal collection. Also acts as a Subsonic Server.",
"features": [],
"docker_images": {
"devilapi\/navidrome-pterodactyl:latest": "devilapi\/navidrome-pterodactyl:latest"
},
"file_denylist": [],
"startup": "\/bin\/bash \/home\/container\/start.sh",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Navidrome server is ready!\"\r\n}",
"logs": "{\r\n \"logs\": {\r\n \"stdout\": \"\/home\/container\/logs\/stdout.log\",\r\n \"stderr\": \"\/home\/container\/logs\/stderr.log\"\r\n }\r\n}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/sh\r\n\r\necho \"Creating Navidrome directories...\"\r\nmkdir -p \/mnt\/server\/data\r\nmkdir -p \/mnt\/server\/music\r\n\r\necho \"Creating start.sh...\"\r\n\r\ncat << 'EOF' > \/mnt\/server\/start.sh\r\n#!\/usr\/bin\/env bash\r\nset -euo pipefail\r\n\r\necho \"Starting Navidrome...\"\r\n\r\n# Defaults (safe for Pterodactyl)\r\nND_PORT=\"${ND_PORT:-4533}\"\r\nND_DATAFOLDER=\"${ND_DATAFOLDER:-\/home\/container\/data}\"\r\nND_MUSICFOLDER=\"${ND_MUSICFOLDER:-\/home\/container\/music}\"\r\nND_LOGLEVEL=\"${ND_LOGLEVEL:-info}\"\r\n\r\n# Create necessary directories\r\nmkdir -p \"$ND_DATAFOLDER\" \"$ND_MUSICFOLDER\"\r\nmkdir -p \"$ND_DATAFOLDER\/cache\"\r\n\r\n# Cache fallback logic\r\nND_CACHEFOLDER=\"${ND_CACHEFOLDER:-$ND_DATAFOLDER\/cache}\"\r\nmkdir -p \"$ND_CACHEFOLDER\"\r\n\r\necho \"User: $(id -u):$(id -g)\"\r\necho \"ND_PORT=$ND_PORT\"\r\necho \"ND_DATAFOLDER=$ND_DATAFOLDER\"\r\necho \"ND_MUSICFOLDER=$ND_MUSICFOLDER\"\r\necho \"ND_CACHEFOLDER=$ND_CACHEFOLDER\"\r\necho \"ND_LOGLEVEL=$ND_LOGLEVEL\"\r\necho \"ND_CONFIGFILE=${ND_CONFIGFILE:-<empty>}\"\r\n\r\n# FIX: prevent empty configfile crash\r\nif [ -z \"${ND_CONFIGFILE:-}\" ]; then\r\n unset ND_CONFIGFILE\r\nfi\r\n\r\nARGS=(\r\n \"--port\" \"$ND_PORT\"\r\n \"--datafolder\" \"$ND_DATAFOLDER\"\r\n \"--musicfolder\" \"$ND_MUSICFOLDER\"\r\n \"--cachefolder\" \"$ND_CACHEFOLDER\"\r\n \"--loglevel\" \"$ND_LOGLEVEL\"\r\n)\r\n\r\nif [ -n \"${ND_BASEURL:-}\" ]; then\r\n ARGS+=( \"--baseurl\" \"$ND_BASEURL\" )\r\nfi\r\n\r\nif [ -n \"${ND_ENABLEINSIGHTSCOLLECTOR:-}\" ]; then\r\n ARGS+=( \"--enableinsightscollector\" \"$ND_ENABLEINSIGHTSCOLLECTOR\" )\r\nfi\r\n\r\nif [ -n \"${ND_CONFIGFILE:-}\" ]; then\r\n ARGS+=( \"--configfile\" \"$ND_CONFIGFILE\" )\r\nfi\r\n\r\nif command -v navidrome >\/dev\/null 2>&1; then\r\n NAVIDROME_BIN=\"$(command -v navidrome)\"\r\nelif [ -x \"\/navidrome\" ]; then\r\n NAVIDROME_BIN=\"\/navidrome\"\r\nelif [ -x \"\/app\/navidrome\" ]; then\r\n NAVIDROME_BIN=\"\/app\/navidrome\"\r\nelse\r\n echo \"ERROR: navidrome binary not found\"\r\n exit 1\r\nfi\r\n\r\necho \"Launching: $NAVIDROME_BIN ${ARGS[*]}\"\r\nexec \"$NAVIDROME_BIN\" \"${ARGS[@]}\"\r\nEOF\r\n\r\nchmod +x \/mnt\/server\/start.sh\r\n\r\necho \"Creating empty config.toml...\"\r\ntouch \/mnt\/server\/config.toml\r\n\r\necho \"Installation complete.\"",
"container": "alpine:3.4",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "Navidrome BaseURL",
"description": "Base URL for Navidrome",
"env_variable": "ND_BASEURL",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:60",
"field_type": "text"
},
{
"name": "Data Folder",
"description": "",
"env_variable": "ND_DATAFOLDER",
"default_value": "\/home\/container\/data",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:60",
"field_type": "text"
},
{
"name": "Navidrome Music Folder",
"description": "",
"env_variable": "ND_MUSICFOLDER",
"default_value": "\/home\/container\/music",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:60",
"field_type": "text"
},
{
"name": "Port",
"description": "",
"env_variable": "ND_PORT",
"default_value": "4533",
"user_viewable": true,
"user_editable": true,
"rules": "required|int|max:65535",
"field_type": "text"
},
{
"name": "Spotify Dev ID",
"description": "Your Spotify Developer ID for Spotify Integration.",
"env_variable": "ND_SPOTIFY_ID",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:80",
"field_type": "text"
},
{
"name": "Spotify Dev Secret",
"description": "",
"env_variable": "ND_SPOTIFY_SECRET",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:80",
"field_type": "text"
},
{
"name": "LastFM API Key",
"description": "",
"env_variable": "ND_LASTFM_APIKEY",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:80",
"field_type": "text"
},
{
"name": "LastFM API Secret",
"description": "",
"env_variable": "ND_LASTFM_SECRET",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:280",
"field_type": "text"
},
{
"name": "Log Level",
"description": "Useful for troubleshooting. Possible values: error, warn, info, debug, trace",
"env_variable": "ND_LOGLEVEL",
"default_value": "info",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:5",
"field_type": "text"
},
{
"name": "Config File Location",
"description": "",
"env_variable": "ND_CONFIGFILE",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "string|max:80",
"field_type": "text"
},
{
"name": "Enable Insights Collector",
"description": "Controls whether the server will run its Anonymous Data Collection feature to help improve the project.",
"env_variable": "ND_ENABLEINSIGHTSCOLLECTOR",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean|max:20",
"field_type": "text"
}
]
}