Uses serverful to expose puppeteer headless browser through a REST API.
- Launch π inside a Docker container π³ so you don't need to manage the dependencies π β
- Deploy on AWS using an Antifragile Infrastructure that allows you to easily monitor activity and scale π capacity β
Using it in your terminal requires Docker installed in your system.
Detach from the container and expose port 9453
.
docker run -d -p "9453:3000" hfreire/browser-as-a-service
Browse Google's website (https://www.google.com)
Use curl
to fetch Google's website
curl 'http://localhost:9453/open?url=https%3A%2F%2Fwww.google.com'
Swagger documentation available at http://localhost:9453/docs
.
Variable | Description | Required | Default value |
---|---|---|---|
PORT | The port to be used by the HTTP server. | false | 3000 |
API_KEYS | The secret keys that should be used when securing endpoints. | false | undefined |
SO_TIMEOUT | TCP socket connection timeout. | false | 120000 |
BASE_PATH | Base path to be prefixed to all available endpoint paths. | false | / |
PING_PATH | Endpoint path for pinging app. | false | /ping |
HEALTHCHECK_PATH | Endpoint for checking app health. | false | /healthcheck |
LOG_LEVEL | The log level verbosity. | false | info |
ENVIRONMENT | The environment the app is running on. | false | undefined |
ROLLBAR_API_KEY | The server API key used to talk with Rollbar. | false | undefined |
git clone https://github.com/hfreire/browser-as-a-service.git
cd browser-as-a-service
npm run build
Deploying it from your terminal requires terraform installed on your system and an antifragile infrastructure setup available in your AWS account.
git clone https://github.com/hfreire/browser-as-a-service.git
cd browser-as-a-service
npm run deploy
Variable | Description | Required | Default value |
---|---|---|---|
VERSION | The version of the app. | false | latest |
ANTIFRAGILE_STATE_AWS_REGION | The AWS region used for the antifragile state . | false | undefined |
ANTIFRAGILE_STATE_AWS_S3_BUCKET | The AWS S3 bucket used for the antifragile state. | false | undefined |
ANTIFRAGILE_STATE_AWS_DYNAMODB_TABLE | The AWS DynamoDB table used for the antifragile state. | false | undefined |
ANTIFRAGILE_INFRASTRUCTURE_DOMAIN_NAME | The domain used for the antifragile infrastructure. | true | undefined |
You can contribute either with code (e.g., new features, bug fixes and documentation) or by donating 5 EUR. You can read the contributing guidelines for instructions on how to contribute with code.
All donation proceedings will go to the Sverige fΓΆr UNHCR, a swedish partner of the UNHCR - The UN Refugee Agency, a global organisation dedicated to saving lives, protecting rights and building a better future for refugees, forcibly displaced communities and stateless people.
Read the license for permissions and limitations.