Skip to content

TMA‐2 서버 구축 가이드

LUFT-AQUILA edited this page Oct 19, 2023 · 12 revisions

대부분의 경우 기본으로 제공되는 TMA-2 텔레메트리 서버(monolith.luftaquila.io)를 사용하면 됩니다.

기본 모노리스 서버를 사용하려면 먼저 사용자 등록을 해야 합니다.
[email protected] 로 학교, 팀 이름, 사용할 차량 ID와 key를 보내 주세요.

별도로 서버를 구축하여 운영하고 싶다면 본 가이드를 따라 직접 서버를 self-hosting할 수 있습니다.

기본적인 도메인 설정, Linux 명령어 등을 알고 있다고 가정하고 작성된 가이드입니다.

1. 도메인

서버로 사용할 도메인 주소를 구입하고, 해당 도메인 이름이 서버 IP 주소를 가리키도록 DNS 레코드를 설정합니다.

이용하는 도메인 업체에 따라 설정 과정이 달라지므로 본 가이드에서 별도로 설명하지 않습니다.

2. NGINX

Install NGINX 문서에 따라 NGINX 웹 서버를 설치합니다.

3. monolith

모노리스 저장소를 클론합니다.

git clone https://github.com/luftaquila/monolith.git
cd monolith

4. Configuration

NGINX 설정

monolith/server/monolith.conf 파일을 열어 <YOUR_SERVER_DOMAIN>, <YOUR_MONOLITH_PORT>, <YOUR_MONOLITH_PATH> 으로 표시된 부분을 바꿉니다.

  • <YOUR_SERVER_DOMAIN>
    서버의 도메인 주소입니다. (ex. monolith.luftaquila.io)
  • <YOUR_MONOLITH_PORT>
    TMA-2 서버가 실행되는 포트 주소입니다. server/config.json 과 함께 임의의 값으로 동일하게 설정해 줍니다.
  • <YOUR_MONOLITH_PATH>
    monolith 저장소 경로입니다.

도메인 TLS 인증서를 발급받고 <YOUR_SSL_CERTIFICATES> 자리에 ssl_certificate, ssl_certificate_key, ssl_trusted_certificate 등 필요한 SSL 설정값들을 입력합니다. Configuring HTTPS servers 를 참고합니다.

다 설정했다면 파일을 NGINX 설정 파일 경로로 옮기고 NGINX를 재시작합니다.

sudo cp server/monolith.conf /etc/nginx/sites-available
cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/monolith.conf monolith.conf
sudo systemctl restart nginx

TMA-2 설정

NPM 모듈 설치

monolith/server 경로에서 npm install 명령을 실행해 NPM 모듈들을 설치합니다.

채널 설정

다음으로 monolith/server/config.json 파일의 channels 값을 설정합니다.

이 목록에 등록된 채널 name과 key를 가진 TMA-1과 클라이언트만 서버에 접속할 수 있습니다.

채널 key는 단순 검증을 위해 사용하는 값으로, secret이 아닙니다. 통신 전체에서 평문으로 처리됩니다.

Linux 서비스 등록

다음 명령을 실행해 모노리스 서비스를 등록하고 실행합니다.

sudo cp monolith/server/monolith.service /etc/system/system
sudo systemctl daemon-reload
sudo systemctl enable monolith
sudo systemctl start monolith

5. 운영

채널을 새로 등록하거나 수정하려면 monolith/server/config.json 값을 편집한 후 sudo systemctl restart monolith 명령을 실행하면 됩니다.

모든 통신은 monolith/server/log 디렉터리에 날짜별로 구분되어 기록됩니다.