Fixes #603 by not recreating existing unix groups and users

pull/612/head
Zef Hemel 2023-12-18 17:18:58 +01:00
parent 9ca1382cf1
commit 8c14087a2c
3 changed files with 9 additions and 7 deletions

View File

@ -1,4 +1,4 @@
FROM lukechannings/deno:v1.38.5 FROM lukechannings/deno:v1.39.0
# The volume that will keep the space data # The volume that will keep the space data
# Either create a volume: # Either create a volume:
@ -17,7 +17,7 @@ ENV TINI_VERSION v0.19.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini
# Make sure the deno user has access to the space volume # Make sure the deno user has access to the space volume
RUN mkdir -p -m 770 /space \ RUN mkdir -p -m 777 /space \
&& chmod +x /tini \ && chmod +x /tini \
&& apt update \ && apt update \
&& apt install -y git ssh-client \ && apt install -y git ssh-client \

View File

@ -16,12 +16,14 @@ if [ "$PUID" == "0" ] || [ "$UID" != "0" ]; then
deno run -A --unstable /silverbullet.js $@ deno run -A --unstable /silverbullet.js $@
else else
# Create silverbullet user and group ad-hoc mapped to PUID and PGID # Create silverbullet user and group ad-hoc mapped to PUID and PGID
getent group silverbullet &> /dev/null || groupadd -g $PGID silverbullet getent group $PGID &> /dev/null || groupadd -g $PGID silverbullet
id -u silverbullet &> /dev/null || useradd -M -u $PUID -g $PGID silverbullet getent passwd $PUID &> /dev/null || useradd -M -u $PUID -g $PGID silverbullet
# And make sure /deno-dir (Deno cache) is accessible # And make sure /deno-dir (Deno cache) is accessible
chown -R $PUID:$PGID /deno-dir chown -R $PUID:$PGID /deno-dir
# And run via su as the newly mapped 'silverbullet' user
args="$@" args="$@"
su silverbullet -s /bin/bash -c "deno run -A --unstable /silverbullet.js $args" # And run via su as requested PUID, usually this will be 'silverbullet' but if a user with this idea already exists, we will use that
USERNAME=$(getent passwd $PUID | cut -d ":" -f 1)
echo "Running SilverBullet as $USERNAME (configured as PUID $PUID and PGID $PGID)"
su $USERNAME -s /bin/bash -c "deno run -A --unstable /silverbullet.js $args"
fi fi

View File

@ -28,7 +28,7 @@ export async function determineDatabaseBackend(
} }
const denoDb = await Deno.openKv(dbFile); const denoDb = await Deno.openKv(dbFile);
console.info( console.info(
`Using DenoKV as a database backend (${dbFile || "cloud"}.`, `Using DenoKV as a database backend (${dbFile || "cloud"}).`,
); );
return new DenoKvPrimitives(denoDb); return new DenoKvPrimitives(denoDb);
} }