f4ctor
꿈을 꾸고 있습니다.

시놀로지 나스 도커에 YOURLS 설치하기

yourls


YOURLS는 무엇인가요?

YOURLS는 Your Own URL Shortener의 약자로, 개인이 설치하여 운영할 수 있는 PHP 기반의 URL 단축 서비스입니다.
‘Bitly’, ‘T.LY’ 등 이미 시중에 다양한 URL 단축 서비스가 나와 있지만, 타사의 서비스에 의존하고 싶지 않거나 자신이 소유한 도메인을 가지고 URL을 단축하고 싶다면 사용을 고려해 볼 만합니다.

글에서 사용된 환경은 다음과 같습니다.

  • NAS: Synology DS920+
  • DSM: 7.1.1-42962 Update 1
  • Docker: 20.10.3-1308 패키지

사전 작업

매핑할 폴더 만들기

docker 공유 폴더에 “yourls” 폴더를 만들고, 그 안에 DB가 들어갈 “mariadb” 폴더와 서비스가 들어갈 “www” 폴더를 만들어주세요.

역방향 프록시 설정

도메인을 생성한 컨테이너와 연결하기 위한 준비입니다.
제어판 -> 로그인 포털 -> 역방향 프록시에 들어가 ‘설정’을 클릭해 주세요.

아래 사진과 같이 입력해 주세요.
‘호스트 이름’에는 사용할 자신의 도메인을 입력해 주세요.

상단 ‘사용자 지정 머리글’ 탭을 클릭하고 아래와 같이 생성해 주세요.

머리글 이름
Upgrade$http_upgrade
Connection$connection_upgrade

인증서 만들기

https 사용을 위해 인증서를 만들고 설정합니다.
제어판 -> 보안 -> 인증서 -> 추가를 누르고 ‘새 인증서 추가’를 체크해 주세요.

‘사전 작업’의 ‘호스트 이름’에 적었던 자신의 도메인을 ‘도메인 이름’과 ‘주제 대체 이름’에 적어주세요.

‘Let’s Encrypt에서 인증서 얻기’를 체크해 주세요.

다음을 누르고 잠시 기다리면 아래 사진과 같이 인증서가 만들어진 것을 확인할 수 있습니다.

만들어진 인증서를 클릭하고 상단의 ‘설정’ 버튼을 클릭해 주세요.
설정한 도메인을 찾아 ‘역방향 프록시’에서 설정한 ‘호스트 이름’과 일치 시켜주고 ‘확인’ 버튼을 클릭해 주세요.


다운로드

도커 레지스트리에서 YOURLS와 MariaDB를 찾고 설치해 주세요.
버전은 ‘lateset’를 선택해 주세요.


MariaDB 컨테이너 생성

네트워크 설정

이미지 -> mariadb를 더블클릭해 주세요.
네트워크는 디폴트 상태(아래 사진과 같은)로 ‘다음’ 버튼을 클릭해 주세요.

‘컨테이너 이름’을 작성하고, 좌측 하단의 ‘고급 설정’ 버튼을 클릭해 주세요.

파라미터 설정

더 많은 파라미터를 확인하고 싶으시면 https://hub.docker.com/_/mariadb 를 참고해 주세요.

변수
TZAsia/Seoul
MARIADB_RANDOM_ROOT_PASSWORDyes
MARIADB_DATABASEyourls (사용될 DB의 이름을 설정합니다. 변경 안 하는 걸 추천)
MARIADB_USERyourls (사용될 DB 유저의 이름입니다.)
MARIADB_PASSWORD1q2w3e4r@! (사용될 DB 유저의 비밀번호입니다.)

포트 설정

디폴트 상태(아래 사진과 같은)로 ‘다음’ 버튼을 클릭해 주세요.

폴더 매핑

‘폴더 추가’버튼을 클릭하고 사전 작업에서 만든 ‘mariadb’ 폴더를 찾아 ‘선택’ 버튼을 클릭해 주세요.

‘마운트 경로’에 “/var/lib/mysql” 를 적어주세요.

모든 내용을 확인하고 ‘완료’ 버튼을 클릭해 주세요.


YOURLS 컨테이너 생성

네트워크 설정

