Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/gamgaroo/esmeralda

ASP.NET Core Web App for hosting Unity3D WebGL builds with support of Continuous Delivery via Unity Cloud Webhooks.
https://github.com/gamgaroo/esmeralda

asp-net-core continuous-delivery continuous-deployment hosting notifications slack unity unity-cloud-webhook unity3d webgl

Last synced: about 2 months ago
JSON representation

ASP.NET Core Web App for hosting Unity3D WebGL builds with support of Continuous Delivery via Unity Cloud Webhooks.

Awesome Lists containing this project

README

        

# Esmeralda
ASP.NET Core Web App for hosting Unity3D WebGL builds with support of Continuous Delivery via Unity Cloud Webhooks.

[![GitHub release](https://img.shields.io/github/release/Gamgaroo/Esmeralda/all.svg)](https://GitHub.com/Gamgaroo/Esmeralda/releases/)
[![Build Status](https://travis-ci.org/Gamgaroo/Esmeralda.svg?branch=master)](https://travis-ci.org/Gamgaroo/Esmeralda)
[![BCH compliance](https://bettercodehub.com/edge/badge/Gamgaroo/Esmeralda?branch=master)](https://bettercodehub.com/)

## Getting Started
### Host on IIS
1) Configure *Settings/unity.json* with your Unity Cloud API Key in Unity section
2) Create a Unity Cloud webhook with URL http://{esmeralda-url}/api/builds
3) Start new build on Unity Cloud
4) After build completion Unity Cloud will push a notification to Esmeralda
5) After deployment completion the build will be accessible on http://{esmeralda-url}/index.html

### Run in Docker container
1) Run docker container
```
docker run -e Unity:ApiKey="API_KEY" -p 80:80 gamgaroo/esmeralda
```
2) Create a Unity Cloud webhook with URL http://{esmeralda-url}/api/builds
3) Start new build on Unity Cloud
4) After build completion Unity Cloud will push a notification to Esmeralda
5) After deployment completion the build will be accessible on http://{esmeralda-url}/index.html

### Environment variables

**Required**

Unity:ApiKey

**Optional**

Admin:Username (Default: admin)

Admin:Password (Default: admin)

Slack:Enable (Default: _false_)

Slack:WebhookUrl (Defalt: _WEBHOOK_URL_)

Unity:CloudUrl (Default: _[https://build-api.cloud.unity3d.com](https://build-api.cloud.unity3d.com)_)

**_It is highly recommended that you change the default Username and Password values for security reasons_.**

**Example**
```
docker run -e Admin.Username="admin" -e Admin.Password="password" -e Unity:ApiKey="API_KEY" -e Slack:Enable=true -e Slack:WebhookUrl="WEBHOOK_URL" -p 80:80 gamgaroo/esmeralda
```

## Settings API
You can configure Esmeralda using settings API:

You can _GET_ or _POST_ on _http://{esmeralda-url}/api/settings_

```json
{
"unity": {
"apiKey": "API_KEY",
"cloudUrl": "https://build-api.cloud.unity3d.com"
},
"slack": {
"enable": false,
"webhookUrl": "WEBHOOK_URL"
}
}
```
API is secured with [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication).

## Notifications
You can enable Slack notifications. App notify on Deployment Start, Deployment Success and Deployment Failure.

1) Create Slack webhook on Slack admin page
2) Configure *Settings/slack.json* with your WebhookUrl in Slack section and set Enable to true