안녕하세요.
오늘은 Self-hosted용으로 구축이 가능한 Obsidian을 설치하는 방법을 알려드리겠습니다.
Obsidian?
메모 앱을 사용해 보셨던 사용자라면 Obsidian을 한 번쯤은 들어보셨을 거라 생각됩니다. Obsidian은 Markdown 기반으로 동작하는 개인 지식 기반 메모 작성 프로그램입니다. 이를 통해 사용자는 노트에 대한 내부 링크를 만든 다음 연결을 그래프로 시각화하며 구조화된 정보 저장소를 유지하는 기능을 제공합니다.
왜 직접 구축을 하는가?
Notion과 기타 다른 메모앱은 계정과 연동된 클라우드를 통해 메모들이 자동으로 백업되고 타 기기에서도 같은 메모를 확인하실 수 있으실 겁니다. 하지만 Obsidian은 Local에 저장되는 메모앱으로 다른 기기 간 메모를 유지하기 위해선 결제를 하거나 또는 내부 플러그인을 통해 백업환경을 구축해야만 합니다. 벌써부터 번거로움이 느껴지시는 분들을 위해 서버에 Docker를 통해 직접 구축하여 Obsidian을 실행하고 사용하실 수 있습니다.
구축 (docker-cli)
docker run -d \
--name=obsidian \
--security-opt seccomp=unconfined `#optional` \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 3000:3000 \
-p 3001:3001 \
-v /path/to/config:/config \
--device /dev/dri:/dev/dri `#optional` \
--shm-size="1gb" \
--restart unless-stopped \
lscr.io/linuxserver/obsidian:latest
구축 (docker-compose.yml)
services:
obsidian:
image: lscr.io/linuxserver/obsidian:latest
container_name: obsidian
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/config:/config
ports:
- 3000:3000
- 3001:3001
devices:
- /dev/dri:/dev/dri #optional
shm_size: "1gb"
restart: unless-stopped
설치하는 이미지의 공식 사이트에서 제공하는 docker-compose.yml입니다. 추가적인 설정은 이곳을 눌러 확인하시기 바랍니다.
Troubleshooting
한국어는 어디에?
위의 사진은 Obsidian 이미지를 첫 실행 후 언어를 선택하는 화면입니다. 분명 Obsidian은 한국어를 제공하지만 목록에는 보이지 않고, 깨진 글자들 몇 개가 보이고 있습니다. 저 목록 어딘가엔 한국어가 존재합니다. 이 문제를 해결하기 위해선 공식문서를 확인하면 내용이 있습니다.
Language Support - Internationalization
The environment variable LC_ALL can be used to start this image in a different language than English simply pass for example to launch the Desktop session in French LC_ALL=fr_FR.UTF-8. Some languages like Chinese, Japanese, or Korean will be missing fonts needed to render properly known as cjk fonts, but others may exist and not be installed. We only ensure fonts for Latin characters are present. Fonts can be installed with a mod on startup. To install cjk fonts on startup as an example pass the environment variables
-e DOCKER_MODS=linuxserver/mods:universal-package-install
-e INSTALL_PACKAGES=font-noto-cjk
-e LC_ALL=zh_CN.UTF-8
요약하면, CJK폰트를 설치하면 사용할 수 있다로 이해할 수 있습니다. 한국어에 맞게 설정을 바꿔보겠습니다.
-e DOCKER_MODS=linuxserver/mods:universal-package-install
-e INSTALL_PACKAGES=font-noto-cjk
-e LC_ALL=ko_KR.UTF-8
그래도 한국어가 표시가 안 되는데요?
Container Log를 확인해 보니 font-noto-cjk가 설치에 실패하였다는 로그가 남아있었습니다. 아래와 같이 설치할 패키지의 이름을 바꿔주세요. 원문 소개문에 오타가 있었습니다.
font-noto-cjk -> fonts-noto-cjk 또는 fonts-noto-cjk-extra
-e DOCKER_MODS=linuxserver/mods:universal-package-install
-e INSTALL_PACKAGES=fonts-noto-cjk-extra
-e LC_ALL=ko_KR.UTF-8
설치가 성공적으로 진행되었다면 아래와 같이 한국어가 표시될 것입니다.
한국어 표시는 되는데 입력이 안 되는데요?
기분 좋게 메모를 시작하려는데 한국어 입력이 무슨 방법을 써도 되질 않았습니다.
역시 웹서핑을 통해 정보를 알아낼 수 있었습니다.
Docker Baseimage KasmVNC 즉, KasmVNC의 입력 설정을 변경해주어야 한다는 내용이 있었습니다.
The web interface has the option for "IME Input Mode" in Settings which will allow non english characters to be used from a non en_US keyboard on the client. Once enabled it will perform the same as a local Linux installation set to your locale.
화면의 중앙 우측의 ◀버튼을 눌러 옵션을 열고 설정에 들어가 IME 입력 모드를 활성화합니다.
잘 따라오셨다면 한국어가 입력이 되는 것을 확인하실 수 있으실 겁니다!
마치며
이렇게 직접 구축하여 Obsidian을 사용하는 방법과 한국어 입력방법에 대해 알아보았습니다. VNC 위에서 동작하는 것으로 생각이 되는데 한국어 입력은 조금은(?) 불안한 퍼포먼스를 보여주고 있어서 저는 Local 버전으로 아직은 더 사용해야 할 것 같다는 결론을 내렸습니다. 많은 옵션들 중 퍼포먼스에 관련된 옵션들을 활성화한다면 (그래픽카드 관련) 괜찮을 것이라 생각이 들지만, 저는 정기적인 백업을 진행하며 Local에서 사용 중인 Obsidian이 아직은 익숙해서 나중에 기회가 오면 옮겨볼 생각입니다.
긴 글 읽어주셔서 감사합니다
'Development > Docker' 카테고리의 다른 글
[Docker] Kasm 설치 및 사용 후기 (0) | 2024.06.17 |
---|---|
[Docker] 안전하고 최적화된 Dockerfile 만들기 (0) | 2024.06.17 |
[Docker] 즉시 종료되는 docker contatiner 해결방법 (0) | 2024.06.17 |
[Docker] Docker Private Hub - Minio를 곁들인 (2) | 2024.06.17 |
[Docker] 사용하지 않는 이미지, 컨테이너, 볼륨 정리하기 (0) | 2024.06.17 |