| 1 | amends "../../config/Service.pkl" |
| 2 | |
| 3 | import "../../config/site.pkl" as site |
| 4 | |
| 5 | local 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 | |
| 7 | meta { name = "Samba" } |
| 8 | |
| 9 | container { |
| 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 | |
| 40 | requiredSecrets { "account" } |