이미지 -> yourls를 더블클릭해 주세요.
네트워크는 디폴트 상태(아래 사진과 같은)로 다음 버튼을 클릭해 주세요.

컨테이너 이름을 작성하고, 좌측 하단의 ‘고급 설정’ 버튼을 클릭해 주세요.

파라미터 설정

더 많은 파라미터를 확인하고 싶으시면 https://hub.docker.com/_/yourls 를 참고해 주세요.
* 만약 ‘MariaDB 파라미터 설정’에서 ‘MARIADB_DATABASE’ 변수를 추가해 줘야 합니다. 이런 경우 링크를 참고해 주세요.

변수
TZAsia/Seoul
YOURLS_SITEhttps://your.domain.kr (당신의 도메인을 입력하세요.)
YOURLS_USERyourls (로그인에 사용될 id입니다.)
YOURLS_PASS1q2w3e4r@! (로그인에 사용될 PASSWORD입니다.)
YOURLS_DB_HOSTdb
YOURLS_DB_USERyourls (위 MariaDB 파라미터에서 작성했던 USER의 닉네임입니다.)
YOURLS_DB_PASS1q2w3e4r@! (위 MariaDB 파라미터에서 작성했던 PASSWORD입니다.)

DB 컨테이너와 링크

DB 컨테이너와 링크합니다.
MariaDB의 컨테이너의 이름을 선택하고, 별칭을 파라미터의 ‘YOURLS_DB_HOST’와 동일하게 “db”로 작성해 주세요.

포트 설정

‘역방향 프록시’에서 설정했던 포트를 ‘로컬 포트’에 적어주세요.

폴더 매핑

‘폴더 추가’버튼을 클릭하고 사전 작업에서 만든 ‘www’ 폴더를 찾아 ‘선택’ 버튼을 클릭해 주세요.

‘마운트 경로’에 “/var/www/html” 를 적어주세요.

모든 내용을 확인하고 ‘완료’ 버튼을 클릭해 주세요.
“컨테이너가 (mariadb 컨테이너명) 에 의존합니다. 사용자를 위해 그것들을 시작했습니다.” 가 떠야 합니다.


방화벽 설정

외부에서 접근할 수 있도록 방화벽 규칙을 편집해 줘야 합니다.
제어판 -> 보안 -> 방화벽 -> 방화벽 프로파일 -> 규칙 편집 버튼을 클릭해 주세요.
포트에서 ‘내장된 응용 프로그램 목록에서 선택’ 오른쪽의 ‘선택’ 버튼을 클릭해 주세요.

‘Docker yourls’를 찾아 오른쪽 체크박스에 체크해 주세요.


접속하기

브라우저를 열고, “(도메인)/admin/”로 들어갑니다.
* 꼭 “(도메인)/admin/”으로 들어가셔야 합니다. 그냥 도메인만 치면 Forbidden이 뜹니다.


마치며…

블로그의 SEO 점수를 위해 주소표시줄에 포스트의 제목이 들어가게 만들었더니, URL이 길어지고 더러워져 단축 URL 서비스를 찾게 되었습니다. 마침 짧은 도메인을 가지고 있어 이렇게 설치형 서비스로 나만의 단축 URL을 만들어 봤습니다.

YOURLS는 다양한 플러그인도 지원하고 있으니 YOURLS의 홈페이지(클릭)를 꼭 한번 방문하여 확인해 보시길 추천드립니다.

기회가 된다면 YOURLS API를 사용하여 자동으로 단축 URL을 생성하고 가져오는 방법을 다뤄보도록 하겠습니다.

You may also like...

Subscribe
Notify of
guest
5 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
thkweon

흠 잘 되지 않습니다..

Incorrect DB config, or could not connect to DB
PDOException: SQLSTATE[HY000] [2002] Connection timed out

이렇게 뜨는데…해결 방법을 아실까요?

er.png
용's냅

감사합니다. 본 포스팅 따라해서 덕분에 잘 설치했습니다.

kevin

초봅니다.
먼저 설명해 주신바와 같이 도커는 설치했습니다.
그런데 이 이전에 시놀로지 서비스인 웹서버와 PHP 그리고 마리아 DB를 먼저 설치해야 하는게 맞겠죠 ?

5
0
Would love your thoughts, please comment.x
()
x