{"id":13620682,"url":"https://github.com/staticallyio/screenshot","last_synced_at":"2025-04-14T22:32:16.784Z","repository":{"id":38616420,"uuid":"280747202","full_name":"staticallyio/screenshot","owner":"staticallyio","description":"A screenshot API to convert web to image or PDF. Supports desktop and mobile views.","archived":false,"fork":false,"pushed_at":"2021-12-14T16:16:34.000Z","size":1568,"stargazers_count":145,"open_issues_count":3,"forks_count":21,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-08T07:38:22.742Z","etag":null,"topics":["docker","nodejs","productivity","puppeteer","screenshot","screenshot-as-a-service"],"latest_commit_sha":null,"homepage":"https://statically.io/docs/using-screenshot/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/staticallyio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"patreon":"fransallen"}},"created_at":"2020-07-18T22:04:51.000Z","updated_at":"2024-10-25T19:28:44.000Z","dependencies_parsed_at":"2022-07-13T05:50:30.399Z","dependency_job_id":null,"html_url":"https://github.com/staticallyio/screenshot","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staticallyio%2Fscreenshot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staticallyio%2Fscreenshot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staticallyio%2Fscreenshot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staticallyio%2Fscreenshot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/staticallyio","download_url":"https://codeload.github.com/staticallyio/screenshot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248972031,"owners_count":21191712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","nodejs","productivity","puppeteer","screenshot","screenshot-as-a-service"],"created_at":"2024-08-01T21:00:58.406Z","updated_at":"2025-04-14T22:32:11.771Z","avatar_url":"https://github.com/staticallyio.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://statically.io/screenshot/\"\u003e\n    \u003cimg src=\"https://cdn.statically.io/img/statically.io/images/branding/statically-mark.svg\" alt=\"Screenshot\" height=\"80\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eScreenshot\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eAutomagically converts URLs into images and PDFs.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://statically.io\"\u003estatically.io\u003c/a\u003e |\n  \u003ca href=\"https://twitter.com/staticallyio\"\u003eTwitter\u003c/a\u003e |\n  \u003ca href=\"https://statically.discourse.group\"\u003eCommunity\u003c/a\u003e |\n  \u003ca href=\"https://www.patreon.com/fransallen\"\u003eBecome A Backer\u003c/a\u003e\n  \u003cbr /\u003e\u003cbr /\u003e\n\t\u003ca href=\"https://hub.docker.com/r/statically/screenshot\"\u003e\n    \u003cimg src=\"https://img.shields.io/docker/cloud/build/statically/screenshot\" alt=\"Docker Cloud Build Status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/statically/screenshot\"\u003e\n    \u003cimg src=\"https://img.shields.io/docker/pulls/statically/screenshot?color=success\" alt=\"Docker Pulls\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/statically/screenshot\"\u003e\n    \u003cimg src=\"https://img.shields.io/docker/image-size/statically/screenshot/latest?color=success\" alt=\"Docker Image Size\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## :sparkles: Overview\n\n**Screenshot** is a simple application to automagically convert URLs into images and PDFs. It's designed to be simple and easy to install anywhere. This application is split into two distinct components, the core service to process the URL and then send it to a remote browser (Chrome). The remote browser to screenshot and generate PDF from a URL.\n\n## :bulb: Features\n\n- Screenshot website in desktop view.\n- Screenshot website in mobile view.\n- Converts URL into PDF.\n\n## :zap: Installation\n\nWe'll be using Docker as an easy way to install. However since this is a Node.js application, you can run it with your current setup, if you choose this method, please see [config/index.js](config/index.js) to change the remote browser endpoint.\n\n### Run the browser\n\nWe'll be using the **browserless/chrome** Docker image to do most of this work.\n\n```bash\ndocker run -d \\\n  --name chrome \\\n  -e \"ENABLE_DEBUGGER=false\" \\\n  -e \"DISABLE_AUTO_SET_DOWNLOAD_BEHAVIOR=true\" \\\n  -e \"DEFAULT_BLOCK_ADS=true\" \\\n  -p 3000:3000 \\\n  browserless/chrome:latest\n```\n\nTo see more options, you can check [full documentation](https://docs.browserless.io/docs/docker.html).\n\n### Run the app\n\n```bash\ndocker run -d \\\n  --name screenshot \\\n  -e \"REMOTE_BROWSER=ws://172.17.0.1:3000\" \\\n  -p 5000:5000 \\\n  statically/screenshot:latest\n```\n\nReplace the `REMOTE_BROWSER` variable with the remote browser endpoint that you set above. In this example we are using Docker's internal IP address, it should work if you are running both components on one machine.\n\n## :fire: Fire it up\n\nThe application avalaible through `/screenshot/` path.\n\n- Visit http://localhost:5000/screenshot/github.com for desktop view.\n\n![Screenshot Desktop](https://cdn.statically.io/gh/staticallyio/screenshot/master/public/screenshot-desktop.png)\n\n- Visit http://localhost:5000/screenshot/mobile/github.com for mobile view.\n\n![Screenshot Mobile](https://cdn.statically.io/gh/staticallyio/screenshot/master/public/screenshot-mobile.png)\n\n- Visit http://localhost:5000/screenshot/pdf/news.ycombinator.com for PDF.\n\n![Screenshot PDF](https://cdn.statically.io/gh/staticallyio/screenshot/master/public/screenshot-pdf.png)","funding_links":["https://patreon.com/fransallen","https://www.patreon.com/fransallen"],"categories":["S"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaticallyio%2Fscreenshot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstaticallyio%2Fscreenshot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaticallyio%2Fscreenshot/lists"}