📸 Screenshot as a Service

Overview

License Releases

screeenly is an open source web application which lets users create website screenshots through a simple API. It's built with Laravel.

The latest version is hosted on screeenly.com. You can follow us on Twitter


☝️ A completely new version of screeenly has recently been released: https://3.screeenly.com.

The app has been rebuilt from the ground up. Its API now can also convert websites into PDFs, return the rendered HTML of a website. This now also works for your own provided HTML code. In addition, you can now update a lot more settings; like pixel density or wether images should be loaded.

The new app requires a paid subscription. The subscription covers server costs and maintenance.

The open source version of screeenly (this repo right here) which is hosted on http://screeenly.com will remain available for the forseeable future. If anything should change and you've registered on screeenly.com, you will receive a notice.

The repository itself will soon get updates for Laravel 7 and Laravel 8.


Documentation and more

The wiki holds the documentation.

Self Hosting

screeenly is quite a simple PHP app. Therefore, it's quite easy to self host the application on your own server.

Self Hosting on your own Server

If you're comfortable running your own server follow your self-hosting guide here.

Deploy to Heroku

Deploy

If managing servers is not your thing, we've also written a guide on how to deploy the app to Heroku.
By using Heroku, you can run your own version of screeenly basically for free.

Docker Images

If you're interested in a Docker version of screeenly, you can use the daily built images created by Jacek Szafarkiewicz.

Please note: We do not provide any support for these Docker Images.

Security

If you discover a security vulnerability within this package, please e-mail us at [email protected]. All security vulnerabilities will be promptly addressed.

LICENSE

MIT

