Skip to content

Deploy

Deploy #48

Workflow file for this run

name: Deploy
on:
workflow_run:
workflows: ["Publish Docker image"]
types:
- completed
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}
steps:
- name: SSH connect and update Docker image
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.VPS_HOST }}
USERNAME: ${{ secrets.VPS_USERNAME }}
PORT: ${{ secrets.VPS_PORT }}
KEY: ${{ secrets.VPS_SSHKEY }}
script: |
# Check if Docker is installed
if ! command -v docker &> /dev/null; then
echo "Error: Docker is not installed. Exiting..."
exit 1
else
echo "Docker is installed."
docker --version
fi
# Check if Docker Compose is installed
if ! command -v docker-compose &> /dev/null; then
echo "Error: Docker Compose is not installed. Exiting..."
exit 1
else
echo "Docker Compose is installed."
docker-compose --version
fi
workdir=/opt/ChatGPT-Next-Web-Temp
if [ ! -d "$workdir" ]; then
mkdir $workdir
fi
cd $workdir
wget -O docker-compose.yml https://raw.githubusercontent.com/durianice/ChatGPT-Next-Web/main/docker-compose.yml
if ! [[ -e docker-compose.yml ]]; then
echo "docker-compose.yml does not exist."
rm -r $workdir
exit 1
fi
echo "OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }}" > .env
echo "CODE=${{ secrets.WEB_PWD }}" >> .env
echo "PROXY_URL=${{ vars.PROXY_URL }}" >> .env
echo "BASE_URL=${{ vars.BASE_URL }}" >> .env
echo "OPENAI_ORG_ID=${{ vars.OPENAI_ORG_ID }}" >> .env
echo "HIDE_USER_API_KEY=${{ vars.HIDE_USER_API_KEY }}" >> .env
echo "DISABLE_GPT4=${{ vars.DISABLE_GPT4 }}" >> .env
echo "ENABLE_BALANCE_QUERY=${{ vars.ENABLE_BALANCE_QUERY }}" >> .env
echo "DISABLE_FAST_LINK=${{ vars.DISABLE_FAST_LINK }}" >> .env
echo "OPENAI_SB=${{ vars.OPENAI_SB }}" >> .env
echo "CUSTOM_MODELS=${{ vars.CUSTOM_MODELS }}" >> .env
echo "DISABLE_FAST_LINK=${{ vars.DISABLE_FAST_LINK }}" >> .env
docker-compose --profile no-proxy down
docker-compose --profile no-proxy pull
docker-compose --profile no-proxy up -d
# docker image prune -f
rm -r $workdir