initial commit

This commit is contained in:
Ludwig Lehnert
2026-02-03 16:39:37 +01:00
commit 70fe6076a4
30 changed files with 2128 additions and 0 deletions

57
samba/entrypoint.sh Normal file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -euo pipefail
FILESVC_UID="${FILESVC_UID:-10050}"
FILESVC_GID="${FILESVC_GID:-10050}"
if ! getent group filesvc >/dev/null 2>&1; then
groupadd -g "${FILESVC_GID}" filesvc
fi
if ! id filesvc >/dev/null 2>&1; then
useradd -u "${FILESVC_UID}" -g filesvc -M -s /usr/sbin/nologin filesvc
fi
if [ -n "${DOMAIN_REALM:-}" ]; then
cat > /etc/krb5.conf <<EOF
[libdefaults]
default_realm = ${DOMAIN_REALM}
dns_lookup_realm = true
dns_lookup_kdc = true
EOF
fi
if [ -f /etc/samba/smb.conf.template ]; then
envsubst < /etc/samba/smb.conf.template > /etc/samba/smb.conf
fi
if ! grep -q "winbind" /etc/nsswitch.conf; then
sed -i 's/^passwd:.*/& winbind/' /etc/nsswitch.conf
sed -i 's/^group:.*/& winbind/' /etc/nsswitch.conf
fi
mkdir -p /samba-generated
touch /samba-generated/shares.generated.conf
ln -sf /samba-generated/shares.generated.conf /etc/samba/shares.generated.conf
if [ ! -f /var/lib/samba/private/secrets.tdb ]; then
if [ -z "${DOMAIN_JOIN_USER:-}" ] || [ -z "${DOMAIN_JOIN_PASSWORD:-}" ]; then
echo "DOMAIN_JOIN_USER and DOMAIN_JOIN_PASSWORD must be set to join the domain." >&2
exit 1
fi
echo "Joining AD domain ${DOMAIN_REALM}..."
net ads join -U "${DOMAIN_JOIN_USER}%${DOMAIN_JOIN_PASSWORD}"
fi
winbindd -F &
WINBIND_PID=$!
smbd -F &
SMBD_PID=$!
/usr/local/bin/watch-reload &
WATCH_PID=$!
trap 'kill ${WINBIND_PID} ${SMBD_PID} ${WATCH_PID}' TERM INT
wait -n ${WINBIND_PID} ${SMBD_PID} ${WATCH_PID}