Comments
  • Missing frontend design and hardcoded paths [self-hosted]

    Missing frontend design and hardcoded paths [self-hosted]

    Hi Stefan,

    Describe the bug 1.) It theems the css and js file is not loading. I 've got no idea why. image

    2.) I read here that different paths are hardcoded. Everthingy what is hardcoded runs in a 404 for me. If I indicate the full path it works. It affects not only the navigation, but also the button "Create api" for example. In which files are hardcoded paths to replace?

    opened by olpo24 17
  • New local install gives

    New local install gives "Something went wrong capturing this website"

    I have just installed a Screeenly locally. I have laravel running, and storage/testing has a test-screenshot of a german google page. However when I try to take a screenshot using the web site I get a red box with this message:

    Something went wrong capturing this website. Is it a Javascript heavy site or loads lots of external content? If you think this is an error contact us.

    No error messages are logged at all. I'm not sure where to look next ?

    opened by ccandreva 16
  • Laravel 5.5 Shift

    Laravel 5.5 Shift

    This pull request includes the changes for upgrading to Laravel 5.5. Feel free to commit any additional changes to the shift-5399 branch.

    Before merging, you should:

    • Checkout the shift-5399 branch
    • Review all pull request comments for additional changes
    • Run composer update (if the pre-commands fail, add --no-scripts)
    • Thoroughly test your application

    If you need help with your upgrade, check out the Shift Human Services or join the Shifty Coders Slack room to get answers to all your Laravel questions.

    opened by stefanzweifel 15
  • Need help running in Docker; can't create screenshots

    Need help running in Docker; can't create screenshots

    Hi,

    I'm trying to create a docker container with screeenly but I can't get it to create screenshots.

    I followed the self hosting guide but it seems incomplete for someone who doesn't know Lavarel/Symfony/PHP.

    For example it doesn't list all required php extensions (like pdo and pdo_mysql) and maybe some more I don't know. Also, I first thought it has to run with Apache, but that seems not the case either. It now runs with php artisan serve --host=0.0.0.0, though I'm not sure if that is the intended way either (sais something about dev server...).

    Anyway when I'm on the page/try and just hit the "Create Screenshot" button (->uses medium.com), it just errors the following message in the browser.

    Something went wrong capturing this website. Is it a Javascript heavy site or loads lots of external content? If you think this is an error contact us.

    There's no error in the browser console (network tab has only 301 due to https redirect and the rest is 200) nor on the shell with the web server open and I don't know what's missing.

    I also tried a curl agains the API: curl -i localhost:8000/api/v1/fullsize -X POST -H "Content-Type: application/json" -d '{"key": "test","url": "https://medium.com"}'

    It returns 400 Bad request with the following response:

    {"title":"An error accoured","message":"An internal error accoured."}

    Not sure if I did something wrong there.

    Would you please check my repo (https://github.com/ionphractal/docker-screeenly) with the Dockerfile how the container is created/started and see what's missing?

    You can use docker compose to start it if that helps, but you have to start up the db first with docker-compose up -d db and wait until its ready (check docker-compose logs -f db). At the moment, I still have Apache running all the time so that I can manually go into the container for debugging.

    Once the containers are started, go into the container with

    docker exec -it -u www-data <screeenly container name> bash
    

    and run the server as described above. If you have any questions about starting it with docker, please let me know.

    Btw. the container uses PHP/7.2.10.

    Thanks in advance!

    opened by ionphractal 13
  • Laravel 8.x Shift

    Laravel 8.x Shift

    This pull request includes the changes for upgrading to Laravel 8.x. Feel free to commit any additional changes to the shift-38889 branch.

    Before merging, you need to:

    • Checkout the shift-38889 branch
    • Review all pull request comments for additional changes
    • Update your dependencies for Laravel 8
    • Run composer update (if the scripts fail, add --no-scripts)
    • Thoroughly test your application (no tests?)

    If you need help with your upgrade, check out the Human Shifts. You may also join the Shifty Coders Slack workspace to level-up your Laravel skills.

    opened by stefanzweifel 12
  • Laravel 5.6 Shift

    Laravel 5.6 Shift

    This pull request includes the changes for upgrading to Laravel 5.6. Feel free to commit any additional changes to the shift-6269 branch.

    Before merging, you should:

    • Checkout the shift-6269 branch
    • Review all pull request comments for additional changes
    • Update your dependencies for Laravel 5.6
    • Run composer update (if the pre-scripts fail, add --no-scripts)
    • Thoroughly test your application

    If you need help with your upgrade, check out the Shift Human Services or join the Shifty Coders Slack room to get answers to all your Laravel questions.

    opened by stefanzweifel 12
  • Screeenly doesn't work for many URL's

    Screeenly doesn't work for many URL's

    I take it this is no longer maintained/supported seeing as your own server is throwing an error trying to show thumbshot for many URL's now...? Been like this for a while. It just isn't usable on a production site currently and we originally reported this back in Feb.

    duplicate 
    opened by zigojacko 12
  • Laravel 5.8 Shift

    Laravel 5.8 Shift

    This pull request includes the changes for upgrading to Laravel 5.8. Feel free to commit any additional changes to the shift-13083 branch.

    Before merging, you should:

    • Checkout the shift-13083 branch
    • Review all pull request comments for additional changes
    • Update your dependencies for Laravel 5.8
    • Run composer update (if the pre-scripts fail, add --no-scripts)
    • Thoroughly test your application

    If you want help with your upgrade, check out the Shift Human Services or join the Shifty Coders Slack room to get answers to all your Laravel questions.

    opened by stefanzweifel 11
  • Delay on taking screenshots

    Delay on taking screenshots

    Hey, I've tried the online try it tool and when I try to screen shot my page: http://app.monstervsl.com/thumbnail?url=https://s3-us-west-2.amazonaws.com/monsterapps/monstervsl/videos/weightlossintro.mp4 I get a black screenshot. I assume this is because the video hasn't loaded when it takes the photo... Is there a fix for this? Can you add a delay variable so we can wait 2 seconds before taking it takes the screenshot?

    opened by chrisbell08 10
  • Image size output

    Image size output

    Hi guys,

    I am sorry if this as been mentioned before but I am not able to get image size to output to values I am specifying. Is there a limit on size?

    Thanks

    opened by p-drolima 9
  • Use a real browsers with Xvfb

    Use a real browsers with Xvfb

    Hello

    Just wondering if you have considered using a real browser like Firefox or Chrome? (with Xvfb)

    Most of all just a question, PhantomJS has always looked kind of unmaintained to me (no commits since 26 may and 1500+ issues).

    Regards Kristian

    enhancement wontfix 
    opened by klausenbusk 8
  • Heroku build failed

    Heroku build failed

       Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255
    

    ! WARNING: A post-autoload-dump script terminated with an error ! ERROR: Dependency installation failed! !
    ! The 'composer install' process failed with an error. The cause ! may be the download or installation of packages, or a pre- or ! post-install hook (e.g. a 'post-install-cmd' item in 'scripts') ! in your 'composer.json'. !
    ! Typical error cases are out-of-date or missing parts of code, ! timeouts when making external connections, or memory limits. !
    ! Check the above error output closely to determine the cause of ! the problem, ensure the code you're pushing is functioning ! properly, and that all local changes are committed correctly. !
    ! For more information on builds for PHP on Heroku, refer to ! https://devcenter.heroku.com/articles/php-support !
    ! REMINDER: the following warnings were emitted during the build; ! check the details above, as they may be related to this error: ! - A post-autoload-dump script terminated with an error ! Push rejected, failed to compile PHP app. ! Push failed

    bug 
    opened by universehello 0
  • Change output requirements

    Change output requirements

    Currently we have our API linked up to integromat.com, they measure service costs based on operations and data (MB)

    Been testing out Screeenly and we only need the temp URL, would it be possible to select which outputs are required, ie URL, base64, base64_raw.

    Thus change the size of the received data

    Secondly, the ability to resize, adjust compress of the PNG as its outputted would be amazing :)

    enhancement 
    opened by TornMarketing 8
  • Default API key

    Default API key

    I use screenly internally in a docker setup and I am the only one using it. It would be great to be able to define an API key as environment variable in the docker compose file. The you would not need to create a user manually.

    enhancement 
    opened by wackazong 3
