open-notebook/deploy.sh

62 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Open Notebook Deployment Script for Netcup RS 8000
set -e
DEPLOY_DIR="/opt/websites/open-notebook"
REMOTE="netcup"
echo "=== Open Notebook Deployment ==="
# Check if we're running locally or on server
if [[ "$1" == "local" ]]; then
echo "Running locally - will SSH to deploy..."
# Sync files to server
echo "[1/5] Syncing files to $REMOTE:$DEPLOY_DIR..."
ssh $REMOTE "mkdir -p $DEPLOY_DIR"
scp docker-compose.yml docker.env README.md $REMOTE:$DEPLOY_DIR/
# Execute deployment on server
echo "[2/5] Deploying on server..."
ssh $REMOTE "cd $DEPLOY_DIR && docker compose pull"
ssh $REMOTE "cd $DEPLOY_DIR && docker compose up -d"
# Pull Ollama models if needed
echo "[3/5] Checking Ollama models..."
ssh $REMOTE "docker exec ollama ollama list | grep -q llama3.2:3b || docker exec ollama ollama pull llama3.2:3b"
ssh $REMOTE "docker exec ollama ollama list | grep -q nomic-embed-text || docker exec ollama ollama pull nomic-embed-text"
echo "[4/5] Waiting for container to be healthy..."
sleep 10
echo "[5/5] Checking status..."
ssh $REMOTE "docker ps | grep open-notebook"
echo ""
echo "=== Deployment Complete ==="
echo "Access Open Notebook at:"
echo " - Local: http://159.195.32.209:8502"
echo " - After DNS setup: https://notebook.jeffemmett.com"
echo ""
echo "Don't forget to:"
echo " 1. Add API keys to docker.env for STT/TTS features"
echo " 2. Configure Cloudflare tunnel hostname"
echo " 3. Add DNS CNAME record"
else
# Running on server
echo "Running on server..."
cd $DEPLOY_DIR
docker compose pull
docker compose up -d
echo "Checking Ollama models..."
docker exec ollama ollama list | grep -q llama3.2:3b || docker exec ollama ollama pull llama3.2:3b
docker exec ollama ollama list | grep -q nomic-embed-text || docker exec ollama ollama pull nomic-embed-text
echo "Deployment complete!"
docker ps | grep open-notebook
fi