Fly.io에 권한 부여자 배포
현재 여러 인증 애플리케이션 옵션을 무료로 사용할 수 있으며 그 중 일부는 오픈 소스입니다. Keycloack, FusionAuth, Gluu 및 Ory가 몇 가지 예입니다. 이러한 제품을 사용해 본 경험으로 볼 때 완전한 문서가 있지만 설치 및 배포 프로세스는 손가락을 튕기는 것처럼 쉽지 않습니다.
몇 주 전에 내가 Product Hunt를 검색했을 때 Authorizer라는 새 제품이 있었습니다. 그런 다음 궁금해서 이것을 시도했습니다. 공식 문서는 Heroku, Render 및 Railway와 같은 다양한 서비스에서 Authorizer를 설치하거나 배포하는 지침을 제공합니다. Fly.io에 배포하려고 합니다. 안타깝게도 설명서를 찾을 수 없고 이에 대한 자습서를 아직 찾지 못했습니다. 그래서 저는 약간의 실험을 하고 결과는 다음과 같습니다.
For more information about Authorizer visit https://authorizer.dev For more information about Fly.io visit https://fly.io/docs
전제 조건
I'm using macOS, you'll need to adapt some commands to the OS you're using.
1단계: Fly.io CLI 설치
맥 OS
brew install flyctl
리눅스
curl -L https://fly.io/install.sh | sh
윈도우
iwr https://fly.io/install.ps1 -useb | iex
2단계: Fly.io에 로그인
Fly.io 계정이 이미 있는지 확인하세요.
flyctl auth login
3단계: Authorizer용 Fly.io 앱 만들기
작업 공간의 디렉토리를 생성하고 생성된 디렉토리로 이동합니다.
flyctl launch --org personal --name authorizer --region lax --no-deploy
참고: 이 샘플에서는
authorizer
지역 및 lax
조직에서 personal
라는 앱을 만들었습니다. Fly.io 지역에 대한 자세한 내용은 this documentation을 참조하십시오.4단계: fly.toml 파일 구성
새 파일
fly.toml
을 찾을 수 있습니다. 이 파일은 Fly.io의 배포 구성 파일입니다.이 부품을
fly.toml
파일에 추가합니다.[build]
image = "lakhansamani/authorizer:latest"
[experimental]
private_network = true
cmd = ["./build/server", "--database_type=postgres"]
allowed_public_ports = []
auto_rollback = true
[env]
PORT = "8080"
FLY_REGION = "sin"
그런 다음 다음과 같이
internal_port
섹션 내에서 8080
를 [[services]]
로 변경합니다.[[services]]
internal_port = 8080
processes = ["app"]
protocol = "tcp"
script_checks = []
전체
fly.toml
파일은 다음과 같습니다.app = "authorizer"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[build]
image = "lakhansamani/authorizer:latest"
[experimental]
private_network = true
cmd = ["./build/server", "--database_type=postgres"]
auto_rollback = true
[env]
PORT = "8080"
FLY_REGION = "sin"
[[services]]
internal_port = 8080
processes = ["app"]
protocol = "tcp"
script_checks = []
[services.concurrency]
type = "connections"
hard_limit = 25
soft_limit = 20
[[services.ports]]
force_https = true
handlers = ["http"]
port = 80
[[services.ports]]
handlers = ["tls", "http"]
port = 443
[[services.tcp_checks]]
grace_period = "1s"
interval = "15s"
restart_limit = 0
timeout = "2s"
5단계: 데이터베이스 준비
우리는 데이터베이스에 Postgres를 사용할 것입니다. 다음 명령을 실행하여 Fly.io에서 Postgres 인스턴스를 생성합니다.
flyctl postgres create \
--organization personal \
--name authorizer-db \
--initial-cluster-size 1 \
--password $(openssl rand -hex 8) \
--region lax \
--vm-size shared-cpu-1x \
--volume-size 3
Postgres 데이터베이스를 연결하려면 다음 명령을 사용하여 연결해야 합니다.
flyctl postgres attach --postgres-app authorizer-db
이 명령은 환경 변수를 추가합니다
DATABASE_URL
. 이 변수 이름은 필수 Authorizer envar와 동일하므로 변수 이름을 제거하거나 변경할 필요가 없습니다.6단계: 배포
앱을 배포하기 전에 일부 구성을 변경해야 합니다. 운 좋게도 Authorizer는 envar를 사용하여 이를 쉽게 만듭니다. 그런 다음
ADMIN_SECRET
에 대한 임의의 문자열을 생성해야 합니다. 이 암호는 관리 콘솔에 대한 인증에 사용됩니다.예를 들어
openssl
를 사용할 수 있습니다.openssl rand -base64 500 | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
Fly.io 앱에 몇 가지 환경 변수를 추가합니다.
flyctl secrets set \
ENV="production" \
ADMIN_SECRET=CHANGE_THIS_BY_WHATEVER_YOU_WANT \
DATABASE_TYPE="postgres" \
SENDER_EMAIL=CHANGE_THIS \
SMTP_HOST=CHANGE_THIS \
SMTP_PASSWORD=CHANGE_THIS \
SMTP_PORT=587 \
SMTP_USERNAME=CHANGE_THIS \
ORGANIZATION_NAME="Feelantera" \
URL="https://authorizer.fly.dev"
Find out more about Environment Variables here.
마지막으로 다음 명령을 실행하여 앱을 배포합니다.
flyctl deploy
배포 프로세스가 완료되면 애플리케이션 로그를 확인합니다.
flyctl logs
Remember: every time you make a change to the envars, Fly.io will redeploy your app.
축하합니다. 응용 프로그램에 대한 인증 서비스가 있습니다!
https://authorizer.fly.dev
를 열고 인증 비밀번호로 ADMIN_SECRET
를 사용하십시오.
Reference
이 문제에 관하여(Fly.io에 권한 부여자 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aris/deploying-authorizer-to-flyio-2mem텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)