1amends "../../config/Service.pkl"
2
3import "../../config/site.pkl" as site
4
5local sharePermissions = "create mask = 0664; force create mode = 0660; directory mask = 0775; force directory mode = 02770; vfs objects = catia fruit streams_xattr acl_xattr; acl_xattr:ignore system acls = yes; inherit permissions = yes"
6
7meta { name = "Samba" }
8
9container {
10 image = "ghcr.io/servercontainers/samba@sha256:31b90ea7fe3258d30fccd971c85743b92694605f4b43dc8a4df23a202fced06a"
11 imageUser = true
12 hostNetwork = !site.preview
13 cpu = 100
14 memory = 256
15
16 tcp {
17 name = "smb"
18 containerPort = 445
19 hostPort = 445
20 loopback = false
21 }
22
23 volumes {
24 ["/shares/clover"] { src = site.cloverRoot; readOnly = site.cloverReadOnly }
25 ["/shares/clover/Media"] { src = site.mediaRoot; readOnly = site.mediaReadOnly }
26 }
27
28 env {
29 // Finder writes as Clover's owner; Copyparty writes through the shared group.
30 ["UID_clo"] = site.cloverUid.toString()
31 ["ACCOUNT_clo"] = "${secret.own.account}"
32 ["AVAHI_DISABLE"] = "1"
33 ["WSDD2_DISABLE"] = "1"
34 ["SAMBA_CONF_WORKGROUP"] = "PAPER_CLOVER"
35 ["SAMBA_CONF_SERVER_STRING"] = "paper clover's nas"
36 ["SAMBA_VOLUME_CONFIG_clover"] = "[clover]; path = /shares/clover; valid users = clo; read only = \(if (site.cloverReadOnly) "yes" else "no"); \(sharePermissions)"
37 }
38}
39
40requiredSecrets { "account" }