97 lines
3.2 KiB
Markdown
97 lines
3.2 KiB
Markdown
<img src='https://raw.githubusercontent.com/local-first-web/branding/main/svg/relay-h.svg'
|
|
width='600' alt="@localfirst/relay logo"/>
|
|
|
|
This is a deployment wrapper for [@localfirst/relay](https://github.com/local-first-web/relay).
|
|
|
|
Jump to instructions for:
|
|
[Glitch](#deploying-to-glitch) |
|
|
[Heroku](#deploying-to-heroku) |
|
|
[AWS](#deploying-to-aws-elastic-beanstalk) |
|
|
[Google](#deploying-to-google-cloud) |
|
|
[Azure](#deploying-to-azure) |
|
|
[local server](#installing-and-running-locally)
|
|
|
|
## Deploying to Glitch
|
|
|
|
You can deploy this relay to [Glitch](https://glitch.com) by clicking this button:
|
|
|
|
[![Remix on Glitch](https://cdn.glitch.com/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button.svg)](https://glitch.com/edit/#!/import/github/local-first-web/relay-deployable)
|
|
|
|
Alternatively, you can remix the [**local-first-relay**](https://glitch.com/edit/#!/local-first-relay) project.
|
|
|
|
![image](./glitch-screenshot.png)
|
|
|
|
## Deploying to Heroku
|
|
|
|
This server can be deployed to [Heroku](https://heroku.com). By design, it should only ever run with a single dyno. You can deploy it by clicking on this button:
|
|
|
|
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
|
|
|
|
Or, you can install using the [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) as follows:
|
|
|
|
```bash
|
|
heroku create
|
|
git push heroku main
|
|
heroku open
|
|
```
|
|
|
|
## Deploying to AWS Elastic Beanstalk
|
|
|
|
To install using the [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html).
|
|
|
|
```bash
|
|
eb init
|
|
eb create
|
|
eb open
|
|
```
|
|
|
|
## Deploying to Google Cloud
|
|
|
|
To install using the [Google Cloud SDK](https://cloud.google.com/sdk/docs/):
|
|
|
|
```bash
|
|
gcloud projects create my-local-first-relay --set-as-default
|
|
gcloud app create
|
|
gcloud app deploy
|
|
gcloud app browse
|
|
```
|
|
|
|
## Deploying to Azure
|
|
|
|
To install using the [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) installed:
|
|
|
|
```bash
|
|
az group create --name my-local-first-relay --location eastus
|
|
az configure --defaults group=my-local-first-relay location=eastus
|
|
az appservice plan create --name my-local-first-relay --sku F1
|
|
az webapp create --name my-local-first-relay --plan my-local-first-relay
|
|
az webapp deployment user set --user-name USERNAME --password PASSWORD
|
|
az webapp deployment source config-local-git --name my-local-first-relay
|
|
git remote add azure https://USERNAME@my-local-first-relay.scm.azurewebsites.net/my-local-first-relay.git
|
|
git push azure main
|
|
az webapp browse --name my-local-first-relay
|
|
```
|
|
|
|
## Installing and running locally
|
|
|
|
```bash
|
|
yarn
|
|
yarn start
|
|
```
|
|
|
|
You should see confirmation on the command line that it's running.
|
|
|
|
```
|
|
🐟 Listening at http://localhost:8080
|
|
```
|
|
|
|
You can visit that address with a web browser to confirm that it's active. If it is, you'll see this:
|
|
|
|
<img src='https://github.com/local-first-web/relay/raw/main/images/screenshot.png' width='500' align='center' />
|
|
|
|
## AWS Lambda, Azure Functions, Vercel, Serverless, Cloudwatch Workers, etc.
|
|
|
|
Since true serverless functions are stateless and only spun up on demand, they're not a good fit for
|
|
this server, which needs to remember information about connected peers and maintain a stable
|
|
websocket connection with each one.
|