미디어, 피트니스 등 추적관리 오픈소스 Ryot구축해보기
안녕하세요. 달소입니다.
앞서 소개해드린 Ryot를 직접 설치하는방법입니다.
미디어, 피트니스 등 추적관리 오픈소스 Ryot[서버 구축(Self-Hosted)] 달소 2024.07.01 안녕하세요. 달소입니다. 오늘 소개해드릴 오픈소스 프로젝트는 Ryot 입니다. 1년전 베타때 ...
docker로 구성하기때문에 매우 손쉽게 구성하실 수 있습니다.
다만 이미지나 영상을 넣으려면 minio나 s3같은 스토리지를 연결해야하네요... 굳이 이렇게 만들어야했나 크흠.,..
아직은 좀더 성숙해야할 프로젝트로 보이긴하네요..
ryot 컨테이너 생성하기
mkdir -p /data/ryot
cd /data/ryot
vi docker-compose.yml
아래 yml 파일에서 postgres의 계정과 PW는 변경 후 사용핮시는게 좋습니다.
services:
ryot-db:
image: postgres:16-alpine # at-least version 15 is required
restart: unless-stopped
volumes:
- ./db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=postgres
container_name: ryot-db
ryot:
image: ignisda/ryot:latest # or ghcr.io/ignisda/ryot:latest
environment:
- DATABASE_URL=postgres://postgres:postgres@ryot-db:5432/postgres
ports:
- "8000:8000"
pull_policy: always
container_name: ryot
docker compose up -d 명령어로 컨테이너를 생성합니다.
생성이 완료되면 ip:8000번 포트로 접근해봅시다.
기본 페이지는 심플하네요 ㅎㅎ
Create a new account를 만들어서 게정을 만듭니다.
로그인을 하면 대시보드가 반겨줍니다.
Settings에서 노출할 항목이나 설정등도 수정이 가능합니다.
심화편(상세설정)
기본적인 설치는 위 docker-compose만 사용해도가능하지만
상세 옵션의 경우 별도의 과정이 추가로필요합니다.
상세 구성옵션은 아래 링크에서 확인이 가능하며
Configuration - Ryot Documentationdocs.ryot.ioRyot Documentation
ryot.yaml 파일을 만들고 마운트 함으로써 설정값을 임의로 조정할 수 있습니다.
테스트 설정은 로컬 계정생성을 못하게하는 옵션입니다.
(allow_registration: false)
vi ryot.yaml
# Settings related to server.
users:
# Whether new users will be allowed to sign up to this instance.
# @envvar USERS_ALLOW_REGISTRATION
allow_registration: false
# Whether to disable local user authentication completely.
# @envvar USERS_DISABLE_LOCAL_AUTH
disable_local_auth: false
# The secret used for generating JWT tokens.
# @envvar USERS_JWT_SECRET
jwt_secret: "testsdfs"
# The number of days till login authentication token is valid.
# @envvar USERS_TOKEN_VALID_FOR_DAYS
token_valid_for_days: 90
그리고 docker-compose.yaml도 수정이 필요합니다.
볼륨쪽 매핑을 추가해줬습니다.
최종 구조는 아래처럼 됩니다.
그리고 docker compose down && docker compose up -d로 컨테이너를 재생성 시켜주면 옵션이 적용됩니다.
위와같은 방식으로 다른설정들도 적용할 수 있습니다.