글쓴이 보관물: d9ng

syncthing을 이용해 obsidian 동기화 하기

obsidian 💎

옵시디언은 노션과 비슷한 마크다운 언어를 사용하는 메모프로그램이지만 웹 기반의 노션과는 다르게 오프라인으로 설치해서 사용하게 되어있습니다. 노션은 편집기의 GUI가 아주 친절(?) 진입장벽이 거의 없었고 2년전 처음 접했을 때만해도 이것이 21세기인가 싶을 정도로 굉장하다고 생각하면서 아주 유용하게 잘 썼었는데 옵시디언은 초창기에 설치만 했다가 쌩()마크다운 사용법에 기겁을 하고 조금 불친절 하다고 생각되어 금방 지웠던 기억이 있습니다. 하지만 요즘 장안의 화제라고 해서 다시 한번 설치해 보았습니다. 며칠정도 써보니 조금 익숙해 지긴 했는데 여전히 노션보다 불편하긴 합니다. 하지만 노션은 서버에 제 데이터들이 올라가 있는 형태라 뭔가 불안하기도 하고(사실 제 PC보다는 관리가 잘 되고 있을 겁니다 😇) 최근에는 너무 화려해져서 사회부적응의 선봉인 저로써는 뭔가 좀 불편하기도 하여 옵시디언으로 자연스럽게 넘어 가려고 시도 중입니다.

syncthing 🖥️

싱크씽은 아는 사람은 다 아는 동기화 툴입니다. 방식이 조금 특이한 것이 서버가 따로 없고 설치한 기기들끼리 서로 서버도 되고 클라이언트도 되고 하는 방식으로 설정한 폴더를 기본으로 동기화를 시켜주는 툴입니다.
lsyncd 라는 툴과 rsync를 조합하여 비슷하게 쓰시는 분들도 있던데 싱크씽은 기본적으로 서비스 형태로 돌아가지만 웹UI를 제공해서 설정하기가 매우 편합니다.

기본적으로 옵시디언은 vault(보관소)라고 하는 폴더나 디렉토리를 지정하면 그곳에 내가 작성한 문서들이 .md 파일로 저장이 되고 플러그인들과 설정 또한 저장이 되는 구조라서 폴더/디렉토리 하나만 동기화 하면 만사형통이기 이기 때문에 동기화의 기준이 폴더가 되는 싱크씽은 옵시디언의 동기화 툴로 아주 적당합니다.

동기화 하기

어설픈 구성도

우선 제가 가진 기기들은 아래와 같습니다
( 데스크탑, 랩탑, 핸드폰1, 핸드폰2, 파일서버 😎)

이중에 사실 파일서버는 GUI가 없이 터미널로 접속해서 CLI로만 작업하는 시스템이라 옵시디언이 설치되 안될 뿐더러 옵시디언을 쓸 수도 없습니다. 하지만 기왕 가지고 있는 거 모든 기기들의 중계서버로 사용하면 좋겠다는 생각을 해서 일단 싱크씽을 설치해 주었습니다. 그리고 그에 따라 랩탑-데스크탑-모바일 끼리는 서로 직접 동기화를 하지 않고 있습니다. 파일서버가 멍청이가 되었을 때 임시로 쓸 수 있게 랩탑-데스크탑은 연결해 둘까 생각 중인데 원래 사용 중이던 서버가 있으니까 충분히 활용해 보도록 할 예정입니다.
물론 파일서버같은 기기가 없어도 랩탑-데스크탑-모바일을 동기화 해두셔도 충분합니다. 기기가 켜져있기만 하면 3~5초안에 동기화가 진행됩니다.(옵시디언 동기화만 사용한다면요)

옵시디언 설치

