Update: Habit bot token configured
- Token: 8325588419:AAGghb0nosWG8g6QtYeghqUs0RHug06uG74 - Bot: @openclaw_habbit_tracker_bot - Updated deploy_habit_bot.sh - Verified bot connection working
This commit is contained in:
95
deploy_habit_bot.sh
Normal file → Executable file
95
deploy_habit_bot.sh
Normal file → Executable file
@@ -1,62 +1,81 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Deploy Habit & Diet Bot to Ubuntu
|
# =============================================================================
|
||||||
# Run on 192.168.0.147
|
# Habit Bot Deployment Script
|
||||||
|
# Deploys habit_bot.py to Ubuntu server with systemd
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
APP_DIR="/home/joungmin/habit_bot"
|
# Configuration
|
||||||
VENV_DIR="$APP_DIR/venv"
|
SERVER="192.168.0.147"
|
||||||
|
USER="joungmin"
|
||||||
|
REMOTE_DIR="/home/joungmin/habit_bot"
|
||||||
|
SERVICE_NAME="habit-bot"
|
||||||
|
BOT_TOKEN="8325588419:AAGghb0nosWG8g6QtYeghqUs0RHug06uG74"
|
||||||
|
|
||||||
echo "🔮 Deploying Habit & Diet Bot..."
|
echo "🚀 Deploying Habit Bot to ${SERVER}..."
|
||||||
|
|
||||||
# Create directory
|
# 1. Create remote directory
|
||||||
mkdir -p $APP_DIR
|
echo "📁 Creating remote directory..."
|
||||||
cd $APP_DIR
|
ssh ${USER}@${SERVER} "mkdir -p ${REMOTE_DIR}"
|
||||||
|
|
||||||
# Copy files
|
# 2. Copy files
|
||||||
echo "Copying files..."
|
echo "📤 Copying files..."
|
||||||
# Copy from Mac mini (run this on Mac):
|
scp habit_bot.py requirements.txt ${USER}@${SERVER}:${REMOTE_DIR}/
|
||||||
# scp -r habit_bot.py habit_bot_requirements.txt deploy_habit_bot.sh joungmin@192.168.0.147:$APP_DIR/
|
|
||||||
|
|
||||||
# Create virtual environment
|
# 3. Create virtual environment
|
||||||
if [ ! -d "$VENV_DIR" ]; then
|
echo "🐍 Creating virtual environment..."
|
||||||
python3 -m venv $VENV_DIR
|
ssh ${USER}@${SERVER} "cd ${REMOTE_DIR} && python3 -m venv venv && source venv/bin/activate && pip install -q -r requirements.txt"
|
||||||
fi
|
|
||||||
|
|
||||||
# Install dependencies
|
# 4. Create environment file
|
||||||
source $VENV_DIR/bin/activate
|
echo "🔐 Creating environment file..."
|
||||||
pip install -q -r $APP_DIR/habit_bot_requirements.txt
|
ssh ${USER}@${SERVER} "cat > ${REMOTE_DIR}/.env << 'EOF'
|
||||||
|
TELEGRAM_BOT_TOKEN=${BOT_TOKEN}
|
||||||
|
HABIT_DATA_DIR=/home/joungmin/habit_bot/data
|
||||||
|
EOF"
|
||||||
|
|
||||||
# Create systemd service
|
# 5. Create data directory
|
||||||
cat > /tmp/habit-bot.service << 'EOF'
|
ssh ${USER}@${SERVER} "mkdir -p ${REMOTE_DIR}/data"
|
||||||
|
|
||||||
|
# 6. Create systemd service file
|
||||||
|
echo "📋 Creating systemd service..."
|
||||||
|
ssh ${USER}@${SERVER} "cat > /etc/systemd/system/${SERVICE_NAME}.service << 'EOF'
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Habit & Diet Telegram Bot
|
Description=OpenClaw Habit & Diet Telegram Bot
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=joungmin
|
User=joungmin
|
||||||
WorkingDirectory=/home/joungmin/habit_bot
|
WorkingDirectory=${REMOTE_DIR}
|
||||||
Environment="PATH=/home/joungmin/habit_bot/venv/bin"
|
Environment="TELEGRAM_BOT_TOKEN=${BOT_TOKEN}"
|
||||||
Environment="TELEGRAM_BOT_TOKEN=your_token_here"
|
Environment="HABIT_DATA_DIR=/home/joungmin/habit_bot/data"
|
||||||
Environment="OBSIDIAN_PATH=/Users/joungmin/Documents/Obsidian Vault"
|
ExecStart=${REMOTE_DIR}/venv/bin/python ${REMOTE_DIR}/habit_bot.py
|
||||||
Environment="ORACLE_DSN=h8i4i0g8cxtd2lpf_high"
|
|
||||||
Environment="ORACLE_USER=admin"
|
|
||||||
Environment="ORACLE_PASSWORD=your_password"
|
|
||||||
Environment="ORACLE_WALLET=/path/to/wallet"
|
|
||||||
ExecStart=/home/joungmin/habit_bot/venv/bin/python3 /home/joungmin/habit_bot/habit_bot.py
|
|
||||||
Restart=always
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF"
|
||||||
|
|
||||||
|
# 7. Reload systemd and start service
|
||||||
|
echo "🔄 Reloading systemd..."
|
||||||
|
ssh ${USER}@${SERVER} "systemctl daemon-reload"
|
||||||
|
|
||||||
|
echo "🚀 Starting ${SERVICE_NAME}..."
|
||||||
|
ssh ${USER}@${SERVER} "systemctl enable ${SERVICE_NAME} && systemctl start ${SERVICE_NAME}"
|
||||||
|
|
||||||
|
# 8. Verify
|
||||||
|
echo "✅ Verifying service..."
|
||||||
|
sleep 3
|
||||||
|
ssh ${USER}@${SERVER} "systemctl status ${SERVICE_NAME} --no-pager"
|
||||||
|
|
||||||
|
echo ""
|
||||||
echo "✅ Deployment complete!"
|
echo "✅ Deployment complete!"
|
||||||
echo ""
|
echo ""
|
||||||
echo "To start:"
|
echo "📋 Commands:"
|
||||||
echo " 1. Set TELEGRAM_BOT_TOKEN in /tmp/habit-bot.service"
|
echo " View logs: ssh ${USER}@${SERVER} 'journalctl -u ${SERVICE_NAME} -f'"
|
||||||
echo " 2. sudo cp /tmp/habit-bot.service /etc/systemd/system/"
|
echo " Stop: ssh ${USER}@${SERVER} 'sudo systemctl stop ${SERVICE_NAME}'"
|
||||||
echo " 3. sudo systemctl daemon-reload"
|
echo " Restart: ssh ${USER}@${SERVER} 'sudo systemctl restart ${SERVICE_NAME}'"
|
||||||
echo " 4. sudo systemctl start habit-bot"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Bot URL: http://localhost:3000/joungmin/openclaw-workspace"
|
echo "🤖 Bot: @openclaw_habbit_tracker_bot"
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ except ImportError:
|
|||||||
TELEGRAM_AVAILABLE = False
|
TELEGRAM_AVAILABLE = False
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
TELEGRAM_TOKEN = os.environ.get('TELEGRAM_BOT_TOKEN', '')
|
TELEGRAM_BOT_TOKEN = os.environ.get('TELEGRAM_BOT_TOKEN', '8325588419:AAGghb0nosWG8g6QtYeghqUs0RHug06uG74')
|
||||||
OBSIDIAN_PATH = os.environ.get('OBSIDIAN_PATH', '/Users/joungmin/Documents/Obsidian Vault')
|
OBSIDIAN_PATH = os.environ.get('OBSIDIAN_PATH', '/Users/joungmin/Documents/Obsidian Vault')
|
||||||
ORACLE_DSN = os.environ.get('ORACLE_DSN', 'h8i4i0g8cxtd2lpf_high')
|
ORACLE_DSN = os.environ.get('ORACLE_DSN', 'h8i4i0g8cxtd2lpf_high')
|
||||||
ORACLE_USER = os.environ.get('ORACLE_USER', 'admin')
|
ORACLE_USER = os.environ.get('ORACLE_USER', 'admin')
|
||||||
@@ -590,7 +590,7 @@ def main():
|
|||||||
print("Bot code is ready but cannot run without the library.")
|
print("Bot code is ready but cannot run without the library.")
|
||||||
return
|
return
|
||||||
|
|
||||||
app = Application.builder().token(TELEGRAM_TOKEN).build()
|
app = Application.builder().token(TELEGRAM_BOT_TOKEN).build()
|
||||||
|
|
||||||
# Commands
|
# Commands
|
||||||
app.add_handler(CommandHandler('start', start_command))
|
app.add_handler(CommandHandler('start', start_command))
|
||||||
|
|||||||
Reference in New Issue
Block a user