eLabFTW, 최고의 무료 전자연구노트 셋업 -설치-

eLabFTW, 최고의 무료 전자연구노트 셋업 -설치-

연구실에서 사용할 수 있는 무료 전자연구노트 eLabFTW를 Windows 환경에서 WSL2와 Docker를 활용해 설치하는 단계별 튜토리얼 문서다.

eLabFTW의 DEMO 화면면

eLabFTW의 Demo 화면 모습

eLabFTW란?

eLabFTW무료 오픈소스 전자연구노트(Electronic Lab Notebook, ELN)이다. 연구실에서 실험 데이터, 프로토콜, 결과를 체계적으로 관리할 수 있는 웹 기반 플랫폼으로, Deltablot이라는 프랑스 기업에서 유지하고 개발하는 프로그램이라 생각하면 좋다.

주요 특징

  • 무료 오픈소스: 솔직히 구노나 정부에서 제공하는 전자연구노트나 모두 별로라고 생각된다. 이런 상용 소프트웨어보다 훨씬 저렴하게 사용할 수 있고, 무엇보다 오픈소스이기 때문에 본인이 원하는 기능을 직접 구현하는 것도 가능하다.
  • 웹 기반: 브라우저로 접근 가능하기 때문에 전자기기의 운영체제에 국한되지 않고 다양한 곳에서 접속할 수 있다. 프로토콜을 적어놨다면 실험하다가 그냥 핸드폰으로 볼 수 있다.
  • 데이터베이스 및 위키링크 연동: 실험 데이터를 체계적으로 관리할 수 있다. 위키피디아를 자주 사용했다면 위키링크를 본 적이 있을 것이다. 연구노트 사이에 다른 연구노트 내용을 링크해놓을 수 있기 때문에 옵시디언이나 노션 같은 방식으로 구현할 수 있다.
  • 협업 기능: 연구팀원들과 실시간 공유가 가능하다. 일정 같은 것도 볼 수 있고, 기기 예약이나 기타 사항들도 모두 이 플랫폼에서 처리할 수 있는 것이다.
  • 백업 및 보안: 이게 진짜 최강의 특징이다. 데이터가 당신의 Local 컴퓨터에 직접 저장된다는 것이다. 백업을 하는 것도, 자료를 관리하는 것도 당신의 선택이다. 그런데 전자연구노트로서 조작이 가능한 것은 아닌지 의심이 될 것이다. 이것을 극복하기 위해서 Signature 방식제3기관을 통한 시점인증 시스템이 있다! 걱정하지 말자! ** 결론적으로 eLabFTW는 매우 훌륭한 전자연구노트 플랫폼이라 할 수 있다. 이제부터 설치를 진행해보도록 하자.

공식 설치 방법은 오른쪽 링크를 참고 공식 설치 설명

eLabFTW Windows 설치 및 Mac 설치에 대한 공식 안내

네...? Windows랑 Mac에서는 설치가 안된다구요?

당황하지말자. 기본적으로 이 시스템은 Server 소프트웨어이기 때문에 linux 계열을 요구하고 있으나 Windows에 설치하지 못하는 시스템은 아니다. 지금부터 Windows에 야매로 설치하는 방법을 공유할테니 한번 따라가도록 하자.

준비물:

  • 운영체제: Windows 11 (with WSL2)
  • 당신의 노력: 한 줌

설치 과정

1. WSL2 설정 및 Ubuntu 설치

윈도우에는 WSL2라는 강력한 linux 가상환경이 존재한다. 우리는 이것을 사용할 예정이기 때문에 우선, WSL2를 활성화 하도록 하자.

  1. 작업표시줄 검색창에 Windows 기능 켜기/끄기를 치고 실행하자. 그러면 아래와 같은 것이 나온다. Linux용 Windows 하위 시스템에 체크를 표시하고 확인을 누르면 된다.
  1. 시스템을 다시 시작하라는 메세지가 뜬다면 시스템을 다시 시작한다.
  2. Win+R실행을 호출하고 여기에 cmd를 입력해 명령 프롬프트를 실행한다.
  1. 위처럼 wsl을 입력하면 아마 기본 Ubuntu가 설치될 것이다. 잘 안된다면 구글링을 하자.

2. WSL2에 Docker 설치하기

이 부분이 좀 까다롭다. Docker에는 Docker compose라는 기능이 있는데 이것이 V1, V2로 나뉜다. 자세한건 사실 알 필요 없고, 이제는 V1은 사용하지 않으니까 V2로 설치해야 하는데 그걸 알아보자.

  1. 우선, 설치했던 WSL 환경에 접속하자. CMD 라는 명령프롬프트에서 wsl을 쳐도 되고, 검색창에서 wsl을 검색해서 실행해도 된다.

