https://github.com/apiaxle/apiaxle
The apiaxle project
https://github.com/apiaxle/apiaxle
Last synced: 4 months ago
JSON representation
The apiaxle project
- Host: GitHub
- URL: https://github.com/apiaxle/apiaxle
- Owner: apiaxle
- License: gpl-3.0
- Created: 2011-11-25T19:36:43.000Z (over 14 years ago)
- Default Branch: develop
- Last Pushed: 2021-10-11T17:58:20.000Z (almost 5 years ago)
- Last Synced: 2026-02-04T08:26:19.474Z (6 months ago)
- Language: CoffeeScript
- Homepage: http://apiaxle.com
- Size: 2.83 MB
- Stars: 302
- Watchers: 33
- Forks: 73
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
- apis-tools-development - APIAxle
- APIs-tools-collection - APIAxle
README
# ApiAxle
[](https://gitter.im/apiaxle/apiaxle?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
http://apiaxle.com
A free, locally hosted API management solution. A proxy for your api,
statistics for your api & a powerful api of its own.
There are three components which make up the Api Axle system:
## The proxy
$ npm install apiaxle-proxy
This is the aspect of the system which does the actual proxying. It
sits in front of your API and does the authentication, key checking,
queries per day/second checking. This is the bit you want if you want
anything. More detail on the [main site](http://apiaxle.com).
## The API
$ npm install apiaxle-api
This is the (optional) API for managing users, keys and
endpoints. Once installed, run it with:
$ apiaxle-api
## The REPL
$ npm install apiaxle-repl
A way to administer your ApiAxle installation via a command line. Once
installed, run it with:
$ apiaxle
You then get a prompt where you can type `help` to find out more.
## The base libs
This is a set of libraries which is required for the above components.
---
# Installation
Check the [main site](http://apiaxle.com) for more detailed
installation instructions.
# Build
* master: [](http://travis-ci.org/apiaxle/apiaxle)
* develop: [](http://travis-ci.org/apiaxle/apiaxle)
# Docker
## Docker image
This repository is auto-built and published as
[apiaxle/apiaxle](https://hub.docker.com/r/apiaxle/apiaxle/).
**NOTE:** If using this via Docker Compose, use the version 2 syntax for your
docker-compose.yml file.
## Dockerfiles
This project uses two `Dockerfile`s, one for production usage named `Dockerfile`,
and a second for development of ApiAxle itself, named `Dockerfile-development`.
Docker Compose is configured to build the development version for you, see
below for examples.
## Environment Variables
Environment variables can be used to configure `NODE_ENV`, `REDIS_HOST`,
`REDIS_PORT`, `API_NAME_REGEX` and `DEBUG_MODE`. Below are defaults for production:
- `NODE_ENV` = `production`
- `REDIS_HOST` = `redis`
- `REDIS_PORT` = `6379`
- `API_NAME_REGEX` = `^(.+?)\\.api\\.` _(extra backslash required for JSON)_
- `DEBUG_MODE` = `false`
## Start services
```
docker-compose up -d redis
docker-compose up -d api
docker-compose up -d proxy
```
## Run repl
```
docker-compose run repl
```
## Run tests
```
docker-compose run repl test
```
## Enter container
```
docker-compose run --entrypoint sh repl
```
---
### Example adding an api and key:
```
api acme create endPoint='localhost:8000'
key 1234 create
api acme linkkey 1234
```
### Example curl:
```
curl localhost:3000?api_key=1234 -H 'Host: acme.api.localhost'
```