Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 0 additions & 50 deletions .github/workflows/publish_docker_image.yml

This file was deleted.

50 changes: 0 additions & 50 deletions .github/workflows/publish_docker_image_homolog.yml

This file was deleted.

50 changes: 0 additions & 50 deletions .github/workflows/publish_docker_image_latest.yml

This file was deleted.

71 changes: 71 additions & 0 deletions .github/workflows/publish_ghcr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Build and Publish to GHCR

on:
push:
branches:
- main
- 'release/**'
tags:
- 'v*.*.*'
pull_request:
branches:
- main

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build:
name: Build and Publish
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v5
with:
submodules: recursive

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=sha,prefix=

- 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
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Image digest
if: github.event_name != 'pull_request'
run: echo ${{ steps.docker_build.outputs.digest }}
26 changes: 21 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
FROM node:24-alpine AS builder

RUN apk update && \
apk add --no-cache git ffmpeg wget curl bash openssl
apk add --no-cache git ffmpeg wget curl bash openssl \
chromium nss freetype harfbuzz ttf-freefont

LABEL version="2.3.1" description="Api to control whatsapp features through http requests."
LABEL maintainer="Davidson Gomes" git="https://github.com/DavidsonGomes"
LABEL contact="contato@evolution-api.com"
LABEL version="2.3.7-catalog-browser" description="Api to control whatsapp features through http requests. Adds browser-based catalog fetch provider."
LABEL maintainer="Kelvin Yuli Andrian" git="https://github.com/kelvinzer0/evolution-api"
LABEL contact="kelvinzer0@users.noreply.github.com"

# Tell Puppeteer to use system Chromium instead of downloading its own
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

WORKDIR /evolution

Expand Down Expand Up @@ -33,11 +38,22 @@ RUN npm run build
FROM node:24-alpine AS final

RUN apk update && \
apk add tzdata ffmpeg bash openssl
apk add --no-cache tzdata ffmpeg bash openssl \
chromium nss freetype harfbuzz ttf-freefont font-noto-emoji

ENV TZ=America/Sao_Paulo
ENV DOCKER_ENV=true

# Puppeteer config — use system Chromium
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

# Catalog Browser Service config (overridable at runtime)
ENV CATALOG_BROWSER_ENABLED=false
ENV CATALOG_BROWSER_IDLE_TIMEOUT_MS=600000
ENV CATALOG_BROWSER_MAX_SESSIONS=5
ENV CATALOG_BROWSER_HEADLESS=true

WORKDIR /evolution

COPY --from=builder /evolution/package.json ./package.json
Expand Down
Loading