Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/asyncapi/server-api

Server API providing official AsyncAPI tools
https://github.com/asyncapi/server-api

asyncapi docker get-global-node-release-workflows get-global-releaserc hacktoberfest nodejs

Last synced: about 2 months ago
JSON representation

Server API providing official AsyncAPI tools

Awesome Lists containing this project

README

        

[![AsyncAPI Server API](./.github/assets/banner.png)](https://www.asyncapi.com)

Server API providing official AsyncAPI tools.

[![All Contributors](https://img.shields.io/badge/all_contributors-6-orange.svg?style=flat-square)](#contributors-)

---

## :loudspeaker: ATTENTION:

This package is still under development and has not published and reached version 1.0.0 yet. This means that its API may contain breaking changes until we're able to deploy the first stable version and begin semantic versioning.

---

- [Requirements](#requirements)
- [Using it locally](#using-it-locally)
- [Using it via Docker](#using-it-via-docker)
- [Development](#development)
- [Deployment](#deployment)
* [How the GitHub workflow works](#how-the-github-workflow-works)
- [Contribution](#contribution)
- [Supported by](#supported-by)
- [Contributors](#contributors)

## Requirements

- [NodeJS](https://nodejs.org/en/) >= 14

## Using it locally

Run:

```bash
npm install
npm run start:prod
```

server is ready to use on [http://localhost:80](http://localhost:80).

## Using it via Docker

Run:

```bash
docker run -it -p 80:80 asyncapi/server-api
```

server is ready to use on [http://localhost:80](http://localhost:80).

## Development

1. Setup project by installing dependencies `npm install`
2. Write code and tests.
3. Make sure all tests pass `npm test`

## Deployment

This project is deployed to [DigitalOcean App Platform](https://www.digitalocean.com/products/app-platform/) using [Terraform](https://www.terraform.io/) and [GitHub Actions](https://www.github.com/digitalocean/app_action/). To deploy it to your own account, follow these steps:

1. Fork this repository.
2. Create a [DigitalOcean Personal Access Token](https://cloud.digitalocean.com/account/api/tokens) with `read` and `write` permissions. For more information, see [DigitalOcean's documentation](https://docs.digitalocean.com/reference/api/create-personal-access-token/).
3. Run `terraform init` to initialize the Terraform project as can be seen [here](./deployments/apps/main.tf). This should be run being located at ./deployments/apps directory preferably.
4. Run `terraform apply` to create the necessary infrastructure.

> [!NOTE]
> You need to export the following environment variables before running `terraform apply`:
> - `DIGITALOCEAN_ACCESS_TOKEN`: Your DigitalOcean Personal Access Token.

### How the GitHub workflow works

The [GitHub workflow](./.github/workflows/release-docker.yml) is triggered when a new tag is pushed to the repository. It will build a new Docker image and push it to the [Docker Hub](https://hub.docker.com/r/asyncapi/server-api) repository. Then the [DigitalOcean App Platform GitHub Action](https://www.github.com/digitalocean/app_action/) updates the application with the new image.

## Contribution

Read [CONTRIBUTING](https://github.com/asyncapi/.github/blob/master/CONTRIBUTING.md) guide.

## Supported by





## Contributors

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Maciej Urbańczyk
Maciej Urbańczyk

🚧 💻 📖 🐛 🤔 👀 ⚠️ 🚇 🧑‍🏫
David Pereira
David Pereira

🚧 💻 📖 🐛 🤔 👀 ⚠️ 🚇 🧑‍🏫
Sergio Moya
Sergio Moya

🚧 💻 📖 🐛 🤔 👀 ⚠️ 🚇 🧑‍🏫
Ritik Rawal
Ritik Rawal

💻 📖
Everly Precia Suresh
Everly Precia Suresh

💻 📖
Ashish Padhy
Ashish Padhy

📖 🚇

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!