test
This commit is contained in:
@@ -1,8 +1,49 @@
|
||||
[global]
|
||||
{{ if .compatibility_mode }}
|
||||
client min protocol = NT1
|
||||
server min protocol = NT1
|
||||
{{ else }}
|
||||
server min protocol = SMB2_10
|
||||
client min protocol = SMB2_10
|
||||
{{ end }}
|
||||
|
||||
{{if .multi_channel }}
|
||||
server multi channel support = yes
|
||||
aio read size = 1
|
||||
aio write size = 1
|
||||
{{ end }}
|
||||
|
||||
dns proxy = yes
|
||||
|
||||
ea support = yes
|
||||
vfs objects = catia fruit streams_xattr{{ if .recyle_bin_enabled }} recycle{{ end }}
|
||||
fruit:aapl = yes
|
||||
fruit:model = MacSamba
|
||||
|
||||
fruit:resource = file
|
||||
fruit:veto_appledouble = no
|
||||
fruit:posix_rename = yes
|
||||
fruit:wipe_intentionally_left_blank_rfork = yes
|
||||
fruit:zero_file_id = yes
|
||||
fruit:delete_empty_adfiles = yes
|
||||
|
||||
# cherry pick from PR#167 to Test
|
||||
fruit:copyfile = yes
|
||||
fruit:nfs_aces = no
|
||||
|
||||
# Performance Enhancements for network
|
||||
socket options = TCP_NODELAY IPTOS_LOWDELAY
|
||||
min receivefile size = 16384
|
||||
getwd cache = yes
|
||||
aio read size = 1
|
||||
aio write size = 1
|
||||
# End PR#167
|
||||
|
||||
netbios name = {{ env "HOSTNAME" }}
|
||||
workgroup = {{ .workgroup }}
|
||||
server string = Samba Home Assistant
|
||||
server string = Samba NAS HomeAssistant config
|
||||
local master = {{ .local_master | ternary "yes" "no" }}
|
||||
multicast dns register = {{ if or .wsdd .wsdd2 }}no{{ else }}yes{{ end }}
|
||||
|
||||
security = user
|
||||
ntlm auth = yes
|
||||
@@ -12,125 +53,103 @@
|
||||
load printers = no
|
||||
disable spoolss = yes
|
||||
|
||||
log level = 1
|
||||
{{ $log_level := dict "trace" "5" "debug" "4" "info" "3" "notice" "2" "warning" "1" "error" "1" "fatal" "1" -}}
|
||||
log level = {{ .log_level | default "warning" | get $log_level }}
|
||||
|
||||
bind interfaces only = yes
|
||||
interfaces = lo {{ .interfaces | join " " }}
|
||||
hosts allow = 127.0.0.1 {{ .allow_hosts | join " " }}
|
||||
|
||||
{{ if .compatibility_mode }}
|
||||
client min protocol = NT1
|
||||
server min protocol = NT1
|
||||
{{ end }}
|
||||
bind interfaces only = {{ .bind_all_interfaces | default false | ternary "no" "yes" }}
|
||||
interfaces = 127.0.0.1 {{ .interfaces | join " " }} {{ .docker_interface | default " "}}
|
||||
hosts allow = 127.0.0.1 {{ .allow_hosts | join " " }} {{ .docker_net | default " " }}
|
||||
|
||||
mangled names = no
|
||||
dos charset = CP850
|
||||
dos charset = CP1253
|
||||
unix charset = UTF-8
|
||||
|
||||
{{ if .apple_compatibility_mode }}
|
||||
vfs objects = catia fruit streams_xattr
|
||||
|
||||
{{ define "SHT" }}
|
||||
{{- $unsupported := list "vfat" "msdos" "f2fs" "fuseblk" "exfat" -}}
|
||||
{{- $rosupported := list "apfs"}}
|
||||
{{- $name := regexReplaceAll "[^A-Za-z0-9_/ ]" .share "_" | regexFind "[A-Za-z0-9_ ]+$" | upper -}}
|
||||
{{- $dinfo := get .shares $name | default dict -}}
|
||||
[{{- $name -}}]
|
||||
browseable = yes
|
||||
writeable = {{ has $dinfo.fs $rosupported | ternary "no" "yes" }}
|
||||
|
||||
# cherry pick from PR#167 to Test
|
||||
create mask = 0664
|
||||
force create mode = 0664
|
||||
directory mask = 0775
|
||||
force directory mode = 0775
|
||||
# End PR#167
|
||||
|
||||
path = /{{- if eq .share "config" }}homeassistant{{- else }}{{- .share }}{{- end }}
|
||||
valid users =_ha_mount_user_ {{ .users|default .username|join " " }} {{ .ro_users|join " " }}
|
||||
{{ if .ro_users }}
|
||||
read list = {{ .ro_users|join " " }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (has "config" .enabled_shares) }}
|
||||
[config]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /homeassistant
|
||||
|
||||
valid users = {{ .username }}
|
||||
force user = root
|
||||
force group = root
|
||||
veto files = /{{ .veto_files | join "/" }}/
|
||||
delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }}
|
||||
|
||||
# DEBUG: {{ toJson $dinfo }}|.share={{ .share }}|$name={{ $name }}|.shares={{ .shares }}|
|
||||
|
||||
{{if .recyle_bin_enabled }}
|
||||
recycle:repository = .recycle/%U
|
||||
recycle:keeptree = yes
|
||||
recycle:versions = yes
|
||||
recycle:touch = yes
|
||||
recycle:touch_mtime = no
|
||||
recycle:directory_mode = 0777
|
||||
#recycle:subdir_mode = 0700
|
||||
#recycle:exclude =
|
||||
#recycle:exclude_dir =
|
||||
#recycle:maxsize = 0
|
||||
{{ end }}
|
||||
|
||||
{{ if (has "addons" .enabled_shares) }}
|
||||
[addons]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /addons
|
||||
# TM:{{ if has $dinfo.fs $unsupported }}unsupported{{else}}{{ .timemachine }}{{ end }} US:{{ .users|default .username|join "," }} {{ .ro_users|join "," }}{{- if .medialibrary.enable }}{{ if .usage }} CL:{{ .usage }}{{ end }} FS:{{ $dinfo.fs | default "native" }} {{ if .recyle_bin_enabled }}RECYCLEBIN{{ end }} {{ end }}
|
||||
{{- if and .timemachine (has $dinfo.fs $unsupported | not ) }}
|
||||
vfs objects = catia fruit streams_xattr{{ if .recyle_bin_enabled }} recycle{{ end }}
|
||||
|
||||
valid users = {{ .username }}
|
||||
force user = root
|
||||
force group = root
|
||||
veto files = /{{ .veto_files | join "/" }}/
|
||||
delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }}
|
||||
# Time Machine Settings Ref: https://github.com/markthomas93/samba.apple.templates
|
||||
fruit:time machine = yes
|
||||
#fruit:time machine max size = SIZE [K|M|G|T|P]
|
||||
fruit:metadata = stream
|
||||
{{ end }}
|
||||
{{- if has $dinfo.fs $unsupported }}
|
||||
vfs objects = catia{{ if .recyle_bin_enabled }} recycle{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (has "addon_configs" .enabled_shares) }}
|
||||
[addon_configs]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /addon_configs
|
||||
|
||||
valid users = {{ .username }}
|
||||
force user = root
|
||||
force group = root
|
||||
veto files = /{{ .veto_files | join "/" }}/
|
||||
delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (has "ssl" .enabled_shares) }}
|
||||
[ssl]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /ssl
|
||||
|
||||
valid users = {{ .username }}
|
||||
force user = root
|
||||
force group = root
|
||||
veto files = /{{ .veto_files | join "/" }}/
|
||||
delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (has "share" .enabled_shares) }}
|
||||
[share]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /share
|
||||
|
||||
valid users = {{ .username }}
|
||||
force user = root
|
||||
force group = root
|
||||
veto files = /{{ .veto_files | join "/" }}/
|
||||
delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (has "backup" .enabled_shares) }}
|
||||
[backup]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /backup
|
||||
|
||||
valid users = {{ .username }}
|
||||
force user = root
|
||||
force group = root
|
||||
veto files = /{{ .veto_files | join "/" }}/
|
||||
delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (has "media" .enabled_shares) }}
|
||||
[media]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /media
|
||||
|
||||
valid users = {{ .username }}
|
||||
force user = root
|
||||
force group = root
|
||||
veto files = /{{ .veto_files | join "/" }}/
|
||||
delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (has "sda8" .enabled_shares) }}
|
||||
[sda8]
|
||||
browseable = yes
|
||||
writeable = yes
|
||||
path = /mnt/sda8
|
||||
|
||||
valid users = {{ .username }}
|
||||
force user = root
|
||||
force group = root
|
||||
veto files = /{{ .veto_files | join "/" }}/
|
||||
delete veto files = {{ eq (len .veto_files) 0 | ternary "no" "yes" }}
|
||||
{{ end }}
|
||||
{{- $dfdisk := list "config" "addons" "ssl" "share" "backup" "media" "addon_configs" }}
|
||||
{{- $disks := concat $dfdisk (compact .moredisks|default list) -}}
|
||||
{{- $root := . -}}
|
||||
{{- range $disk := $disks -}}
|
||||
{{- $acld := false -}}
|
||||
{{- range $dd := $root.acl -}}
|
||||
{{- $ndisk := $disk | regexFind "[A-Za-z0-9_]+$" -}}
|
||||
{{- if eq ($dd.share|upper) ($ndisk|upper) -}}
|
||||
{{- $def := deepCopy $dd }}
|
||||
{{- $acld = true -}}
|
||||
{{- if not $dd.disabled -}}
|
||||
{{- $_ := set $dd "share" $disk -}}
|
||||
{{- if has $disk $dfdisk -}}
|
||||
{{- $_ := set $def "timemachine" false -}}
|
||||
{{- $_ := set $def "usage" "" -}}
|
||||
{{- else -}}
|
||||
{{- $_ := set $def "timemachine" true -}}
|
||||
{{- $_ := set $def "usage" "media" -}}
|
||||
{{- end }}
|
||||
{{- template "SHT" deepCopy $root | mergeOverwrite $def $dd -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- if not $acld -}}
|
||||
{{- $dd := dict "share" $disk "timemachine" true -}}
|
||||
{{- $_ := set $dd "usage" "media" -}}
|
||||
{{- if has $disk $dfdisk -}}
|
||||
{{- $_ := set $dd "timemachine" false -}}
|
||||
{{- $_ := set $dd "usage" "" -}}
|
||||
{{- end }}
|
||||
{{- template "SHT" (deepCopy $root | mergeOverwrite $dd) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
Reference in New Issue
Block a user