diff --git a/letsencrypt/config.json b/letsencrypt/config.json index 8dea4dc..0eccdd2 100644 --- a/letsencrypt/config.json +++ b/letsencrypt/config.json @@ -6,7 +6,8 @@ "startup": "once", "boot": "manual", "ports": { - "80/tcp": 80 + "80/tcp": 80, + "443/tcp": 443 }, "map": ["ssl"], "options": { diff --git a/samba/Dockerfile b/samba/Dockerfile index 64a8bc4..afb99e7 100644 --- a/samba/Dockerfile +++ b/samba/Dockerfile @@ -5,7 +5,7 @@ ENV VERSION %%VERSION%% ENV LANG C.UTF-8 # Setup base -RUN apk add --no-cache samba-server jq +RUN apk add --no-cache jq samba-server samba-common-tools # Copy data COPY run.sh / diff --git a/samba/README.md b/samba/README.md index 0b7d7da..444610c 100644 --- a/samba/README.md +++ b/samba/README.md @@ -7,3 +7,6 @@ Expose HassIO folders to samba share. - `guest`: default true. Allow access without login - `username`: username without guest access - `password`: password for login. +- `map_config`: Expose config folder. +- `map_addons`: Expose addons folder. +- `map_ssl`: Expose ssl folder. diff --git a/samba/config.json b/samba/config.json index b78af6e..b07a705 100644 --- a/samba/config.json +++ b/samba/config.json @@ -1,6 +1,6 @@ { "name": "Samba share", - "version": "0.1", + "version": "0.2", "slug": "samba", "description": "Expose HassIO folders with samba", "startup": "after", @@ -10,14 +10,20 @@ }, "map": ["config", "ssl", "addons"], "options": { - "workgroup": "WORKGROUP", - "guest": true, - "username": "", - "password": "" + "workgroup": "WORKGROUP", + "guest": true, + "map_config": true, + "map_addons": true, + "map_ssl": false, + "username": "", + "password": "" }, "schema": { "workgroup": "str", "guest": "bool", + "map_config": "bool", + "map_addons": "bool", + "map_ssl": "bool", "username": "str", "password": "str" } diff --git a/samba/run.sh b/samba/run.sh index c6d0ac6..a11949a 100644 --- a/samba/run.sh +++ b/samba/run.sh @@ -7,24 +7,85 @@ WORKGROUP=$(jq --raw-output ".workgroup // empty" $CONFIG_PATH) GUEST=$(jq --raw-output ".guest // empty" $CONFIG_PATH) USERNAME=$(jq --raw-output ".username // empty" $CONFIG_PATH) PASSWORD=$(jq --raw-output ".password // empty" $CONFIG_PATH) +MAP_CONFIG=$(jq --raw-output ".map_config // empty" $CONFIG_PATH) +MAP_ADDONS=$(jq --raw-output ".map_addons // empty" $CONFIG_PATH) +MAP_SSL=$(jq --raw-output ".map_ssl // empty" $CONFIG_PATH) + +SMB_CONFIG=" +[config] + browseable = yes + writeable = yes + path = /config + + #guest ok = yes + #guest only = yes + #public = yes + + #valid users = $USERNAME + #force user = root + #force group = root +" + +SMB_SSL=" +[ssl] + browseable = yes + writeable = yes + path = /ssl + + #guest ok = yes + #guest only = yes + #public = yes + + #valid users = $USERNAME + #force user = root + #force group = root +" + +SMB_ADDONS=" +[addons] + browseable = yes + writeable = yes + path = /addons + + #guest ok = yes + #guest only = yes + #public = yes + + #valid users = $USERNAME + #force user = root + #force group = root +" sed -i "s/%%WORKGROUP%%/$WORKGROUP/g" /etc/smb.conf -if [ $GUEST == "true" ]; then - echo " guest ok = yes" >> /etc/smb.conf - echo " guest only = yes" >> /etc/smb.conf - echo " public = yes" >> /etc/smb.conf +## +# Write shares to config +if [ "$MAP_CONFIG" == "true" ]; then + echo "$SMB_CONFIG" >> /etc/smb.conf +fi +if [ "$MAP_ADDONS" == "true" ]; then + echo "$SMB_ADDONS" >> /etc/smb.conf +fi +if [ "$MAP_SSL" == "true" ]; then + echo "$SMB_SSL" >> /etc/smb.conf +fi +## +# Set authentication options +if [ "$GUEST" == "true" ]; then + sed -i "s/#guest ok/guest ok/g" /etc/smb.conf + sed -i "s/#guest only/guest only/g" /etc/smb.conf sed -i "s/#guest account/guest account/g" /etc/smb.conf sed -i "s/#map to guest/map to guest/g" /etc/smb.conf + sed -i "s/#public/public/g" /etc/smb.conf else - echo " valid users = $USERNAME" >> /etc/smb.conf - echo " force user = root" >> /etc/smb.conf - echo " force group = root" >> /etc/smb.conf + sed -i "s/#valid users/valid users/g" /etc/smb.conf + sed -i "s/#force user/force user/g" /etc/smb.conf + sed -i "s/#force group/force group/g" /etc/smb.conf - addgroup -g 1000 $USERNAME - adduser -D -H -G $USERNAME -s /bin/false -u 1000 $USERNAME - echo -e "$PASSWORD\n$PASSWORD" | smbpasswd -a -s -c /etc/smb.conf $USERNAME + addgroup -g 1000 "$USERNAME" + adduser -D -H -G "$USERNAME" -s /bin/false -u 1000 "$USERNAME" + echo -e "$PASSWORD\n$PASSWORD" | smbpasswd -a -s -c /etc/smb.conf "$USERNAME" fi exec smbd -F -S -s /etc/smb.conf < /dev/null diff --git a/samba/smb.conf b/samba/smb.conf index c342e5e..00b2a86 100644 --- a/samba/smb.conf +++ b/samba/smb.conf @@ -10,8 +10,3 @@ #guest account = root #map to guest = Bad User - -[config] - browseable = yes - writeable = yes - path = /config diff --git a/ssh/config.json b/ssh/config.json index 5aa056c..0eb12e5 100644 --- a/ssh/config.json +++ b/ssh/config.json @@ -1,6 +1,6 @@ { "name": "SSH server", - "version": "0.3", + "version": "0.4", "slug": "ssh", "description": "Connect to your server over SSH", "startup": "before", diff --git a/ssh/run.sh b/ssh/run.sh index 7debbb1..7ee6dcb 100644 --- a/ssh/run.sh +++ b/ssh/run.sh @@ -27,4 +27,4 @@ else fi # start server -exec /usr/bin/sshd -D -f /etc/sshd_config < /dev/null +exec /usr/sbin/sshd -D < /dev/null