https://github.com/makinacorpus/screamshotter
Microservice to capture screenshots of web pages
https://github.com/makinacorpus/screamshotter
debian docker microservice screenshots
Last synced: 6 months ago
JSON representation
Microservice to capture screenshots of web pages
- Host: GitHub
- URL: https://github.com/makinacorpus/screamshotter
- Owner: makinacorpus
- Created: 2018-04-02T12:53:11.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2025-06-24T08:35:58.000Z (9 months ago)
- Last Synced: 2025-06-24T09:37:42.369Z (9 months ago)
- Topics: debian, docker, microservice, screenshots
- Language: Python
- Homepage:
- Size: 973 KB
- Stars: 10
- Watchers: 5
- Forks: 3
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
Awesome Lists containing this project
README
[](https://codecov.io/gh/makinacorpus/screamshotter)

# Screamshotter : microservice to take webpage screenshots
### Powered by Django / Node / Puppeteer / Chromium
# INSTALL
## Ubuntu
### From apt repo
```
sudo apt update
sudo apt install wget software-properties-common
echo "deb [arch=amd64] https://packages.geotrek.fr/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/geotrek.list
wget -O- "https://packages.geotrek.fr/geotrek.gpg.key" | sudo apt-key add -
sudo apt update
sudo apt install screamshotter
```
### Local installation
Download deb package from last release assets
Example:
```bash
wget https://github.com/makinacorpus/screamshotter/releases/download/1.9.9-beta0/screamshotter_1.9.9.ubuntu18.04.dev752653563_amd64.deb
```
Install it
```bash
sudo dpkg -i screamshotter_1.9.9.ubuntu18.04.dev752653563_amd64.deb
```
Fix dependencies
```bash
sudo apt install -f
```
Configurate screamshotter
```bash
sudo dpkg-reconfigure sreamshotter
```
## Docker
```
docker pull makinacorpus/screamshotter:latest
```
# USAGE
## ubuntu
with systemd
```
systemctl status|stop|start screamshotter
```
## docker
```
docker run -d -p 8000:8000 makinacorpus/screamshotter:latest
```
## make screenshots
```
curl -d url=https://google.com http://127.0.0.1:8000 > google.png
```
## access test browsable api
```
http://127.0.0.1:8000/?format=api
```
# DEVELOPMENT
## Docker
```
git clone git@github.com:makinacorpus/screamshotter.git
cd screamshotter
docker-compose up
```
## Tools
### pip-tools
keep dependencies up to date with pip-tools
```bash
# pip install pip-tools
pip-compile --upgrade
```
## Quality
### flake8
```bash
# pip install flake8
flake8 src
```
### eslint
```bash
# use nodeenv node & npm
npm run lint
```
## Debug
You can install sentry with screamshotter, fill SENTRY_DSN, SENTRY_ENVIRONMENT, SENTRY_TRACE_SAMPLE during installation.
Or reconfigurate with
```bash
sudo dpkg-reconfigure screamshotter
```
You can add environment variable for docker too:
```yml
environment:
- TIMEOUT=60
- MAX_REQUESTS=250
- SENTRY_DSN=
- SENTRY_ENVIRONMENT=
- SENTRY_TRACE_SAMPLE=
- EXTERNAL_PUPPETEER= # if you use browserless.io : wss://your_url:3000
```