이런 식의 화면이 보여질텐데, 맨 아랫줄이 조금 다르더라도 당황하지 말자. 본인은 Conda를 설치해놓아서 그런거다. 그냥 무시하고 진행하면 된다. 이제 아래의 코드들을 순차적으로 차근차근히 복사+붙여넣기 하면 된다.

sudo apt-get update
sudo apt-get install -y 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

# 아래 코드도 엔터가 있기 전까지 쭉 긁어서 쓰자.
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo ${UBUNTU_CODENAME:-$VERSION_CODENAME}) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

이렇게 하면 Docker 설치를 위한 APT 저장소 등록이 끝난거다. 복잡하게 보이지만 그렇지 않다! 이제 DockerDocker compose V2 등을 같이 설치하자. 아래 코드를 모두 복사해서 붙여넣자.

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

워후! 이제 필요한 Docker들은 모두 설치된 셈이다.

docker compose version # 예시 출력: Docker Compose version v2.39.1
docker --version # 예시 출력: Docker version 28.3.3, build 980b856

위 2개의 명령어를 wsl에 입력하여 잘 출력되는지 확인해보고 다음으로 진행하면 된다. 참고로 출력된 버전이 달라도 괜찮다. 아마 본인의 프로그램보다 더 최신 프로그램이 설치되었을 것이다.

3. eLabFTW 설치

이제 본격적으로 eLabFTW를 설치할 것이다!

우선, 우리는 elabctl이라는 프로그램을 사용할 것이기 때문에 이것을 사용하기 전에 먼저 설치해야하는 dialog를 설치하자. 아래의 명령어를 또 다시 입력하면 된다.

sudo apt-get install dialog

그리고 이제 elabctl을 설치하자. 이건 그냥 elabftw 설치를 도와주는 스크립트 뭉치인데 편하니까 이걸 쓰도록 하자.

# 아래 코드로 elabctl 파일을 다운 받고 권한을 설정한다.
curl -sL https://get.elabftw.net -o elabctl && chmod +x elabctl
# 아래 코드는 이걸 `bin`에 옮겨서 `terminal`에서 쓸 수 있게 해준다.
sudo mv elabctl /usr/local/bin/
sudo elabctl install

여기까지 진행했다면 dialog로 된 설치 창이 뜰거다. 자세히 기억은 나지 않지만 아래 순서로 따라가자.

  1. 확인
  2. 너무 조아용
  3. 내 컴퓨터
  4. 완료

아마 이럴 것이다. 설치화면을 첨부하고 싶었으나 설치화면으로 가려면 기존에 설치되어있던걸 삭제하라고 하길래 내 기억을 더듬어 보았다. 재설치가 얼마나 귀찮은 줄 아는가… 기회가 되면 포스터를 수정하겠다.

이제 정말 중요한 설정 단계가 남아있다!

정신을 똑바로 차리고 따라와야 한다.

sudo nano /etc/elabftw.yml

위 명령어를 쳐서 파일을 편집하자.

본격적인 엄마 나 무서워 구간이다.

빨간 네모 안에 있는 부분들을 모두 수정해주자. DB_PASSWORD는 나중에 원할하게 migration 할 수 있도록 본인이이 자주 사용하는 비밀번호로 설정하면 된다. 나머지 TIMEZONE 관련 요소들은 Asia/Seoul로 변경하도록 하자.

여기도 수정해주면 된다. SITE_URL에는 본인이 나중에 등록하고 싶은 URL을 쓰면 되는데 나중에 꼭 다룰 기회가 된다면 다루도록 하겠다. 현재는 있으나 마나한 기능. 다만 아래에 있는 MAX_UPLOAD_SIZE 부분은 매우 중요하다. 업로드하는 파일 1개당 최대 용량이 기본적으로는 100MB로 제한 되어있는데 나는 화끈하게 512MB로 늘려놓았다. LC-MS 분석 파일 같은거 올리면 용량이 엄청나기 때문이다.

쭉 내리다보면 PLUGINS를 설정하는 곳이 있는데 highly recommended라고 적혀있다. 싹 다 활성화 해주자. 꼭 falsetrue로 변경 되어있다는 것에 유의하도록 하자.

