Written with Golang, it uses the headless Google Chrome in Docker container to generate screenshot.
Run it locally:
docker-compose up app
Navigate to the localhost:8080 in browser or with the wget
tool:
wget http://localhost:8080/screenshot?width=1180&height=768&url=https://amplifr.com
docker run -p 8080:8080 dsalahutdinov/screenshot
Than just curl for screenshot:
curl http://localhost:8080/screenshot/?width=1180&height=768&url=https://amplifr.com
Install screenshot service from Helm repository:
$ helm repo add screenshot-helm https://dsalahutdinov.github.io/screenshot-helm/
"screenshot-helm" has been added to your repositories
$ helm install screenshot-helm/screenshot --name screenshot --namespace screenshot
NAME: screenshot
LAST DEPLOYED: Sat Apr 4 16:59:02 2020
NAMESPACE: screenshot
STATUS: DEPLOYED
RESOURCES:
==> v1/Deployment
NAME AGE
screenshot 1s
==> v1/Pod(related)
NAME AGE
screenshot-76948b-rrq77 1s
==> v1/Service
NAME AGE
screenshot 1s
To run on Kubernetes cluster:
kubectl create ns screenshot
kubectl create deployment -n screenshot --image=dsalahutdinov/screenshot screenshot
kubectl expose -n screenshot deployment screenshot --port=80 --target-port=8080
After than, screenshot is available on your cluster as the service:
curl http://screenshot.screenshot/screenshot/?width=1180&height=768&url=https://amplifr.com