[옵시디언](Obsidian – Sharpen your thinking 홈페이지에서 운영체제에 맞는 옵시디언을 설치합니다. 홈페이지에 들어가면 사용중인 운영체제에 맞춰서 다운로드 옵션이 나오니 그냥 다운받아서 설치하시면 됩니다. 옵시디언을 알리는 포스트가 아니니 플러그인이나 테마에 대해서는 여기서 얘기하지 않겠습니다. 설치를 완료하고 처음 실행을 하면 아래와 같이 보관소를 설정하라는 메시지가 뜹니다. 우리는 싱크씽을 사용할 것이기 때문에 더 이상 진행을 하지 않고 방치하고 넘어가겠습니다 😀

옵시디언 처음화면

싱크씽 설치

싱크씽은 설치가 조금 까다로울 수 있습니다. 특히 윈도우에서 설치시 자동시작하게 하려고 하면 품이 조금 드는데 누군가 만들어둔 설치 파일이 있었네요 설치합시다. Releases · Bill-Stewart/SyncthingWindowsSetup (github.com)
설치가 끝나고 나면 로컬에 싱크씽을 설정할 수 있는 웹페이지가 생깁니다. 웹브라우저를 켜고 http://127.0.0.1:8384 를 입력해서 접속하도록 합니다. 초기엔 비밀번호가 없어서 아래처럼 로그인 화면이 나오지 않고 비밀번호를 설정하는게 좋다라는 메시지가 나오는데 어차피 외부에선 접속할 수 없으므로 굳이 비밀번호는 설정 안하셔도 되고 혹시라도 저처럼 비밀번호 성애자라면 비밀번호를 설정해 둡시다.

접속을 하면 아래와 같은 화면이 나옵니다. 저는 크게 손대지 않고 Default Folder만 동기화 하기로 했습니다. 현재 접속한 기기가 맥북이라 맥북에어라고 뜨네요 😅 전 이미 설정되어있는 상태라 다른기기가 뜨는데 처음 설치하시면 오른쪽에 ‘현재 기기’ 밖에 없을 겁니다. 아직 다른 기기는 설치하지 마시구요. 현재기기에 있는 식별자에 주의합시다. 저 식별자로 다른 기기들에 등록을 할 수 있습니다. 안적어 두셔도 됩니다. 메일로 보낼 수 있습니다.

싱크빅 아닌 싱크씽

싱크씽을 설치하고 나면 리눅스나 맥이나 윈도우나 모바일 빼고는 사용자 디렉토리 아래에 /Sync 라는 디렉토리(폴더)가 생성됩니다.
그게 위에 사진에 있는 Default Folder이구요 열어 보시면 아래 그림과 같이 경로가 나옵니다. 개인정보를 좀 가려야 하나 했는데 딱히 가릴 것이 없군요? 폴더 경로를 보면 아까 얘기한데로 경로가 /Users/d9ng/Sync입니다. 보통 따로 설정을 안하셨다면 맥이나 윈도우나 리눅스나 터미널을 켜면 /Users/내계정/ 위치로 가게 됩니다. 거기 바로 아래에 Sync 폴더(디렉토리)가 생성된거죠. 그 아래에 옵시디언 보관소로 쓸 디렉토리나 폴더를 하나 만듭니다. 제 경우는 “~/Sync/d9ng/obisidian-sync” 라고 디렉토리를 생성해서 사용했습니다.

조금 주의해야 할 점은 처음 싱크씽과 옵시디언을 설치한 옵시디언 보관소 폴더를 다른 기기에 동기화 시켜서 다른 기기의 옵시디언이 그걸 사용하는 개념이기 때문에 이쪽 저쪽 서로 동기화 시키다 보면 뭔가 꼬일 수도 있습니다. 이미 옵시디언을 사용하고 계신 분들은 PC내의 다른 폴더에 안전하게(?) 백업 해두시고(바탕화면이나 다른 폴더에 복사만 해두시면 됩니다) 한쪽은 보관소를 비우고 사용하시면 좋을 듯 합니다. 아니면 동기화 개념이 어렵지 않으신 분들은 여러개의 보관소를 두고 사용하셔도 무방할 것 같습니다.

이제 두번째, 세번째 기기에도 싱크씽을 설치하시면 됩니다. 설치를 마치시고 폴더는 따로 건들지 마시고 첫번째 만들었던 싱크씽(옵시디언 보관서 폴더가 있는)의 Default Folder를 다른 모든 기기와 동기화 시키겠습니다.

싱크씽 메인 설정 화면에 오른쪽에 ‘+다른기기추가’ 라는 버튼을 클릭하시면 아래와 같은 기기 추가 페이지가 나옵니다. 특별히 입력할 건 없습니다. 위에 얘기했던 다른 기기의 식별자를 입력하시면 됩니다. 식별자만 입력하시면 바로 동기화가 시작… 되지는 않고 기기간 연결이 완료되었습니다. 동기화는 Default folder 에서 진행합니다. 저장을 누르고 나오셔서 다시 왼쪽(혹은 맨위)에 있는 ‘Default Folder’를 클릭해서 창을 확장하면 아래에 ‘편집’버튼이 있습니다. 클릭해 봅시다

폴더 공유

클릭하면 아래와 같이 폴더 편집 팝업이 열리고 이제 공유를 설정 할 수 있습니다. 여기서도 특별히 볼 것은 없습니다. ‘공유’탭으로 가서 조금 전 연결해준 기기에 폴더를 동기화 하기 위해 공유 할 기기 앞에 있는 체크박스에 체크만 해주시면 됩니다. 그리고 저장 하시면 새로운 기기로 가셔서 보관소를 설정 하실때 동기화된 보관서 폴더가 보일 것입니다. 그걸 사용하시면 옵시디안을 어디서 몇개를 쓰시던 모두 동기화가 됩니다. 기기를 쓰지 않다가 켤때에도 옵시디언의 자료가 너무 많지만 않으면 금방 동기화 됩니다.

여담으로 제가 맥북과 파일서버간에 비밀번호를 넣어둔건 이 훌륭한 맥북이 저기 비밀번호에 자꾸 자동채움을 해서 그런겁니다. 제가 제 파일서버를 믿지 못해 그런것은 아닙니다 🤣

맥북이짜식…

이상 싱크씽을 이용한 옵시디언 동기화를 알아보았습니다. 이 글도 옵시디언으로 작성해 보았습니다. 마크다운 만세!! 🥳🥳🥳🥳🥳

ubuntu 22.04 docker latest 버전 설치 하는 방법

Ubuntu 22.04에 Docker 엔진을 설치해 봅시다. 이전 버전들과 다른 배포판에서도 설치 방법은 크게 다르지 않습니다.
Docker 엔진은 stable 버전과 test버전이 있는데 저는 얼리(?)어댑터 성향이 있지만 굳이 어떤 오류가 있을지 알 수 없는 개발 중인 테스트 버전은 쓰지 않겠습니다.

도커 공식 홈페이지에서 아래의 우분투 64bit 버전이 필요하다고 합니다. (다들 사용하고 있죠? 🙄)

  • Ubuntu Mantic 23.10
  • Ubuntu Lunar 23.04
  • Ubuntu Jammy 22.04 (LTS)
  • Ubuntu Focal 20.04 (LTS)
# Add Docker's official GPG key:
sudo apt update

sudo apt install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

우선 야무지게 apt 저장소를 업데이트 할 준비를 해봅시다. 우선 apt update를 한번 해주고
도커 설치에 필요한 레포지토리를 등록하는데 필요한 패키지들을 설치해주고 차례대로 진행해서 GPG키를 받아옵니다

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

GPG키를 받아왔으면 키를 이용(?)해서 레포지토리를 등록합니다. 이렇게 하면 도커에서 제공하는 최신(?) 도커엔진을 받아올 수가 있습니다.

 sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

이제 본격적으로 도커를 설치해봅시다. 저는 docker-compose를 좋아하니깐 함께 설치하겠습니다.

설치가 모두 끝났으면 커맨드창에 docker –version 이라고 입력해 봅시다.

이렇게 나오면 성공!!

이제 도커로 뭘 해보려고 하면 root 계정이 아닌 이상 자꾸 권한이 없다고 나옵니다. 한글자라도 타이핑을 줄이는 것이 리눅서의 덕목이니 sudo를 붙이지 않고 docker를 실행해 봅시다

sudo usermod -aG docker $USER

이렇게 입력하고 패스워드를 한번만 입력하면 끝입니다. 명령어 실행 후 반드시 로그아웃 후 다시 로그인 해줍니다.
user modfies -append -Group docker $USER 의 줄임입니다. 유저를 수정하는 명령으로 docker 그룹에 $USER(현재 로그인 되어있는 유저)를 추가(append)하라 하는 정도로 알고 계시면 됩니다. 현재 내가 속하지 않았던 group이었던 docker 그룹에 매번 sudo로 인증(?)을 받고 그룹에 접근했어야 되었는데 이제 그룹에 가입해 버렸기 때문에 따로 인증을 받지 않아도 그룹활동(?)을 할 수 있게 되었습니다.

이상으로 도커 최신버전 설치에 대해 알아보았습니다.

ubuntu 22.04 설치 후 제일 먼저 하는 일

APT로 필요한(?) 패키지들 설치하기 – zsh, oh-my-zsh 설치

몇 해 전 우분투로 시작해서 아는 형님의 꼬임으로 민트, 아치, 만자로, 엔데버, 센트… 아주 그냥 의미없이 비주기적으로 배포판만 설치하고 있습니다. 처음엔 아주 어색했지만 이젠 어디에 무엇을 설치하던 공통적으로 배포판 설치 후 마음의 평온을 찾아주는 패키지들을 정리(?)해 보았습니다. 제가 쓸려고 만든 블로그이지만 혹시 궁금한 것이 있으면 성실히 답변 드리도록 하겠습니다.

sudo apt install update && sudo apt upgrade -y && sudo apt autoremove

우선 배포판 설치가 금방 끝났으면 제일 먼저 역시 update를 해줍니다.

sudo apt install curl wget dpkg git zip net-tools \
  btop neofetch cpufetch mlocate zsh \
  nnn exa duf tldr bat neovim

배포판 설치 다음은 필요한(?) 패키지들을 설치해 줄 거에요. 설치한 패키지들이 어디에 쓰이는 지는 따로 포스팅 하겠습니다. 언젠가 어디선가 반드시(?) 필요한 패키지들이니 우선 무지성으로 설치해 줍시다.

패키지 설치가 끝났으면 oh-my-zsh를 설치하고 주로 사용하는 powerlevel10k 테마를 적용 후 각종 alias 설정까지 마치면 리눅스를 쓸 준비(?)가 될 것입니다. 플러그인은 syntax-highlighting 과 autosuggestions 두개만 우선 설치하겠습니다. (사실 나머지는 뭐가 좋은게 있는지 잘 모릅니다 😇) 플로그인이나 패키지들을 하나하나 설치하는 맛도 있지만 vi ~/.zshrc와 source 명령어는 가능한한 적게 치기 위해 우선 모두 준비를 해두고 설정은 마지막에 한번에 하도록 하겠습니다.

▶️ oh-my-zsh는 zsh에 테마나 플러그인등을 사용하기 위한 프레임워크입니다. 이게 없으면 그냥 bash를 쓰는 것도 나쁘지 않습니다.
▶️ 설치는 wget으로 설치 파일을 다운로드 받아서 사용하는 방식입니다. 이후 업데이트가 있을 때에는 로그인 할 때 업데이트 할 것인지를 물어보니 자연스럽게 [엔터]로 진행 하시면 됩니다.
▶️ powerlevel10k 테마는 개인적으로 좋아하는 테마입니다. 혹시 다른 테마가 궁금 하시면 여기로(Themes · ohmyzsh/ohmyzsh Wiki · GitHub) 가셔서 구경하시고 맘에 드는 것으로 설치하셔서 설정하시면 됩니다.

# oh-my-zsh 설치
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# powerlevel10k 테마 설치
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

모두 다운로드 받아버립시다!! (github 만세!!!)

nvim ~/.zshrc

설정파일(.zshrc)을 조져봅시다. 저는 nvim을 좋아해서 nvim을 썼습니다.

.zshrc 전문을 다 보여 드리고 싶지만 주석 부분은 삭제하고 설정 부분만 쓰겠습니다. 필요하신 분은 그냥 다 지우고 복사해서 쓰셔도 됩니다. (수정한 부분은 하이라이트해 두었습니다)

# powerlevel10k를 잘 설치하면 나오는 것
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

export ZSH="$HOME/.oh-my-zsh"

# 테마의 경로를 입력해 줍니다
ZSH_THEME="powerlevel10k/powerlevel10k"

# 플러그인도 추가해 줍니다
plugins=(
  git
  zsh-syntax-highlighting
  zsh-autosuggestions
)

source $ZSH/oh-my-zsh.sh

# alias 명령어 입니다 필요한 부분만 추가해 줍시다
alias ls="exa"
alias ll="exa -lhg -F"
alias lt="exa --tree"
alias cc="clear"
alias vim="nvim"
alias vi="nvim"
alias uu="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y"
alias wt="curl wttr.in/busan\?lang=ko"
alias cat="batcat"
alias man="tldr"

# sudo vi 를 사용하기 위한 함수
function sudo() {
  if [[ $1 == "vi" ]]; then
    command sudo nvim "${@:2}"
  else
    command sudo "$@"
  fi
}

# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

.zshrc 파일을 적용하기 위한 준비가 끝났습니다.

다 하셨으면 :wq 로 저장하고 나오시면 됩니다. (복붙하지 않으셨다면 오타에 주의합시다)

source ~/.zshrc

저장하고 나와도 이걸 해주기 전엔 이전과 같습니다. 왜냐하면 source 명령어로 설정 값을 zsh에 적용해줘야 하기 때문이죠. source명령어가 귀찮다 하시는 분은 logout 했다가 다시 로그인 하셔도 되고, 혹시 시간이 많으시면 재부팅을 하셔도 됩니다. 돈이 많으시다면 저한테 메로나 하나만…

모든 것이 한번에 적용 되었습니다. 감격스럽네요
ls 명령어도 ll 명령어도 lt 명령어도 한번 입력해보세요 🙂 아래처럼 아름(?)답게 나오면 성공입니다.

출처: 내컴퓨터, 해내고야 말았지 않겠습니까?

이후 포스팅은 두번째, 세번째 하는 일들도 준비해보겠습니다. 🙏

cheapest tech log.