Update OpenRouter API key variable in librechat.yaml #9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy to VBRL Server | |
| on: | |
| push: | |
| branches: | |
| - vbrl_main | |
| workflow_dispatch: | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Install SSH Key | |
| uses: shimataro/ssh-key-action@v2 | |
| with: | |
| key: ${{ secrets.SECRET_KEY_SSH_PRIVATE }} | |
| known_hosts: 'unnecessary' | |
| if_key_exists: replace | |
| - name: Add host key to known_hosts | |
| run: | | |
| mkdir -p ~/.ssh | |
| ssh-keyscan -H 13.61.144.55 >> ~/.ssh/known_hosts | |
| - name: Deploy to server | |
| env: | |
| OPENROUTER_KEY: ${{ secrets.OPENROUTER_EGOR_KEY }} | |
| SERVER_HOST: "13.61.144.55" | |
| SERVER_USER: "ubuntu" | |
| run: | | |
| ssh -o StrictHostKeyChecking=accept-new ${SERVER_USER}@${SERVER_HOST} << 'EOF' | |
| # Create backup of current deployment if it exists | |
| if [ -d "~/LibreChat" ]; then | |
| echo "Creating backup of current deployment..." | |
| timestamp=$(date +%Y%m%d_%H%M%S) | |
| sudo cp -r ~/LibreChat ~/LibreChat_backup_$timestamp | |
| fi | |
| # Clone or update repository | |
| if [ -d "~/LibreChat" ]; then | |
| echo "Updating existing repository..." | |
| cd ~/LibreChat | |
| git fetch origin | |
| git reset --hard origin/vbrl_main | |
| else | |
| echo "Cloning repository..." | |
| git clone https://github.com/${{ github.repository }}.git ~/LibreChat | |
| cd ~/LibreChat | |
| git checkout vbrl_main | |
| fi | |
| # Docker and Docker Compose are already installed on the server | |
| echo "Using existing Docker and Docker Compose installation..." | |
| # Create or update .env file | |
| echo "Configuring environment variables..." | |
| cd ~/LibreChat | |
| if [ ! -f ".env" ]; then | |
| cp .env.example .env | |
| fi | |
| # Configure environment variables | |
| echo "Creating .env file..." | |
| echo "PORT=80" > .env | |
| echo "HOST=0.0.0.0" >> .env | |
| echo "MONGO_URI=mongodb://mongodb:27017/LibreChat" >> .env | |
| echo "DOMAIN=libre.vbrl.ai" >> .env | |
| echo "DOMAIN_CLIENT=https://libre.vbrl.ai" >> .env | |
| echo "DOMAIN_SERVER=https://libre.vbrl.ai" >> .env | |
| echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_EGOR_KEY }}" >> .env | |
| echo "OPENROUTER_ENABLED=true" >> .env | |
| echo "OPENROUTER_KEY=${{ secrets.OPENROUTER_EGOR_KEY }}" >> .env | |
| echo "ENDPOINTS=openAI,assistants,azureOpenAI,google,gptPlugins,anthropic" >> .env | |
| echo "SEARCH=true" >> .env | |
| echo "MEILI_NO_ANALYTICS=true" >> .env | |
| echo "MEILI_HOST=http://meilisearch:7700" >> .env | |
| echo "MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt" >> .env | |
| echo "JWT_SECRET=$(openssl rand -hex 32)" >> .env | |
| echo "JWT_REFRESH_SECRET=$(openssl rand -hex 32)" >> .env | |
| echo "CREDS_KEY=$(openssl rand -hex 32)" >> .env | |
| echo "CREDS_IV=$(openssl rand -hex 16)" >> .env | |
| echo "ALLOW_EMAIL_LOGIN=true" >> .env | |
| echo "ALLOW_REGISTRATION=true" >> .env | |
| echo "ALLOW_SOCIAL_LOGIN=true" >> .env | |
| echo "ALLOW_SOCIAL_REGISTRATION=true" >> .env | |
| echo "GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }}" >> .env | |
| echo "GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }}" >> .env | |
| echo "GOOGLE_CALLBACK_URL=https://libre.vbrl.ai/oauth/google/callback" >> .env | |
| echo "ALLOW_PASSWORD_RESET=false" >> .env | |
| echo "ALLOW_UNVERIFIED_EMAIL_LOGIN=true" >> .env | |
| echo "EMAIL_DOMAIN_RESTRICTION=vbrl.ai" >> .env | |
| echo "UID=0" >> .env | |
| echo "GID=0" >> .env | |
| echo "Environment file created successfully." | |
| # Cloudflare is already handling SSL and domain routing, no need for Nginx | |
| # The librechat.yaml file is already in the repository | |
| echo "Using librechat.yaml from the repository..." | |
| # Update docker-compose.yml to mount librechat.yaml | |
| echo "Updating docker-compose.yml to mount librechat.yaml..." | |
| if ! grep -q "./librechat.yaml:/app/librechat.yaml" ~/LibreChat/docker-compose.yml; then | |
| sed -i '/- .\/logs:\/app\/api\/logs/a\\ - .\/librechat.yaml:\/app\/librechat.yaml' ~/LibreChat/docker-compose.yml | |
| fi | |
| # Deploy with Docker Compose | |
| echo "Deploying with Docker Compose..." | |
| cd ~/LibreChat | |
| # Stop any running containers | |
| sudo docker compose down | |
| # Build the images locally (instead of just pulling) | |
| echo "Building Docker images..." | |
| sudo docker compose build | |
| # Start the application | |
| sudo docker compose up -d | |
| echo "Deployment completed successfully!" | |
| EOF |