mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-24 17:38:40 -06:00
init
This commit is contained in:
parent
9c8c2bc4ab
commit
c2e5c44a9c
@ -183,7 +183,7 @@ CONFIG_SESSION_PHONE_VERSION=2.3000.1015901307
|
||||
# Set qrcode display limit
|
||||
QRCODE_LIMIT=30
|
||||
# Color of the QRCode on base64
|
||||
QRCODE_COLOR='#175197'
|
||||
QRCODE_COLOR='#000000'
|
||||
|
||||
# Typebot - Environment variables
|
||||
TYPEBOT_ENABLED=false
|
||||
@ -210,13 +210,13 @@ DIFY_ENABLED=false
|
||||
|
||||
# Cache - Environment variables
|
||||
# Redis Cache enabled
|
||||
CACHE_REDIS_ENABLED=true
|
||||
CACHE_REDIS_ENABLED=false
|
||||
CACHE_REDIS_URI=redis://redis:6379/6
|
||||
CACHE_REDIS_TTL=604800
|
||||
# Prefix serves to differentiate data from one installation to another that are using the same redis
|
||||
CACHE_REDIS_PREFIX_KEY=evolution
|
||||
# Enabling this variable will save the connection information in Redis and not in the database.
|
||||
CACHE_REDIS_SAVE_INSTANCES=false
|
||||
CACHE_REDIS_SAVE_INSTANCES=true
|
||||
# Local Cache enabled
|
||||
CACHE_LOCAL_ENABLED=false
|
||||
|
||||
|
48
.github/workflows/publish_docker_image.yml
vendored
48
.github/workflows/publish_docker_image.yml
vendored
@ -1,48 +0,0 @@
|
||||
name: Build Docker image
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "*.*.*"
|
||||
|
||||
jobs:
|
||||
build_deploy:
|
||||
name: Build and Deploy
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: atendai/evolution-api
|
||||
tags: type=semver,pattern=v{{version}}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
- name: Image digest
|
||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
@ -1,48 +0,0 @@
|
||||
name: Build Docker image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
build_deploy:
|
||||
name: Build and Deploy
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: atendai/evolution-api
|
||||
tags: homolog
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
- name: Image digest
|
||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
@ -1,48 +0,0 @@
|
||||
name: Build Docker image
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build_deploy:
|
||||
name: Build and Deploy
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: atendai/evolution-api
|
||||
tags: latest
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
- name: Image digest
|
||||
run: echo ${{ steps.docker_build.outputs.digest }}
|
86
.github/workflows/website-backend-cloudrun.yml
vendored
Normal file
86
.github/workflows/website-backend-cloudrun.yml
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
name: Deploying API to Cloud Run
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: ["main", "dev", "qa"]
|
||||
paths:
|
||||
- "**"
|
||||
|
||||
env:
|
||||
PROJECT_ID: skysales-ai
|
||||
GAR_LOCATION: us-central1
|
||||
CR_SERVICE: wpp-provider-api
|
||||
SERVICE: klaus-cloudrun-service
|
||||
REGION: us-central1
|
||||
|
||||
jobs:
|
||||
deploy-backend:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Google Cloud SDK
|
||||
uses: google-github-actions/setup-gcloud@v2
|
||||
with:
|
||||
project_id: ${{ env.PROJECT_ID }}
|
||||
service_account_key: ${{ secrets.GCP_SA_KEY }}
|
||||
export_default_credentials: true
|
||||
|
||||
- name: Docker Auth
|
||||
uses: "docker/login-action@v1"
|
||||
with:
|
||||
username: _json_key
|
||||
password: "${{ secrets.GCP_SA_KEY }}"
|
||||
registry: "${{ env.GAR_LOCATION }}-docker.pkg.dev"
|
||||
|
||||
- name: Build and Push Container
|
||||
run: |-
|
||||
docker build \
|
||||
--build-arg SERVER_TYPE=http \
|
||||
--build-arg SERVER_PORT=8080 \
|
||||
--build-arg SERVER_URL=http://localhost:8080 \
|
||||
--build-arg CORS_ORIGIN=* \
|
||||
--build-arg CORS_METHODS=GET,POST,PUT,DELETE \
|
||||
--build-arg CORS_CREDENTIALS=true \
|
||||
--build-arg LOG_LEVEL=ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS,WEBSOCKET \
|
||||
--build-arg LOG_COLOR=true \
|
||||
--build-arg LOG_BAILEYS=error \
|
||||
--build-arg EVENT_EMITTER_MAX_LISTENERS=50 \
|
||||
--build-arg DEL_INSTANCE=false \
|
||||
--build-arg DATABASE_PROVIDER=postgresql \
|
||||
--build-arg DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange \
|
||||
--build-arg DATABASE_SAVE_DATA_INSTANCE=true \
|
||||
--build-arg DATABASE_SAVE_DATA_NEW_MESSAGE=true \
|
||||
--build-arg DATABASE_SAVE_MESSAGE_UPDATE=true \
|
||||
--build-arg DATABASE_SAVE_DATA_CONTACTS=true \
|
||||
--build-arg DATABASE_SAVE_DATA_CHATS=true \
|
||||
--build-arg DATABASE_SAVE_DATA_LABELS=true \
|
||||
--build-arg DATABASE_SAVE_DATA_HISTORIC=true \
|
||||
--build-arg DATABASE_SAVE_IS_ON_WHATSAPP=true \
|
||||
--build-arg DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=7 \
|
||||
--build-arg DATABASE_DELETE_MESSAGE=true \
|
||||
--build-arg AUTHENTICATION_API_KEY=2325CBB2-A2BB-4F98-8D88-D0B513435C7F \
|
||||
--build-arg AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true \
|
||||
--build-arg LANGUAGE=en \
|
||||
-t "${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.SERVICE }}/wpp-provider-api:${{ github.sha }}" \
|
||||
--file ./prod.Dockerfile \
|
||||
./
|
||||
docker push "${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.SERVICE }}/wpp-provider-api:${{ github.sha }}"
|
||||
|
||||
- name: Authenticate gcloud
|
||||
uses: "google-github-actions/auth@v2"
|
||||
with:
|
||||
credentials_json: ${{ secrets.GCP_SA_KEY }}
|
||||
service_account: "github-actions@skysales-ai.iam.gserviceaccount.com"
|
||||
|
||||
- name: Deploy to Cloud Run
|
||||
uses: google-github-actions/deploy-cloudrun@v2.3.0
|
||||
with:
|
||||
service: ${{ env.CR_SERVICE }}
|
||||
region: ${{ env.REGION }}
|
||||
image: "${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.SERVICE }}/wpp-provider-api:${{ github.sha }}"
|
||||
secrets: |
|
||||
DATABASE_CONNECTION_URI=WPP_API_PG_STRING:latest
|
||||
- name: Show Output
|
||||
run: echo ${{ steps.deploy.outputs.url }}
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -48,4 +48,6 @@ lerna-debug.log*
|
||||
|
||||
/prisma/migrations/*
|
||||
|
||||
pgadmin/*
|
||||
pgadmin/*
|
||||
.DS_Store
|
||||
|
||||
|
@ -5,7 +5,7 @@ services:
|
||||
restart: always
|
||||
depends_on:
|
||||
- redis
|
||||
- postgres
|
||||
# - postgres
|
||||
ports:
|
||||
- 8080:8080
|
||||
volumes:
|
||||
@ -32,39 +32,39 @@ services:
|
||||
- 6379:6379
|
||||
|
||||
|
||||
postgres:
|
||||
container_name: postgres
|
||||
image: postgres:15
|
||||
networks:
|
||||
- evolution-net
|
||||
command: ["postgres", "-c", "max_connections=1000", "-c", "listen_addresses=*"]
|
||||
restart: always
|
||||
ports:
|
||||
- 5432:5432
|
||||
environment:
|
||||
- POSTGRES_USER=user
|
||||
- POSTGRES_PASSWORD=pass
|
||||
- POSTGRES_DB=evolution
|
||||
- POSTGRES_HOST_AUTH_METHOD=trust
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
expose:
|
||||
- 5432
|
||||
# postgres:
|
||||
# container_name: postgres
|
||||
# image: postgres:15
|
||||
# networks:
|
||||
# - evolution-net
|
||||
# command: ["postgres", "-c", "max_connections=1000", "-c", "listen_addresses=*"]
|
||||
# restart: always
|
||||
# ports:
|
||||
# - 5432:5432
|
||||
# environment:
|
||||
# - POSTGRES_USER=user
|
||||
# - POSTGRES_PASSWORD=pass
|
||||
# - POSTGRES_DB=evolution
|
||||
# - POSTGRES_HOST_AUTH_METHOD=trust
|
||||
# volumes:
|
||||
# - postgres_data:/var/lib/postgresql/data
|
||||
# expose:
|
||||
# - 5432
|
||||
|
||||
pgadmin:
|
||||
image: dpage/pgadmin4
|
||||
container_name: pgadmin-container
|
||||
environment:
|
||||
PGADMIN_DEFAULT_EMAIL: user@example.com
|
||||
PGADMIN_DEFAULT_PASSWORD: adm
|
||||
volumes:
|
||||
- ./pgadmin:/var/lib/pgadmin
|
||||
ports:
|
||||
- "5050:80"
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- evolution-net
|
||||
# pgadmin:
|
||||
# image: dpage/pgadmin4
|
||||
# container_name: pgadmin-container
|
||||
# environment:
|
||||
# PGADMIN_DEFAULT_EMAIL: user@example.com
|
||||
# PGADMIN_DEFAULT_PASSWORD: adm
|
||||
# volumes:
|
||||
# - ./pgadmin:/var/lib/pgadmin
|
||||
# ports:
|
||||
# - "5050:80"
|
||||
# depends_on:
|
||||
# - postgres
|
||||
# networks:
|
||||
# - evolution-net
|
||||
|
||||
|
||||
volumes:
|
||||
|
141
prod.Dockerfile
Normal file
141
prod.Dockerfile
Normal file
@ -0,0 +1,141 @@
|
||||
# Stage 1: Build
|
||||
FROM node:20-alpine AS builder
|
||||
|
||||
RUN apk update && \
|
||||
apk add git ffmpeg wget curl bash
|
||||
|
||||
LABEL version="2.2.0" description="API to control WhatsApp features through HTTP requests."
|
||||
LABEL maintainer="Davidson Gomes" git="https://github.com/DavidsonGomes"
|
||||
LABEL contact="contato@atendai.com"
|
||||
|
||||
WORKDIR /evolution
|
||||
|
||||
COPY ./package.json ./tsconfig.json ./
|
||||
|
||||
RUN npm install -f
|
||||
|
||||
COPY ./src ./src
|
||||
COPY ./public ./public
|
||||
COPY ./prisma ./prisma
|
||||
COPY ./manager ./manager
|
||||
COPY ./runWithProvider.js ./
|
||||
COPY ./tsup.config.ts ./
|
||||
|
||||
COPY ./Docker ./Docker
|
||||
|
||||
RUN chmod +x ./Docker/scripts/* && dos2unix ./Docker/scripts/*
|
||||
|
||||
RUN ./Docker/scripts/generate_database.sh
|
||||
|
||||
RUN npm run build
|
||||
|
||||
# Stage 2: Final
|
||||
FROM node:20-alpine AS final
|
||||
|
||||
RUN apk update && \
|
||||
apk add tzdata ffmpeg bash
|
||||
|
||||
ENV TZ=America/Sao_Paulo
|
||||
|
||||
WORKDIR /evolution
|
||||
|
||||
# Copy necessary files from builder
|
||||
COPY --from=builder /evolution/package.json ./package.json
|
||||
COPY --from=builder /evolution/package-lock.json ./package-lock.json
|
||||
COPY --from=builder /evolution/node_modules ./node_modules
|
||||
COPY --from=builder /evolution/dist ./dist
|
||||
COPY --from=builder /evolution/prisma ./prisma
|
||||
COPY --from=builder /evolution/manager ./manager
|
||||
COPY --from=builder /evolution/public ./public
|
||||
COPY --from=builder /evolution/Docker ./Docker
|
||||
COPY --from=builder /evolution/runWithProvider.js ./runWithProvider.js
|
||||
COPY --from=builder /evolution/tsup.config.ts ./tsup.config.ts
|
||||
|
||||
# Accept build arguments and set as environment variables
|
||||
# Server Configuration
|
||||
ARG SERVER_TYPE
|
||||
ARG SERVER_PORT
|
||||
ARG SERVER_URL
|
||||
|
||||
ENV SERVER_TYPE=${SERVER_TYPE}
|
||||
ENV SERVER_PORT=${SERVER_PORT}
|
||||
ENV SERVER_URL=${SERVER_URL}
|
||||
|
||||
# CORS Configuration
|
||||
ARG CORS_ORIGIN
|
||||
ARG CORS_METHODS
|
||||
ARG CORS_CREDENTIALS
|
||||
|
||||
ENV CORS_ORIGIN=${CORS_ORIGIN}
|
||||
ENV CORS_METHODS=${CORS_METHODS}
|
||||
ENV CORS_CREDENTIALS=${CORS_CREDENTIALS}
|
||||
|
||||
# Logging Configuration
|
||||
ARG LOG_LEVEL
|
||||
ARG LOG_COLOR
|
||||
ARG LOG_BAILEYS
|
||||
|
||||
ENV LOG_LEVEL=${LOG_LEVEL}
|
||||
ENV LOG_COLOR=${LOG_COLOR}
|
||||
ENV LOG_BAILEYS=${LOG_BAILEYS}
|
||||
|
||||
# Event Emitter Configuration
|
||||
ARG EVENT_EMITTER_MAX_LISTENERS
|
||||
|
||||
ENV EVENT_EMITTER_MAX_LISTENERS=${EVENT_EMITTER_MAX_LISTENERS}
|
||||
|
||||
# Instance Deletion Configuration
|
||||
ARG DEL_INSTANCE
|
||||
|
||||
ENV DEL_INSTANCE=${DEL_INSTANCE}
|
||||
|
||||
# Database Configuration
|
||||
ARG DATABASE_PROVIDER
|
||||
ARG DATABASE_CONNECTION_URI
|
||||
ARG DATABASE_CONNECTION_CLIENT_NAME
|
||||
|
||||
ENV DATABASE_PROVIDER=${DATABASE_PROVIDER}
|
||||
ENV DATABASE_CONNECTION_URI=${DATABASE_CONNECTION_URI}
|
||||
ENV DATABASE_CONNECTION_CLIENT_NAME=${DATABASE_CONNECTION_CLIENT_NAME}
|
||||
|
||||
# Database Save Options
|
||||
ARG DATABASE_SAVE_DATA_INSTANCE
|
||||
ARG DATABASE_SAVE_DATA_NEW_MESSAGE
|
||||
ARG DATABASE_SAVE_MESSAGE_UPDATE
|
||||
ARG DATABASE_SAVE_DATA_CONTACTS
|
||||
ARG DATABASE_SAVE_DATA_CHATS
|
||||
ARG DATABASE_SAVE_DATA_LABELS
|
||||
ARG DATABASE_SAVE_DATA_HISTORIC
|
||||
ARG DATABASE_SAVE_IS_ON_WHATSAPP
|
||||
ARG DATABASE_SAVE_IS_ON_WHATSAPP_DAYS
|
||||
ARG DATABASE_DELETE_MESSAGE
|
||||
|
||||
ENV DATABASE_SAVE_DATA_INSTANCE=${DATABASE_SAVE_DATA_INSTANCE}
|
||||
ENV DATABASE_SAVE_DATA_NEW_MESSAGE=${DATABASE_SAVE_DATA_NEW_MESSAGE}
|
||||
ENV DATABASE_SAVE_MESSAGE_UPDATE=${DATABASE_SAVE_MESSAGE_UPDATE}
|
||||
ENV DATABASE_SAVE_DATA_CONTACTS=${DATABASE_SAVE_DATA_CONTACTS}
|
||||
ENV DATABASE_SAVE_DATA_CHATS=${DATABASE_SAVE_DATA_CHATS}
|
||||
ENV DATABASE_SAVE_DATA_LABELS=${DATABASE_SAVE_DATA_LABELS}
|
||||
ENV DATABASE_SAVE_DATA_HISTORIC=${DATABASE_SAVE_DATA_HISTORIC}
|
||||
ENV DATABASE_SAVE_IS_ON_WHATSAPP=${DATABASE_SAVE_IS_ON_WHATSAPP}
|
||||
ENV DATABASE_SAVE_IS_ON_WHATSAPP_DAYS=${DATABASE_SAVE_IS_ON_WHATSAPP_DAYS}
|
||||
ENV DATABASE_DELETE_MESSAGE=${DATABASE_DELETE_MESSAGE}
|
||||
|
||||
# Authentication Configuration
|
||||
ARG AUTHENTICATION_API_KEY
|
||||
ARG AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES
|
||||
|
||||
ENV AUTHENTICATION_API_KEY=${AUTHENTICATION_API_KEY}
|
||||
ENV AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=${AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES}
|
||||
|
||||
# Language Configuration
|
||||
ARG LANGUAGE
|
||||
|
||||
ENV LANGUAGE=${LANGUAGE}
|
||||
|
||||
# Additional Environment Variables
|
||||
ENV DOCKER_ENV=true
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT ["/bin/bash", "-c", ". ./Docker/scripts/deploy_database.sh && npm run start:prod" ]
|
Loading…
Reference in New Issue
Block a user