본문 바로가기

IT/NAS

[자작NAS] 우분투 서버에 Docker로 Joplin 설치

반응형

Joplin은 오픈소스 메모 작성(note-taking) 애플리케이션입니다.

Joplin

Joplin을 NAS에 설치하면 PC나 안드로이드, 아이폰 앱 등을 통해 메모 동기화가 가능합니다.

언제든지 메모를 기록하고 바로 찾아볼 수 있게 됩니다.

Docker로 Joplin 서버를 실행하는 방법을 알아보겠습니다.

 

1. PostgreSQL 데이터베이스 설정

Joplin을 설치하려면 PostgreSQL 데이터베이스를 연동해야 합니다.

PostgreSQL의 설치는 아래 링크를 통해 확인 가능합니다.

2022.02.14 - [IT/NAS] - [자작NAS] 우분투 서버에 Docker로 PostgreSQL 설치

PostgreSQL가 처음 설치되는 경우와 이미 존재하는 경우와 따라서 진행 방법이 달라집니다.

1) 처음 PostgreSQL 컨테이너를 생성하는 경우

처음 PostgreSQL 컨테이너를 생성하는 경우 -e 로 다음 값들을 지정해주면 됩니다.

POSTGRES_USER joplin
POSTGRES_DB joplin

전체적인 명령어는 다음과 같습니다.

sudo docker run -d \
--name=postgres \
-e POSTGRES_PASSWORD='pg_password' \
-e POSTGRES_USER='joplin' \
-e POSTGRES_DB='joplin' \
-v /data/postgres/data:/var/lib/postgresql/data \
postgres

명령어의 pg_password 부분은 원하는 비밀번호를 입력하면 됩니다.

기본 계정이 joplin으로 생성되고 같은 이름으로 데이터베이스가 생성됩니다.

2) 기존 PostgreSQL이 존재하는 경우

기존에 사용 중인 PostgreSQL이 존재하는 경우 사용 중인 DB를 연결해서 사용할 수 있습니다.

사용자와 데이터베이스를 직접 생성해주면 됩니다.

sudo docker exec -it postgres psql -U postgres

명령어의 -U postgres는 PostgreSQL의 기본 계정입니다.

DB에 접속한 후 joplin이라는 이름으로 계정과 데이터베이스를 생성해주면 됩니다.

CREATE DATABASE joplin;
CREATE USER joplin WITH ENCRYPTED PASSWORD 'pg_password';
GRANT ALL PRIVILEGES ON DATABASE joplin TO joplin;
\q

명령어의 pg_password 부분은 원하는 비밀번호를 입력해주면 됩니다.

PostgreSQL 버전이 15 이상인 경우 Joplin에서 다음과 같은 에러가 발생할 수 있습니다.

permission denied for schema public

이 에러가 보이는 경우 \q 명령어 전에 다음 명령어를 추가로 입력하면 됩니다.

\c joplin postgres
GRANT ALL ON SCHEMA public TO joplin;

public schema에 권한을 추가로 주면 됩니다.

 

2. Joplin 컨테이너 생성

Joplin 컨테이너를 생성하기 전에 네트워크를 생성하고 postgres를 추가합니다.

sudo docker network create joplin
sudo docker network connect joplin postgres

이제 Joplin 컨테이너를 생성하면 됩니다.

sudo docker run -d \
--name=joplin \
--network=joplin \
--restart=unless-stopped \
-p 22300:22300 \
-e APP_PORT=22300 \
-e APP_BASE_URL='app_base_url' \
-e DB_CLIENT=pg \
-e POSTGRES_PASSWORD='pg_password' \
-e POSTGRES_DATABASE='joplin' \
-e POSTGRES_USER='joplin' \
-e POSTGRES_PORT=5432 \
-e POSTGRES_HOST='postgres' \
joplin/server

app_base_url에는 Joplin을 위한 URL을 입력해주면 됩니다.

https://http://로 시작하는 주소를 입력해주면 됩니다.

DuckDNS 등을 사용 중이라면 서브 도메인을 포함해서 주소(예: https://joplin.xxx.duckdns.org)를 입력해주면 됩니다.

pg_password 부분은 PostgreSQL의 비밀번호(pg_password에 입력했던 값)를 입력해주면 됩니다.

정상적으로 컨테이너가 실행되면 웹 브라우저에서 접속이 가능합니다.

 

3. Joplin 접속

웹 브라우저에 주소를 입력해서 Joplin에 접속하면 다음과 같이 로그인 페이지가 표시됩니다.

Joplin

기본 계정 정보는 Email이 admin@localhost이고 비밀번호가 admin입니다.

기본 계정은 보안에 취약하기 때문에 로그인을 한 후 바로 계정 정보를 변경해줘야 합니다.

비밀번호 변경

화면의 Change it now 버튼을 클릭해서 계정 정보를 변경해주면 됩니다.

프로필 설정

각 필드에 값들을 입력해주고 Update profile 버튼을 클릭합니다.

Full name 이름
Email 계정으로 사용할 이메일 주소
Password 비밀번호
Repeat password 비밀번호 재입력

이메일 주소를 변경하면 해당 이메일로 확인 메일이 보내진다고 하는데 전송이 안됩니다.

확인 이메일 전송

이 경우 DB에 접속해서 직접 링크를 가져오면 됩니다.

먼저 아래 명령어로 DB에 연결합니다.

sudo docker exec -it postgres psql -U joplin -d joplin

DB에 접속한 후에 아래 명령어로 테이블 목록을 확인합니다.

\dt

다음과 같이 테이블 목록이 표시됩니다.

테이블 목록

아래 명령어로 emails 테이블의 내용을 확인합니다.

select * from emails;

테이블의 body가 [Confirm email]로 시작하는 부분을 보면 링크가 있습니다.

링크 부분을 복사해서 웹 브라우저에 연결하면 계정 변경이 완료됩니다.

계정 확인이 완료되었으면 아래 명령어로 psql을 빠져나오면 됩니다.

\q

이제 새로운 계정과 비밀번호로 접속이 가능해집니다.

기본 계정과 비밀번호는 보안에 취약할 수 있기 때문에 새로운 계정을 입력해서 사용하는 것을 추천합니다.

 

4. 앱 다운로드 및 동기화 설정

아래 링크에서 PC, 안드로이드, 아이폰 앱 등을 다운로드할 수 있습니다.

Joplin - an open source note taking and to-do application with synchronisation capabilities (joplinapp.org)

 

Joplin - an open source note taking and to-do application with synchronisation capabilities

Running in prod mode! Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or

joplinapp.org

원하는 앱을 설치한 후 동기화 설정을 진행합니다.

동기화 설정

각 부분을 입력하고 Check synchronisation configuration 버튼을 눌러서 확인하면 됩니다.

Synchronisation target Joplin Server (Beta)
Joplin Server URL Joplin 서버 주소
Joplin Server email 계정(이메일 주소)
Joplin Server password 계정 비밀번호

값들을 입력하고 버튼을 눌렀을 때 Success!가 표시되면 정상적으로 동기화 설정이 완료된 것입니다.

다른 기기에서 동일하게 동기화를 설정하면 메모들이 동기화되어 표시되는 것을 볼 수 있습니다.

이것으로 Joplin 설정이 완료됩니다.

반응형