Если вам нужно создать скриншоты сайтов из консоли сервера Linux, вы можете использовать готовый Docker контейнер screenshoter (https://github.com/mingalevme/screenshoter). Это HTTP сервис в Docker контейнере на базе Google Puppeteer.
В самом простом случае можно запустить контейнер screenshoter так:
# docker pull mingalevme/screenshoter
# docker run -d --restart always -p 8080:8080 --name screenshoter mingalevme/screenshoter
Теперь, чтобы сделать скриншот сайта достаточно обратится к API через HTTP. Просто выполните команду curl:
# curl "http://localhost:8080/screenshot?url=https://vmblog.ru" > ~/sitescreen.png
В результате скриншот сайта будет сохранен в файле ~/sitescreen.png.
Можно указать расширение экрана клиента, для которого нужно создать скриншот:
# curl "http://localhost:8080/screenshot?url=https://vmblog.ru&viewport-width=1920&viewport-height=1080" > ~/1920-1080-vmblog_screen.png
Такое решение по созданию скриншотов можно использовать в любой системой мониторинга на базе вебхуков.

Можно запустить контейнер Screenshoter с Nginx для проксирования обращения. Для этого воспользуйтесь таким docker-compose.yml:
version: "3.1"
services:
screenshoter-app:
image: mingalevme/screenshoter
restart: always
screenshoter-nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./screenshoter.nginx.conf:/etc/nginx/conf.d/default.conf
- "/var/log/nginx:/var/log/nginx"
- "/var/cache/nginx:/var/cache/nginx"
- "/dev/null:/var/cache/screenshoter"
depends_on:
- screenshoter-app
Теперь вы можете создавать скриншоты сайтов прямо из браузера.
http://192.168.13.25:8080/screenshot?url=https://vmblog.ru&full=true&format=jpeg
У screenshoter довольно много параметров. Можно указать user-agent, cookies, device-scale-factor, transparency и т.д. Полный список параметров screenshoter доступен на странице проекта на GitHub.
