openagenticresearch / scripts /docker-entrypoint.sh
Leon4gr45's picture
Upload folder using huggingface_hub
0554601 verified
#!/bin/sh
set -e
# Capture runtime UID/GID from environment variables, defaulting to 1000
PUID=${USER_UID:-1000}
PGID=${USER_GID:-1000}
# Adjust the node user's UID/GID if they differ from the runtime request
# and fix volume ownership only when a remap is needed
changed=0
if [ "$(id -u node)" -ne "$PUID" ]; then
echo "Updating node UID to $PUID"
usermod -o -u "$PUID" node
changed=1
fi
if [ "$(id -g node)" -ne "$PGID" ]; then
echo "Updating node GID to $PGID"
groupmod -o -g "$PGID" node
usermod -g "$PGID" node
changed=1
fi
if [ "$changed" = "1" ]; then
chown -R node:node /paperclip
fi
export PAPERCLIP_DEPLOYMENT_MODE=authenticated
export PAPERCLIP_DEPLOYMENT_EXPOSURE=public
# In background, wait a bit for server to start up, then bootstrap CEO
(
sleep 10
export PAPERCLIP_DEPLOYMENT_MODE=authenticated
export PAPERCLIP_DEPLOYMENT_EXPOSURE=public
echo "Onboarding environment and bootstrapping CEO..."
echo "Running default setup manually..." > /paperclip/bootstrap_logs.txt
mkdir -p /paperclip/instances/default/db
mkdir -p /paperclip/instances/default/data/logs
mkdir -p /paperclip/instances/default/data/artifacts
cat << JSONEOF > /paperclip/instances/default/config.json
{
"\$meta": {
"version": 1,
"createdAt": "2026-04-06T19:20:00.000Z",
"updatedAt": "2026-04-06T19:20:00.000Z",
"source": "onboard"
},
"instanceId": "default",
"deployment": {
"exposure": "public",
"mode": "authenticated",
"authOrigin": null,
"uiMode": "static"
},
"database": {
"engine": "embedded-postgres",
"path": "/paperclip/instances/default/db"
},
"server": {
"port": 7860
},
"storage": {
"engine": "local",
"root": "/paperclip/instances/default/data/artifacts"
},
"logging": {
"level": "info",
"dir": "/paperclip/instances/default/data/logs",
"mode": "file"
},
"agent": {
"jwtSecret": "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"
}
}
JSONEOF
echo "Wrote default config.json. Bootstrapping CEO and generating invite URL..." >> /paperclip/bootstrap_logs.txt
# try running it from root instead of explicit paths
PAPERCLIP_DEPLOYMENT_MODE=authenticated PAPERCLIP_DEPLOYMENT_EXPOSURE=public PAPERCLIP_HOME=/paperclip PAPERCLIP_INSTANCE_ID=default gosu node npm run start -- auth bootstrap-ceo >> /paperclip/bootstrap_logs.txt 2>&1
) &
export PAPERCLIP_DEPLOYMENT_MODE=authenticated
export PAPERCLIP_DEPLOYMENT_EXPOSURE=public
export PAPERCLIP_HOME=/paperclip
export PAPERCLIP_INSTANCE_ID=default
exec gosu node "$@"