Cosmos 설치하고 사용해보기
새해 복 많이 받으세요🎉
안녕하세요, 오늘은 Cosmos-Server 를 설치하고 사용하는 글을 남겨보고자 합니다.
서버 포럼의 글들을 훑어보다가 이런 글을 발견하게되었습니다.
슬슬 NPM말고 다른걸 사용해볼까 마음먹고 있었는데, 곧 신년이니 한번 바꿔보기로 하였습니다.
1. 도커 컨테이너 생성
저는 Proxmox를 이용하고 있기때문에 Proxmox에서 진행을 하도록 하겠습니다.
우선 설치하고자 하는 노드의 쉘에 접속한 후, 도커 컨테이너를 설치하는 스크립트를 실행시킵니다.
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/docker.sh)"
스크립트는 Proxmox VE Helper Script에서 가져왔습니다.
램이나 디스크 크기는 나중에 변경이 가능하니 기본 설정으로 설치하시면 됩니다.
이후 Portainer와 Agent는 설치 X, 도커 Compose만 설치해주시면 됩니다.
2. Cosmos-Server 이미지를 도커에 올리기
이제 생성된 도커 컨테이너의 쉘에 접속합니다.
그리고 아래 명령어를 통해 Cosmos-Server 를 도커에 올려줍니다.
docker run -d -p 80:80 -p 443:443 -p 4242:4242/udp --privileged --name cosmos-server -h cosmos-server --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /:/mnt/host -v /var/lib/cosmos:/config azukaar/cosmos-server:latest
명령어의 세부 설정이 필요하시다면 Cosmos-Server의 공식 github를 참고하실 수 있습니다.
설치가 완료되었다면 컨테이너의 ip로 접속을 해주면 됩니다.
ip는 아래의 명령어를 통해 확인하실 수 있습니다.
ip addr
3. Cosmos-Server 초기설정
컨테이너의 ip로 접속을 하면 아래와 같은 초기설정 화면을 확인하실 수 있습니다.
처음 설치를 하는 것이니 Clean Install에 체크를 하고 Start >를 눌러줍니다.
Cosmos-Server가 도커의 상태를 확인합니다.
올바르게 설정되었다면 Next > 를 눌러 다음 단계로 이동합니다.
아직 데이터베이스가 구성되지 않아 구성이 필요하다는 문구가 표시됩니다.
저는 자동 구성을 선택하고 Connect를 눌러주겠습니다.
만약 사용자 구성이 필요없거나, 본인의 자격증명 데이터베이스가 존재한다면 구성을 변경해주시면 됩니다.
Connect를 눌러주고 잠시 기다리면 다음단계로 넘어갈 수 있습니다.
Next > 를 눌러주겠습니다.
다음은 인증서를 구성하는 단계입니다.
만약 본인의 도메인 주소가 없다면 로컬 ip를 입력하실 수 있습니다.
그런 경우, 자체 서명 인증서를 사용할 수 있습니다.
저는 duckdns 도메인이 있으므로 이걸 사용하도록 하겠습니다.
인증서 발급에 사용할 이메일과, 와일드 카드 인증서를 사용하기 위한 DNS Challenge용 토큰을 입력해줍니다.
도메인을 사용하셨다면 해당 컨테이너로 80 포트와 443 포트도 뚫어주셔야합니다.
그런 다음, Update 버튼을 클릭해 다음 단계로 넘어갑니다.
마지막 단계는 Cosmos-Server의 관리자 계정을 생성하는 단계입니다.
Nickname은 로그인에 사용될 아이디를,
Email은 이메일을,
Password에는 로그인에 사용될 비밀번호를 입력해주시면 됩니다.
완료했다면 Create 버튼을 눌러 초기 설정을 완료해줍니다.
마지막으로 Apply And Restart > 버튼을 눌러주면 설정이 완료됩니다.
이후 설정이 진행되며, 인증서 생성에 사용되었던 도메인으로 이동됩니다.
Proxmox 에서 도커 컨테이너를 재부팅 시켜줍니다.
4. 설치 완료
성공적으로 설치를 하셨다면 아래 사진처럼 로그인 페이지를 확인하실 수 있습니다.
이전 초기 설정 단계에서 지정해준 Nickname과 Password를 입력하여 로그인해주도록 합니다.
저는 이미 이것저것 추가를 해둔 상태입니다.
아무튼 이런 화면이 나왔다면,
축하드립니다, 성공적으로 설치가 되었습니다!
5. 앱 추가하기
Cosmos는 Market이 존재합니다.
Cosmos 측에서 선정한 프로그램들이 Market에 존재하며, 간단하게 설치가 가능합니다.
저는 IT-Tools를 설치해보도록 하겠습니다.
IT-Tools 카드를 선택하면 우측에 배너가 나옵니다.
IT-Tools에 대한 간략한 설명과 이미지가 존재하며, 하단에는 Install 버튼이 있습니다.
Install 버튼을 눌러줍니다.
버튼을 누르면 서비스의 이름과 서브도메인을 지정할 수 있습니다.
Customize 버튼을 누르면 볼륨 등의 도커 설정과 자동 업데이트 여부 등을 지정할 수 있습니다.
설정을 완료하고 Next 버튼을 눌러줍니다.
Next 버튼을 누르면 Create 버튼이 활성화됩니다.
Create 버튼을 눌러줍니다.
성공적으로 설치가 되었습니다.
추가된 앱은 메인화면에 바로가기가 생성됩니다.
서비스가 제대로 동작합니다.
정말 간편합니다.
만약 Market에 없는 앱을 설치하고자 한다면
Compose 파일을 추가하거나
Portainer와 비슷한 UI를 이용해 생성할 수도 있습니다.
6. 프록시 설정하기
Cosmos는 리버스 프록시의 역할도 하기 때문에,
Cosmos에서 실행되고 있지 않은 앱이라도 프록시로 추가할 수가 있습니다.
좌측 배너의 URLs를 클릭한 후, Create 버튼을 눌러줍니다.
팝업창에 프록시할 서비스의 이름과 설명을 입력합니다.
그리고 Mode를 Proxy로 지정해줍니다.
Target URL 에는 프록시의 대상이 될 서비스의 주소를 입력해줍니다.
Source 부분은 2가지 옵션이 존재합니다.
-
Use Host
Use Host 옵션은 도메인 주소 앞에 서브 도메인을 붙이는 방식을 사용합니다.
service.domain.com 과 같은 형태가 됩니다.
보통 이 방법을 사용합니다.
-
Use Path Prefix
Use Path Prefix 옵션은 도메인 주소 뒤에 경로를 지정하는 방식을 사용합니다.
domain.com/service 와 같은 형태가 됩니다.
이 방법은 서비스에 따라 동작하지 않는 경우가 있으므로 권장되지 않는 방법입니다.
그 아래엔 자격 증명의 요구 여부, 스마트 쉴드의 보호 여부, 자체 VPN이 아니면 접속 불가 등의 옵션을 지정할 수 있습니다.
자격 증명을 요구하도록 설정했다면, 해당 링크에 접속할 때 위쪽 사진처럼 로그인을 요구합니다.
마지막, Advenced Settings 에서는 메인메뉴에서 숨기기 여부, 화이트 리스트의 지정 등이 가능합니다.
설정을 마치고 Confirm을 눌러주시면 리버스 프록시 설정이 완료되고, 지정하신 주소로 접속이 가능해집니다.
7. 마무리
Cosmos를 설치하고 사용해보는 긴 여정이 끝났습니다.
아직 길게 사용해본건 아니지만 정말 만족스럽네요.
NPM에 질리신 분들은 한번 넘어와보셔도 괜찮을 것 같습니다.
그 외에
아직 사용해보지 않아 자세히 말씀드리기는 어렵지만, 자체 VPN도 제공합니다.
해당 VPN에 연결하지 않으면 서비스에 접속하지 못하도록 하거나
DNS를 통해 광고를 차단하는데 사용할 수 있다고 합니다.
베타서비스가 종료될때까지는 무료로 사용할 수 있다고 합니다.
긴 글 읽어주셔서 감사합니다.
cmt alert