Releases(v2.0.0)
Owner
Stefan Zweifel
Full Stack Developer working with Laravel, Vue.js, Tailwind CSS and alpine.js.
Stefan Zweifel
Damn Vulnerable Web Services is an insecure web application with multiple vulnerable web service components that can be used to learn real world web service vulnerabilities.

Damn Vulnerable Web Services is an insecure web application with multiple vulnerable web service components that can be used to learn real world web service vulnerabilities.

Sam Sanoop 416 Dec 17, 2022
Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

TARS - A Linux Foundation Project TARS Foundation Official Website TARS Project Official Website WeChat Group: TARS01 WeChat Offical Account: TarsClou

THE TARS FOUNDATION PROJECTS 9.6k Jan 1, 2023
SleekwareDB is a NoSQL database storage service. A database storage service that can be used for various platforms and is easy to integrate.

SleekwareDB is a NoSQL database storage service. A database storage service that can be used for various platforms and is easy to integrate. NoSQL API

SleekwareDB 12 Dec 11, 2022
Easy integration with OAuth 2.0 service providers.

OAuth 2.0 Client This package provides a base for integrating with OAuth 2.0 service providers. The OAuth 2.0 login flow, seen commonly around the web

The League of Extraordinary Packages 3.4k Dec 31, 2022
Rinvex Authy is a simple wrapper for @Authy TOTP API, the best rated Two-Factor Authentication service for consumers, simplest 2fa Rest API for developers and a strong authentication platform for the enterprise.

Rinvex Authy Rinvex Authy is a simple wrapper for Authy TOTP API, the best rated Two-Factor Authentication service for consumers, simplest 2fa Rest AP

Rinvex 34 Feb 14, 2022
A beautiful, fully open-source, tunneling service - written in pure PHP