본인은 DEV_MODE도 켰고, volumes에서 저런 식으로 적어놨다. 하지만 일반적인 사용에서 DEV_MODE켤 필요가 없다. volumes에 추가로 적어놓은 것의 뜻은 Windows가 실행되고 있는 C드라이브elabftw/uploads 폴더와 elabftw 프로그램의 업로드 폴더를 붙여놓아 달라고 요청한 것이다. WSL2 시스템은 하나의 가상 하드 드라이브를 만들어서 사용하는 것이기 때문에 오류에 취약하다. 위와 같이 세팅하면 업로드 파일들은 모두 C드라이브에 무사히 보관할 수 있으며, 구글 드라이브, 원드라이브 같은 클라우드 플랫폼으로 2중 백업 구성이 가능하다. DEV_MODE를 킨 것은 추후 소스코드 수정 시 해당 부분이 바로 반영 될 것이라고 기대하고 그렇게 한 것인데 알고보니 Cache 기능만 비활성화 되는거지, 소스코드를 minify 하는 건 따로 진행해야 하더라. 이걸 쓰지 않고 소스 코드를 고치려고 한다면 yarn buildadll 명령어를 쓰면 아마 해결 될 것이다. 이건 나중에 후속 포스터에서 더 다룰 것이므로 지금은 신경쓰지 않아도 된다.

MySQL이 업데이트 되면서 마운팅 드라이브에서 I/O 오류를 일으키는 것 같다. 고급 사용자들은 아마 MySQL 정보를 다른 Local 저장소에 마운팅하고 싶을텐데 WLS2 환경을 사용하고 있다면 적어도 윈도우 I/O를 거치도록 만들지는 말자. 여기까지 모든 설정을 완료했다면 Ctrl+SCtrl+X를 눌러서 저장하고 nano 편집기를 종료하자.

sudo elabctl start를 입력해서 뭔가 실행되는 것처럼 보이게 해보자.

성공적으로 수행되었다면 위와 같은 화면으로 출력된다.

하지만 아직 끝나지 않았다. 아래 명령어를 입력하자.

sudo elabctl initialize

오류 발생 시 대처

만약 여기 부분에서 오류가 발생했다면 아마 MySQL 컨테이너에서 elabftw 계정이 만들어지지 않았기 때문일 수 있다. docker ps를 입력해서 정상적으로 출력되고 있는 것을 보았다면, 이제 계정 상태를 확인할 차례다.

docker exec -it mysql mysql -u root -p
  1. 설정했던 MySQL 암호를 입력하자.
  2. SELECT user, host FROM mysql.user; 입력하여 확인
  3. 아래 명령어를 입력하는데, 설정했던_MySQL_암호 부분은 설정했던 것에 맞춰서 바꾼 뒤에 입력하면 된다.
CREATE USER 'elabftw'@'%' IDENTIFIED BY '설정했던_MySQL_암호';
GRANT ALL PRIVILEGES ON *.* TO 'elabftw'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

설치 완료, 접속

여기까지가 끝이다. 이제 접속을 해야할텐데 문제는 지금 WSL2로 열어놓은 Ubuntu OS 내에 접속을 해야한다는 것이다. 무슨 말인지 잘 모를 수 있다.

  • 아래 명령어를 WSL2에 입력해보자.
  • ip addr | grep 'inet '
  • 여기에서 eth0 이라는 부분이 있을텐데, 그 IP로 접속할거니까 꼭 기억해주자.

기본적으로 eLabFTW443 포트를 사용한다. 아는 사람은 알겠지만 이건 HTTPS로 접속한다는 이야기다. 근데 모르는 사람은 모를 이야기… 세세한 것은 신경쓰지 말고 그냥 방금 찾은 IP를 주소창에 https://IP번호 형식으로 입력하면 된다.

뭐에요, 경고장이 왜 떠요!

이건 자연스러운 현상이다. HTTPS 프로토콜로 접속했는데 인증서가 없어서 저런 경고가 뜨는 건데, 고급에서 안전하지 않음으로 계속하기 누르면 된다. 아마 처음 접속한다면 https://IP주소/register.php에 접속해서 이것저것 설정하면 될 것이다.

아직은 WSL2에서만 접속이 가능한 상태이다. 이것을 모두가 쓸 수 있도록 하려면 본인 컴퓨터 IP로 연결 요청을 받았을 때 WSL2 IP로 전환해주는 것을 설정해야하고, 다음으로는 외부에서 접속할 때 본인 컴퓨터 IP로 연결 요청을 할 수 있도록 DDNS 같은 것들을 설정해야한다. 이것은 추후에 다루도록 하자.

싱겁지만 이렇게 끝이다. 다음 구성은 아래와 같이 작성해볼까 한다.

  1. eLabFTW, 최고의 무료 전자연구노트 셋업 -네트워크 설정-
  2. eLabFTW, 최고의 무료 전자연구노트 셋업 -소스코드 건들기-
  3. eLabFTW, 최고의 무료 전자연구노트 셋업 -업데이트-

참고 자료


이 글은 eLabFTW 설치의 기본적인 틀을 제공합니다. 실제 설치 시에는 공식 문서를 참고하시기 바랍니다.