Compare commits

..

8 Commits

Author SHA1 Message Date
70328c7a0c fix gog config symlink for persistent auth tokens 2026-04-21 09:43:22 -04:00
2250b25319 fix gateway ssh and tailscale serve config 2026-04-17 21:46:25 -04:00
Tim Bendt
9844d756ce cache dir 2026-04-17 09:58:00 -04:00
49a98b68ca fix: remove .config symlinks and volume mount, use direct gog/gws paths 2026-04-16 22:02:55 +00:00
1738ef05a4 fix: mount /home/node/.config explicitly and init perms for .config 2026-04-16 21:29:49 +00:00
146243e5f4 fix: add /config to init perms (for .config) 2026-04-16 21:22:52 +00:00
6a6a94dfe6 fix: add gws config directory and fix gog symlink path (merged)
- Add /home/node/.openclaw/gws directory for Google Workspace CLI
- Fix gog symlink from .config/gog to .config/gogcli (correct path)
- Add symlink for gws at .config/gws
- Update init-perms to create gog, ssh, and gws subdirectories
- Merge with remote changes (opt/openclaw/defaults)
2026-04-16 20:25:56 +00:00
c99960307e fix: add gws config directory and fix gog symlink path
- Add /home/node/.openclaw/gws directory for Google Workspace CLI
- Fix gog symlink from .config/gog to .config/gogcli (correct path)
- Add symlink for gws at .config/gws
- Update init-perms to create gog, ssh, and gws subdirectories
2026-04-16 20:25:09 +00:00
4 changed files with 19 additions and 53 deletions

View File

@@ -9,7 +9,7 @@ services:
[ [
"sh", "sh",
"-c", "-c",
"mkdir -p /config /workspace && chown -R 1000:1000 /config /workspace && chmod 755 /config /workspace", "mkdir -p /config/gog /config/ssh /config/gws /config && chown -R 1000:1000 /config /workspace /config && chmod 755 /config /workspace",
] ]
volumes: volumes:
- openclaw-config:/config - openclaw-config:/config
@@ -33,7 +33,7 @@ services:
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
MOONSHOT_API_KEY: ${MOONSHOT_API_KEY} MOONSHOT_API_KEY: ${MOONSHOT_API_KEY}
OPENAI_API_KEY: ${OPENAI_API_KEY} OPENAI_API_KEY: ${OPENAI_API_KEY}
OPENCLAW_GATEWAY_BIND: ${OPENCLAW_GATEWAY_BIND:-lan} OPENCLAW_GATEWAY_BIND: ${OPENCLAW_GATEWAY_BIND:-}
OPENCLAW_TAILSCALE_MODE: ${OPENCLAW_TAILSCALE_MODE:-off} OPENCLAW_TAILSCALE_MODE: ${OPENCLAW_TAILSCALE_MODE:-off}
OPENCLAW_ENABLE_TAILSCALE: ${OPENCLAW_ENABLE_TAILSCALE:-0} OPENCLAW_ENABLE_TAILSCALE: ${OPENCLAW_ENABLE_TAILSCALE:-0}
GOG_ACCOUNT: ${GOG_ACCOUNT:-} GOG_ACCOUNT: ${GOG_ACCOUNT:-}

View File