Expose A completely open-source ngrok alternative - written in pure PHP. Documentation For installation instructions, in-depth usage and deployment de

Beyond Code 3.9k Dec 29, 2022
🚀 PHP Service Container with fast and cachable dependency injection.

ClanCats Container A PHP Service Container featuring a simple meta-language with fast and compilable dependency injection. Requires PHP >= 7.0 Pros: M

ClanCats 28 Apr 13, 2022
Get info from any web service or page

Embed PHP library to get information from any web page (using oembed, opengraph, twitter-cards, scrapping the html, etc). It's compatible with any web

Oscar Otero 1.9k Jan 1, 2023
A beautiful, fully open-source, tunneling service - written in pure PHP

Expose A completely open-source ngrok alternative - written in pure PHP. Documentation For installation instructions, in-depth usage and deployment de

Beyond Code 3.9k Jan 7, 2023
Generate and autoload custom Helpers, Builder Scope, Service class, Trait

laravel-make-extender Generate and autoload custom helpers, It can generate multilevel helpers in the context of the directory. Generate Service class

Limewell 30 Dec 24, 2022
This project was built to connect WHMCS with GridPane.com's API service so we can create sites within WHMCS.

GridPane Server Module for WHMCS This project was built to connect WHMCS with GridPane.com's API service so we can create sites within WHMCS. Discliam

null 10 Sep 2, 2021
phpReel is a free, MIT open-source subscription-based video streaming service that lets you create your platform for distributing video content in the form of movies or series.

phpReel is a free, MIT open-source subscription-based video streaming service that lets you create your platform for distributing video content in the form of movies or series.

null 118 Dec 14, 2022
Most Advance online restaurant menu, food delivery system, online restaurant menu, free online restaurant menu, free online restaurant menu app, online restaurant menu service provider

Buffet Box online menu and cloud kitchen Most Advance online restaurant menu, online restaurant menu, free online restaurant menu, free online restaur

null 20 Oct 28, 2022
Source code of Strm.pl, brand-new social service.

Strimoid Source code of Strm.pl, brand-new social service.

Strimoid 67 Oct 20, 2022
An open source image hosting service powered by Laravel

Limg An open source image hosting service powered by Laravel Features Upload your image via file, url or ShareX ! Manage your image (custom title, pub

Thomas 56 Dec 16, 2022
amadeus-ws-client: PHP client for the Amadeus GDS SOAP Web Service interface

amadeus-ws-client: PHP client for the Amadeus GDS SOAP Web Service interface This client library provides access to the Amadeus GDS SOAP Web Service i

Amadeus Benelux 164 Nov 18, 2022
Koel is a simple web-based personal audio streaming service written in Vue and Laravel

Koel (also stylized as koel, with a lowercase k) is a simple web-based personal audio streaming service written in Vue on the client side and Laravel on the server side. Targeting web developers, Koel embraces some of the more modern web technologies – CSS grid, audio, and drag-and-drop API to name a few – to do its job.

Koel 14.3k Jan 4, 2023
MediaDB is a web-based media streaming service written in Laravel and Vue.

MediaDB (API) MediaDB is a web-based media streaming service written in Laravel and Vue. The nginx-vod-module is used for on-the-fly repackaging of MP

François M. 53 Sep 3, 2022
A TYPO3 extension that integrates the Apache Solr search server with TYPO3 CMS. dkd Internet Service GmbH is developing the extension. Community contributions are welcome. See CONTRIBUTING.md for details.

Apache Solr for TYPO3 CMS A TYPO3 extension that integrates the Apache Solr enterprise search server with TYPO3 CMS. The extension has initially been

Apache Solr for TYPO3 126 Dec 7, 2022
λ Run PHP Coroutines & Fibers as-a-Service on the AWS Lambda.

λ Swoole Runtime for AWS Lambda Run PHP Coroutines & Fibers as-a-Service on the AWS Lambda. Getting started Create your Lambda function index.php <?ph

Leo Cavalcante 32 Dec 29, 2022