Migrate to Docker: containerize for docker-server deployment

- Add Dockerfile + cron.js (daily 4pm UTC loop replacing EC2 cron)
- Add infra/docker-compose.yml and deploy-stack.sh for Portainer
- Support DATA_DIR env var in bot.js for persistent history volume
- Support PROMPTS_JSON env var in cron.js (no SSH needed for config)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 17:15:18 -07:00
parent ab32ef4cc2
commit dacc7604cc
8 changed files with 277 additions and 1 deletions

40
infra/docker-compose.yml Normal file
View File

@@ -0,0 +1,40 @@
services:
thejunipersky-tease:
image: ${REGISTRY}/xbot:latest
restart: unless-stopped
environment:
PROMPT_NAME: tease
PROMPTS_JSON: ${PROMPTS_JSON}
DATA_DIR: /data
ANTHROPIC: ${ANTHROPIC}
KERNEL: ${KERNEL}
THEJUNIPERSKY_USER: ${THEJUNIPERSKY_USER}
THEJUNIPERSKY_PW: ${THEJUNIPERSKY_PW}
THEJUNIPERSKY_EMAIL: ${THEJUNIPERSKY_EMAIL}
THEJUNIPERSKY_PHONE: ${THEJUNIPERSKY_PHONE}
volumes:
- xbot-data:/data
thejunipersky-personality:
image: ${REGISTRY}/xbot:latest
restart: unless-stopped
environment:
PROMPT_NAME: personality
PROMPTS_JSON: ${PROMPTS_JSON}
DATA_DIR: /data
ANTHROPIC: ${ANTHROPIC}
KERNEL: ${KERNEL}
THEJUNIPERSKY_USER: ${THEJUNIPERSKY_USER}
THEJUNIPERSKY_PW: ${THEJUNIPERSKY_PW}
THEJUNIPERSKY_EMAIL: ${THEJUNIPERSKY_EMAIL}
THEJUNIPERSKY_PHONE: ${THEJUNIPERSKY_PHONE}
volumes:
- xbot-data:/data
volumes:
xbot-data:
networks:
xbot-net:
name: xbot-net