Help us improve
Share bugs, ideas, or general feedback.
From the-local
Deploy changed files to The Local server at 143.110.221.2. Handles scp for asset/template files (no container restart needed) and git pull + force-recreate for structural changes.
npx claudepluginhub design-machines-studio/depot --plugin the-localHow this command is triggered — by the user, by Claude, or both
Slash command
/the-local:deploy [service|file]Files this command reads when invoked
This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
Deploy changed files from the local repo to The Local server at `root@143.110.221.2`. ## What to Deploy Determine from context what has changed. The user may specify a file, service, or say "deploy everything". ## Deployment Methods **Use scp** for files served via Docker bind mounts (preserves inode — container sees change immediately, no restart needed): - `assets/custom.css` → `/opt/thelocal/assets/custom.css` - `assets/index.html` → `/opt/thelocal/assets/index.html` - `welcome/index.html` → `/opt/thelocal/welcome/index.html` - `element-config.json` → `/opt/thelocal/element-config.js...
/deployGenerates GitHub Actions workflow to build and deploy VitePress wiki site to GitHub Pages after checking for wiki directory and existing workflows.
/deployDeploys an existing PortalJS portal to Vercel or produces a static build for any host. Auto-detects target, builds, and publishes with a live URL.
/deployDeploys app to staging/production/preview with pre/post checks. Auto-detects method (Vercel/Netlify/Docker/Kubernetes/SSH/GitHub Pages), tags deploys, verifies health, outputs status and rollback.
/deployDeploys current project to Vercel via CLI with preflight checks. Defaults to preview; pass 'prod' or 'production' for production with explicit confirmation.
/deployRuns pre-flight checks (env validation, migrations, bundle size, ship audit), deploys the project, and performs production health check.
/deployGuides deployment of Kotlin/Next.js services to Railway (default), AWS, or GCP with pre-flight checks, config templates, and step-by-step instructions.
Share bugs, ideas, or general feedback.
Deploy changed files from the local repo to The Local server at root@143.110.221.2.
Determine from context what has changed. The user may specify a file, service, or say "deploy everything".
Use scp for files served via Docker bind mounts (preserves inode — container sees change immediately, no restart needed):
assets/custom.css → /opt/thelocal/assets/custom.cssassets/index.html → /opt/thelocal/assets/index.htmlwelcome/index.html → /opt/thelocal/welcome/index.htmlelement-config.json → /opt/thelocal/element-config.jsontemplates/*.html, templates/*.txt → /opt/thelocal/templates/Use git pull + force-recreate when docker-compose.yml, Caddyfile, homeserver.yaml, or multiple files have changed:
ssh root@143.110.221.2 'cd /opt/thelocal && git pull && docker compose up -d --force-recreate element'
After Synapse config changes (homeserver.yaml), regenerate the .active file and restart:
ssh root@143.110.221.2 'cd /opt/thelocal && source .env && \
sed -e "s|%%POSTGRES_PASSWORD%%|${POSTGRES_PASSWORD}|g" \
-e "s|%%REGISTRATION_SECRET%%|${REGISTRATION_SECRET}|g" \
-e "s|%%MACAROON_SECRET%%|${MACAROON_SECRET}|g" \
-e "s|%%FORM_SECRET%%|${FORM_SECRET}|g" \
-e "s|%%RESEND_API_KEY%%|${RESEND_API_KEY}|g" \
homeserver.yaml > homeserver.yaml.active && docker compose restart synapse'
git status or ask the user)Cmd+Shift+R or Ctrl+Shift+R)# Deploy only custom.css
scp assets/custom.css root@143.110.221.2:/opt/thelocal/assets/custom.css
# Deploy all templates
scp templates/*.html templates/*.txt root@143.110.221.2:/opt/thelocal/templates/
# Deploy element config
scp element-config.json root@143.110.221.2:/opt/thelocal/element-config.json
# Deploy welcome page
scp welcome/index.html root@143.110.221.2:/opt/thelocal/welcome/index.html
After deploying assets/index.html (which contains the CSS version number), also restart element to ensure the bind mount inode is correct — or use --force-recreate if the file was previously git-pulled.