@muhammedaksam/easiarr 1.1.5 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/apps/registry.ts +3 -2
- package/src/compose/generator.ts +11 -0
- package/src/compose/templates.ts +5 -0
- package/src/config/schema.ts +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@muhammedaksam/easiarr",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "TUI tool for generating docker-compose files for the *arr media ecosystem with 41 apps, TRaSH Guides best practices, VPN routing, and Traefik reverse proxy support",
|
|
5
5
|
"module": "src/index.ts",
|
|
6
6
|
"type": "module",
|
package/src/apps/registry.ts
CHANGED
|
@@ -320,8 +320,9 @@ export const APPS: Record<AppId, AppDefinition> = {
|
|
|
320
320
|
category: "downloader",
|
|
321
321
|
defaultPort: 5030,
|
|
322
322
|
image: "slskd/slskd",
|
|
323
|
-
puid:
|
|
324
|
-
pgid:
|
|
323
|
+
puid: 0, // Uses Docker user: directive instead
|
|
324
|
+
pgid: 0,
|
|
325
|
+
useDockerUser: true, // Use Docker's user: directive for file permissions
|
|
325
326
|
volumes: (root) => [`${root}/config/slskd:/app`, `${root}/data:/data`],
|
|
326
327
|
secondaryPorts: ["5031:5031", "50300:50300"],
|
|
327
328
|
environment: {
|
package/src/compose/generator.ts
CHANGED
|
@@ -25,6 +25,8 @@ export interface ComposeService {
|
|
|
25
25
|
devices?: string[]
|
|
26
26
|
cap_add?: string[]
|
|
27
27
|
command?: string
|
|
28
|
+
/** Docker user directive (e.g., "1000:1000") for apps that don't support PUID/PGID */
|
|
29
|
+
user?: string
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
export interface ComposeFile {
|
|
@@ -157,6 +159,15 @@ function buildService(appDef: ReturnType<typeof getApp>, appConfig: AppConfig, c
|
|
|
157
159
|
// Add command (e.g., cloudflared)
|
|
158
160
|
if (appDef.command) service.command = appDef.command
|
|
159
161
|
|
|
162
|
+
// Use Docker user directive for apps that don't support PUID/PGID (e.g., slskd)
|
|
163
|
+
if (appDef.useDockerUser) {
|
|
164
|
+
service.user = "${PUID}:${PGID}"
|
|
165
|
+
// Remove PUID/PGID env vars since they're not used
|
|
166
|
+
delete service.environment.PUID
|
|
167
|
+
delete service.environment.PGID
|
|
168
|
+
delete service.environment.UMASK
|
|
169
|
+
}
|
|
170
|
+
|
|
160
171
|
// Plex uses network_mode: host
|
|
161
172
|
if (appDef.id === "plex") {
|
|
162
173
|
service.network_mode = "host"
|
package/src/compose/templates.ts
CHANGED
|
@@ -60,6 +60,11 @@ export function generateServiceYaml(name: string, service: ComposeService): stri
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
// User directive (for apps like slskd that don't support PUID/PGID)
|
|
64
|
+
if (service.user) {
|
|
65
|
+
yaml += ` user: ${service.user}\n`
|
|
66
|
+
}
|
|
67
|
+
|
|
63
68
|
yaml += ` restart: ${service.restart}\n\n`
|
|
64
69
|
|
|
65
70
|
return yaml
|
package/src/config/schema.ts
CHANGED
|
@@ -210,6 +210,8 @@ export interface AppDefinition {
|
|
|
210
210
|
homepage?: HomepageMeta
|
|
211
211
|
/** Auto-setup capability metadata */
|
|
212
212
|
autoSetup?: AutoSetupCapability
|
|
213
|
+
/** Use Docker's user: directive instead of PUID/PGID env vars (e.g., slskd) */
|
|
214
|
+
useDockerUser?: boolean
|
|
213
215
|
}
|
|
214
216
|
|
|
215
217
|
/** Auto-setup capability for an app */
|