@@ -45,7 +45,7 @@ RUN echo '#!/bin/sh' > /home/node/.local/bin/tailscale-start.sh && \
echo 'sleep 3' >> /home/node/.local/bin/tailscale-start.sh && \ echo 'sleep 3' >> /home/node/.local/bin/tailscale-start.sh && \
echo 'if [ -n "$TAILSCALE_AUTH_KEY" ]; then tailscale --socket=/tmp/tailscale.sock up --authkey="$TAILSCALE_AUTH_KEY" --hostname="${TAILSCALE_HOSTNAME:-openclaw-gateway}" || true; fi' >> /home/node/.local/bin/tailscale-start.sh && \ echo 'if [ -n "$TAILSCALE_AUTH_KEY" ]; then tailscale --socket=/tmp/tailscale.sock up --authkey="$TAILSCALE_AUTH_KEY" --hostname="${TAILSCALE_HOSTNAME:-openclaw-gateway}" || true; fi' >> /home/node/.local/bin/tailscale-start.sh && \
echo 'sleep 2' >> /home/node/.local/bin/tailscale-start.sh && \ echo 'sleep 2' >> /home/node/.local/bin/tailscale-start.sh && \
echo 'tailscale --socket=/tmp/tailscale.sock serve --bg 18789 || true' >> /home/node/.local/bin/tailscale-start.sh && \ echo 'if [ "${OPENCLAW_TAILSCALE_MODE:-off}" = "serve" ]; then tailscale --socket=/tmp/tailscale.sock serve --bg 18789 || true; fi' >> /home/node/.local/bin/tailscale-start.sh && \
chmod +x /home/node/.local/bin/tailscale-start.sh chmod +x /home/node/.local/bin/tailscale-start.sh
# Copy custom tools into the image # Copy custom tools into the image
@@ -54,17 +54,17 @@ COPY bin/* /usr/local/bin/
RUN chmod +x /usr/local/bin/* RUN chmod +x /usr/local/bin/*
# Create directories in the persistent volume location # Create directories in the persistent volume location
RUN mkdir -p /home/node/.openclaw/ssh /home/node/.openclaw/gog /opt/openclaw/defaults \ RUN mkdir -p /var/tmp/openclaw-compile-cache /home/node/.openclaw/ssh /home/node/.openclaw/gog /home/node/.openclaw/gws /opt/openclaw/defaults \
&& chown -R node:node /home/node/.openclaw && chown -R node:node /home/node/.openclaw /opt/openclaw/defaults /var/tmp/openclaw-compile-cache
# Link gog config and ssh to standard locations # Link gog config and ssh to standard locations
RUN mkdir -p /home/node/.config /home/node/.ssh \ RUN mkdir -p /home/node/.config \
&& ln -sf /home/node/.openclaw/gog /home/node/.config/gog \ && ln -sf /home/node/.openclaw/gog /home/node/.config/gog \
&& ln -sf /home/node/.openclaw/ssh /home/node/.ssh && rm -rf /home/node/.ssh \
&& ln -s /home/node/.openclaw/ssh /home/node/.ssh
# Copy default config into the image # Copy default config into the image
COPY config/openclaw.json /opt/openclaw/defaults/openclaw.json COPY config/openclaw.json /opt/openclaw/defaults/openclaw.json
RUN chown -R node:node /opt/openclaw/defaults
# Switch back to node user # Switch back to node user
USER node USER node

View File

@@ -4,9 +4,17 @@ set -eu
CONFIG_DIR="${HOME:-/home/node}/.openclaw" CONFIG_DIR="${HOME:-/home/node}/.openclaw"
CONFIG_FILE="${CONFIG_DIR}/openclaw.json" CONFIG_FILE="${CONFIG_DIR}/openclaw.json"
DEFAULT_CONFIG="/opt/openclaw/defaults/openclaw.json" DEFAULT_CONFIG="/opt/openclaw/defaults/openclaw.json"
BIND="${OPENCLAW_GATEWAY_BIND:-lan}"
TAILSCALE_MODE="${OPENCLAW_TAILSCALE_MODE:-off}" TAILSCALE_MODE="${OPENCLAW_TAILSCALE_MODE:-off}"
PORT="${OPENCLAW_GATEWAY_PORT:-18789}" PORT="${OPENCLAW_GATEWAY_PORT:-18789}"
RAW_BIND="${OPENCLAW_GATEWAY_BIND:-}"
if [ -n "${RAW_BIND}" ]; then
BIND="${RAW_BIND}"
elif [ "${TAILSCALE_MODE}" = "serve" ]; then
BIND="loopback"
else
BIND="lan"
fi
mkdir -p "${CONFIG_DIR}" mkdir -p "${CONFIG_DIR}"
@@ -29,7 +37,9 @@ jq \
.gateway.bind = $bind | .gateway.bind = $bind |
.gateway.tailscale.mode = $tailscale_mode | .gateway.tailscale.mode = $tailscale_mode |
.gateway.auth.mode = "token" | .gateway.auth.mode = "token" |
.gateway.auth.allowTailscale = ($tailscale_mode == "serve") |
.gateway.auth.token = (if $token == "" then (.gateway.auth.token // "${OPENCLAW_GATEWAY_TOKEN}") else $token end) | .gateway.auth.token = (if $token == "" then (.gateway.auth.token // "${OPENCLAW_GATEWAY_TOKEN}") else $token end) |
.gateway.trustedProxies = (((.gateway.trustedProxies // []) + (if $tailscale_mode == "serve" then ["127.0.0.1", "::1"] else [] end)) | unique) |
.gateway.controlUi.allowInsecureAuth = true | .gateway.controlUi.allowInsecureAuth = true |
.models.providers.openai = { .models.providers.openai = {
baseUrl: "https://api.openai.com/v1", baseUrl: "https://api.openai.com/v1",

View File

@@ -1,44 +0,0 @@
version: "3.8"
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE:-registry.lan/openclaw:latest}
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
MOONSHOT_API_KEY: ${MOONSHOT_API_KEY}
OPENAI_API_KEY: ${OPENAI_API_KEY}
OPENCLAW_GATEWAY_BIND: ${OPENCLAW_GATEWAY_BIND:-lan}
OPENCLAW_TAILSCALE_MODE: ${OPENCLAW_TAILSCALE_MODE:-off}
OPENCLAW_ENABLE_TAILSCALE: ${OPENCLAW_ENABLE_TAILSCALE:-0}
GOG_ACCOUNT: ${GOG_ACCOUNT:-}
volumes:
- openclaw-config:/home/node/.openclaw
- openclaw-workspace:/home/node/.openclaw/workspace
ports:
- target: 18789
published: ${OPENCLAW_GATEWAY_PORT:-18789}
protocol: tcp
mode: host
- target: 18790
published: ${OPENCLAW_BRIDGE_PORT:-18790}
protocol: tcp
mode: host
init: true
deploy:
replicas: 1
placement:
constraints:
- node.hostname == tpi-n1
networks:
- dokploy-network
command: ["/usr/local/bin/start-gateway.sh"]
volumes:
openclaw-config:
openclaw-workspace:
networks:
dokploy-network:
external: true