diff --git a/README.md b/README.md index 9875f34..57c0fbf 100644 --- a/README.md +++ b/README.md @@ -59,35 +59,42 @@ # Getting Started -## Trying out Authorizer +## Step 1: Get Authorizer Instance + +### Deploy Production Ready Instance + +Deploy production ready Authorizer instance using one click deployment options available below + +| **Infra provider** | **One-click link** | **Additional information** | +| :----------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | +| Railway.app | Deploy on Railway | [docs](https://docs.authorizer.dev/deployment/railway) | +| Heroku | Deploy to Heroku | [docs](https://docs.authorizer.dev/deployment/heroku) | +| Render | [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/authorizerdev/authorizer-render) | [docs](https://docs.authorizer.dev/deployment/render) | + +### Deploy Authorizer Using Source Code This guide helps you practice using Authorizer to evaluate it before you use it in a production environment. It includes instructions for installing the Authorizer server in local or standalone mode. -- [Install using source code](#install-using-source-code) -- [Install using binaries](#install-using-binaries) -- [Install instance on heroku](#install-instance-on-Heroku) -- [Install instance on railway.app](#install-instance-on-railway) +#### Install using source code -## Install using source code - -### Prerequisites +#### Prerequisites - OS: Linux or macOS or windows - Go: (Golang)(https://golang.org/dl/) >= v1.15 -### Project Setup +#### Project Setup 1. Fork the [authorizer](https://github.com/authorizerdev/authorizer) repository (**Skip this step if you have access to repo**) 2. Clone repo: `git clone https://github.com/authorizerdev/authorizer.git` or use the forked url from step 1 3. Change directory to authorizer: `cd authorizer` -5. Create Env file `cp .env.sample .env`. Check all the supported env [here](https://docs.authorizer.dev/core/env/) -6. Build Dashboard `make build-dashboard` -7. Build App `make build-app` -8. Build Server `make clean && make` +4. Create Env file `cp .env.sample .env`. Check all the supported env [here](https://docs.authorizer.dev/core/env/) +5. Build Dashboard `make build-dashboard` +6. Build App `make build-app` +7. Build Server `make clean && make` > Note: if you don't have [`make`](https://www.ibm.com/docs/en/aix/7.2?topic=concepts-make-command), you can `cd` into `server` dir and build using the `go build` command -9. Run binary `./build/server` +8. Run binary `./build/server` -## Install using binaries +### Deploy Authorizer using binaries Deploy / Try Authorizer using binaries. With each [Authorizer Release](https://github.com/authorizerdev/authorizer/releases) binaries are baked with required deployment files and bundled. You can download a specific version of it for the following operating systems: @@ -95,7 +102,7 @@ binaries are baked with required deployment files and bundled. You can download - Mac OSX - Linux -### Step 1: Download and unzip bundle +#### Download and unzip bundle - Download the Bundle for the specific OS from the [release page](https://github.com/authorizerdev/authorizer/releases) @@ -115,11 +122,7 @@ binaries are baked with required deployment files and bundled. You can download cd authorizer ``` -### Step 2: Configure environment variables - -Required environment variables are pre-configured in `.env` file. But based on the production requirements, please configure more environment variables. You can refer to [environment variables docs](/core/env) for more information. - -### Step 3: Start Authorizer +#### Step 3: Start Authorizer - Run following command to start authorizer @@ -131,20 +134,20 @@ Required environment variables are pre-configured in `.env` file. But based on t > Note: For mac users, you might have to give binary the permission to execute. Here is the command you can use to grant permission `xattr -d com.apple.quarantine build/server` -Deploy production ready Authorizer instance using one click deployment options available below +## Step 2: Setup Instance -| **Infra provider** | **One-click link** | **Additional information** | -| :----------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | -| Railway.app | Deploy on Railway | [docs](https://docs.authorizer.dev/deployment/railway) | -| Heroku | Deploy to Heroku | [docs](https://docs.authorizer.dev/deployment/heroku) | -| Render | [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/authorizerdev/authorizer-render) | [docs](https://docs.authorizer.dev/deployment/render) | +- Open authorizer instance endpoint in browser +- Sign up as an admin with a secure password +- Configure environment variables from authorizer dashboard. Check env [docs](/core/env) for more information + +> Note: `DATABASE_URL`, `DATABASE_TYPE` and `DATABASE_NAME` are only configurable via platform envs ### Things to consider - For social logins, you will need respective social platform key and secret - For having verified users, you will need an SMTP server with an email address and password using which system can send emails. The system will send a verification link to an email address. Once an email is verified then, only able to access it. > Note: One can always disable the email verification to allow open sign up, which is not recommended for production as anyone can use anyone's email address 😅 -- For persisting user sessions, you will need Redis URL (not in case of railway.app). If you do not configure a Redis server, sessions will be persisted until the instance is up or not restarted. For better response time on authorization requests/middleware, we recommend deploying Redis on the same infra/network as your authorizer server. +- For persisting user sessions, you will need Redis URL (not in case of railway app). If you do not configure a Redis server, sessions will be persisted until the instance is up or not restarted. For better response time on authorization requests/middleware, we recommend deploying Redis on the same infra/network as your authorizer server. ## Testing @@ -163,8 +166,9 @@ This example demonstrates how you can use [`@authorizerdev/authorizer-js`](/auth