지금까지 설치한 서비스들의 주소를 떠올려 봅시다. 저의 경우 Portainer는 9000번이고, OMV는 8080번으로 바꿔 두었습니다. Transmission은 9091을 썼고, File Browser는 몇 번이더라? 80 + 알파벳 순서로 했으니, a b c d e f… 8006번이겠네요. 외우기가 쉽지 않군요.

사실 이런 문제가 있어 Nginx Proxy Manager로 역방향 프록시를 사용하게 되죠. 그럼 이제 filebrowser.banyazavi.duckdns.org 는 파일 브라우저이고, nextcloud.banyazavi.duckdns.org는 Nextcloud라는 식으로 기억할 수 있죠.

문제는 설치했는지조차 까먹은 Jellyfin이나 Lychee 같은 서비스가 존재할 수도 있다는 거예요.

어떡하면 좋죠? 어디에 정리해 둘 필요가 있어 보여요. 정답은 즐겨찾기


정리가 필요해

물론 즐겨찾기를 활용하는 것도 좋은 방법이고, 요즘 웹 브라우저는 시작 화면을 이렇게 꾸밀 수도 있죠.

MicroSoft Edge 새 탭 페이지

하지만 이건 PC마다 세팅해 주어야 하는 문제가 있죠. 또한, 나스를 다른 분들과 함께 쓰는 경우, 무슨 서비스가 어디 있는지를 매번 알려주거나 즐겨찾기 모음을 보내주는 것도 귀찮은 일이고요.

그래서 설치한 서비스들의 링크를 제공하는 Heimdall과 같은 서비스가 생겼어요.

Heimdall

Heimdall 로고 Heimdall 공식 홈페이지

Heimdall은 노르드 신화의 신으로, 아스가르드의 수문장으로서 라그나로크의 발생을 감시하는 역할을 한다고 하네요. 링크를 감시하는 서비스니 이름은 잘 지은 것 같습니다.

아무튼, 이 서비스는 기본적으로 설치형 서비스의 링크를 관리하고, 지원하는 경우 해당 서비스의 상태를 간단하게 표시해 주는 기능도 있습니다. 그래서 대시보드라고 소개할 수 있죠.

설치도 간단한 편입니다. 설정을 저장할 폴더 하나만 있으면 돼요.

사전 작업

설정 폴더 생성

config 폴더를 만들 거예요. 이제는 쉽죠?

$ mkdir -p /docker/heimdall/config

사용자 및 그룹 확인

헤임달의 공식 도커 이미지는 linuxserver.io가 관리하고 있습니다. 이 그룹은 관리하는 대부분의 도커 이미지를 같은 방식으로 설치하게 하는데요. config 폴더를 만들어 모든 설정을 담고, PUID, PGID 옵션을 통해 root가 아닌 특정 사용자로 실행을 강제하는 것 등이 있죠. 그래서 우리는 config 폴더의 주인을 알아야 합니다.

$ ls -l /docker/heimdall/config

drwxr-xr-x   1 banyazavi users   4096 Jan 16 00:00 config

config 폴더는 banyazavi라는 사용자의 소유, users라는 그룹에 속해있네요. 즉, 헤임달 도커 컨테이너는 이 사용자 권한으로 실행되어야 한다는 의미에요.

이 사용자의 PUID, PGID를 확인해 봅시다. id 사용자명명령을 통해 알 수 있어요.

$ id banyazavi

uid=1000(banyazavi) gid=100(users) groups=100(users),27(sudo)

banyazavi 사용자의 ID (uid) 는 1000이고, users 그룹의 ID (gid) 는 100이네요.

그럼, 준비는 모두 끝났습니다.

도커 컨테이너 생성

이제 아래의 docker-compose 파일 내용을 포테이너의 Add Stack > Web editor 아래의 공간에 복사하여 붙여넣습니다. 헤임달 블로그에 우분투에 도커부터 설치하는 방법이 올라와 있기는 한데요, 이 시리즈를 쭉 읽어왔다면 아래 내용이 더 이해하기 쉬울 거예요.

version: "3"
services:
  app:
    image: linuxserver/heimdall
    ports:
      - 8008:80
    volumes:
      - /docker/heimdall/config:/config
    environment:
      - PUID=1000
      - PGID=100
      - TZ=Asia/Seoul
    restart: unless-stopped

PUIDGUID는 아까 id 명령을 통해 확인한 값을 적어야 합니다. 저는 1000100이었죠. 생성한 config 폴더의 경로도 :/config 왼쪽에 알맞게 적어 주고요.

이제 Deploy the stack 버튼을 눌러봅시다.

서비스 동작 확인 및 설정

헤임달은 서비스 초기 설치에 시간이 조금 걸립니다. 컨테이너의 로그를 확인하거나, 적당히 완료될 때까지 기다립니다. 저는 거의 5분은 기다린 것 같았어요.

기다릴 만큼 기다린 것 같다면, http://나스_IP:8008에 접속해 봅시다.

Heimdall 초기 화면

처음엔 아무것도 없이 텅 비어 있죠? 오른쪽 아래 items 버튼을 누르고, ADD 버튼을 눌러 아이템을 추가해 줍시다.

Transmission 애플리케이션 추가 화면

우선 Application Type에서 사용하는 서비스를 검색해 봅니다. 만약 사용하는 서비스가 여기서 검색이 된다면, 애플리케이션의 로고와 적당한 카드의 색상 그리고 지원되는 경우 서비스 연동을 위한 Config 메뉴가 생기게 됩니다. 제가 이 시리즈에서 소개한 서비스는 대부분 검색이 될 거예요. 이때를 위해 유명한 것만 소개했다!

트랜스미션의 경우 이렇게 정보를 넣으면 헤임달 내에서 전송상황을 대략 확인할 수 있습니다. TEST 버튼까지 눌러서 접속이 잘 되는지 확인하세요.

다 등록하고 나면 이렇게 돼요.

Heimdall 설정 후

트랜스미션은 카드 아래 전송 속도 등의 정보가 표시되는 것을 볼 수 있어요. 링크를 등록하지는 않았지만 젤리핀도 보유한 시리즈나 에피소드의 개수 등을 표시할 수 있습니다. 저의 경우 구글과 네이버는 로고를 직접 추가하여 단순 링크처럼 사용하고 있어요.

그리고 이 페이지를 웹 브라우저의 시작 페이지로 등록해두면 끝이죠. 깔끔하네요.


그리고 남은 이야기

사실 헤임달은 제가 안 써서 그렇지 소개한 것 외에 다른 기능도 있습니다. 계정을 만들어 사용자별로 다른 카드 모음을 제공할 수도 있고요. 배경 화면 역시 바꿀 수 있어요. 서비스가 한 화면 안에 표시하기 버거울 정도로 많다면 Tag를 통해 폴더 구조로 표시할 수도 있어요.

한 번 설정해 두면 그 뒤로는 매우 편하게 쓸 수 있습니다. 헤임달뿐 아니라, 나스의 다른 서비스를 쓰면서 가장 자주 느끼는 장점이 아닌가 싶네요.

댓글남기기