master branch is not recommended for production use. For the latest
release, go to the Releases page
You need to specify an
ACCESS_TOKEN, that you can get from the 3scale admin
portal, and also your
ADMIN_PORTAL_DOMAIN. If you are using SaaS, it is
docker run --name apicast --rm -p 8080:8080 -e THREESCALE_PORTAL_ENDPOINT=https://ACCESS_TOKEN@ADMIN_PORTAL_DOMAIN quay.io/3scale/apicast:master
You can use a JSON configuration file instead:
docker run --name apicast --rm -p 8080:8080 -v $(pwd)/config.json:/opt/app/config.json:ro -e THREESCALE_CONFIG_FILE=/opt/app/config.json quay.io/3scale/apicast:master
In this example
config.json is located in the same directory where the
docker command is executed, and it is mounted as a volume at
:ro indicates that the volume will be read-only.
You need to create a secret with your
ACCESS_TOKEN and your
oc create secret generic apicast-configuration-url-secret \ --from-literal=password=https://ACCESS_TOKEN@ADMIN_PORTAL_DOMAIN \ --type=kubernetes.io/basic-auth oc new-app -f https://raw.githubusercontent.com/3scale/apicast/master/openshift/apicast-template.yml
- Performance: it is fast because it's built on top of NGINX and uses LuaJIT.
- Scalability: APIcast is stateless, so it scales horizontally.
- Request transformation: allows to modify the headers, the path and the arguments of a request.
- Rate-limit: can apply limits based on a header, JWT claims, the IP of the request and many more.
- Modular and extensible: thanks to the APIcast policies framework.
- Monitoring with Prometheus.
- OpenTracing integration with Jaeger.
- Can be deployed in Openshift.
- Integrates with IDPs like Keycloak to provide authentication based on OIDC.
Using Docker you just need to run:
That will create a Docker container and run bash inside it. The project's source
code will be available in the container and sync'ed with your local
directory, so you can edit files in your preferred environment and still be able
to run whatever you need inside the Docker container.
To install the dependencies inside the container run:
To run the unit tests inside the container:
To run the integration tests inside the container:
To learn about the other available make targets:
- OpenResty: a platform that includes NGINX, LuaJIT and Lua modules.
- busted: for the unit tests.
- Test::Nginx: for the integration tests.
- Configuration parameters
- Get started with Lua and OpenResty
- Learn about policies and write your own
- Available Prometheus metrics
- Management API