Linux에서 Shlink를 사용하여 자신만의 bit.ly 서버를 호스팅하는 방법

테이블 위에 노트북이 놓여 있는 사진입니다.

Shlink는 Linux용 강력한 자체 호스트 링크 단축 서비스입니다. 이는 자신의 도메인 이름을 단축 링크의 루트로 사용할 수 있는 간단하면서도 효과적인 프레임워크를 제공합니다. 이 문서에서는 Docker 및 Nginx를 사용하여 Ubuntu Linux에 자체 Shlink 인스턴스를 설치하는 방법을 보여줍니다.

Shlink의 가장 큰 판매 포인트 중 하나는 자체 호스팅이 가능하면서도 짧은 링크에 대한 사용자 정의 도메인을 사용할 수 있다는 것입니다. 이는 결과적으로 SaaS 링크 단축 서비스의 유연성과 자신의 컴퓨터에서 소프트웨어를 실행하는 개인정보 보호를 제공합니다.

데모 서버에서 실행되는 Shlink를 보여주는 스크린샷.

그 외에도 Shlink는 QR 코드 생성, 링크 쿼리 자동 전달, 다중 세그먼트 사용자 정의 슬러그 생성 기능과 같은 다양한 기능 세트를 자랑합니다. Linux에서 링크의 모양과 동작을 조정할 수 있는 링크 단축 서비스를 찾고 있는 경우 Shlink는 편리한 도구입니다.

Shlink용 Docker 얻기

가정: 이 문서에서는 Ubuntu 22.04 VPS에 Shlink를 설치하고 있으며 현재 도메인 이름을 소유하고 있다고 가정합니다.

Linux에 Shlink를 배포하는 첫 번째 단계는 Docker 복사본을 얻는 것입니다. 이렇게 하려면 해당 웹사이트에서 Docker 프로젝트의 서명 키를 가져오세요.

Docker 바이너리용 저장소 파일을 만듭니다.

새 저장소 파일 안에 다음 코드 줄을 붙여넣습니다.

다음을 수행하여 시스템의 저장소 목록을 다시 로드하십시오 apt update.

Shlink에 대한 종속성 설치

Docker 리포지토리가 실행되면 이제 apt를 사용하여 Shlink에 대한 종속성을 얻을 수 있습니다.

시스템에서 “코어” 스냅 패키지를 사용할 수 있는지 확인하십시오.

Electronic Frontier Foundation에서 “certbot” 스냅 패키지를 가져와 설치합니다.

Geolite2 라이센스 키 획득

Shlink의 또 다른 특징은 링크를 클릭한 사용자의 일반적인 위치를 추적할 수 있다는 것입니다. 이를 사용하려면 Geolite2 Licensing Sign Up 페이지를 엽니다.

GeoLite 라이선스 가입 페이지를 보여주는 스크린샷.

양식에 세부정보를 입력한 후 계속을 누르세요 .

이메일 받은 편지함을 열고 MaxMind에서 보낸 확인 이메일을 찾으세요.

이메일의 링크를 클릭한 다음 새 MaxMind 계정의 비밀번호를 입력하세요.

MaxMind의 비밀번호 생성 링크를 보여주는 스크린샷.

MaxMind 계정에 로그인한 다음 대시보드에서 라이센스 키 관리를 클릭하세요.

강조 표시된 스크린샷

새 라이센스 키 생성을 클릭한 다음 확인을 클릭하여 Geolite2 키를 생성하세요.

강조 표시된 스크린샷

Geolite2 라이센스 키를 컴퓨터의 텍스트 파일에 복사한 후 저장하세요.

Shlink를 설치하려면 먼저 가상 Docker 네트워크를 만들어야 합니다. 이는 배포할 다른 컨테이너와 통신할 수 있는 앱의 개인 네트워크 역할을 합니다.

PostgreSQL 데이터베이스를 배포하고 이를 새 가상 Docker 네트워크에 연결합니다.

“POSTGRES_PASSWORD” 환경 변수의 값을 임의의 텍스트 문자열로 변경합니다.

임의의 PostgreSQL DB 비밀번호를 표시하는 터미널입니다.

새 터미널 세션에 다음 명령을 붙여넣습니다.

DEFAULT_DOMAIN 변수의 값을 도메인 이름으로 바꿉니다.

데모 서버의 기본 도메인 값을 보여주는 터미널입니다.

개인 라이센스 키로 “GEOLITE_LICENSE_KEY” 변수의 값을 변경하세요.

데모 Shlink 서버에 대한 Geolite 라이센스를 보여주는 터미널입니다.

“DB_PASSWORD” 변수를 PostgreSQL 데이터베이스 비밀번호로 바꾸세요.

데모 서버의 PostegreSQL DB 비밀번호를 보여주는 터미널입니다.

EnterShlink 인스턴스를 시작하려면 누르세요 .

Shlink 인터페이스 설치 및 연결

Shlink 컨테이너에서 API 키를 가져온 후 클립보드에 복사합니다.

새 터미널 세션에 다음 명령을 붙여넣습니다.

“SHLINK_SERVER_URL”을 백엔드 컨테이너의 “DEFAULT_DOMAIN” 변수 값으로 바꿉니다.

Shlink 백엔드 인스턴스의 전체 URL을 표시하는 터미널입니다.

API 키를 ‘SHLINK_SERVER_API_KEY’ 값으로 붙여넣으세요.

Shlink 백엔드 API 키를 보여주는 터미널입니다.

EnterShlink 프런트엔드 인터페이스를 시작하려면 누르세요 .

시스템의 현재 활성 컨테이너를 모두 나열하여 데이터베이스, Shlink 백엔드 및 Shlink 프런트엔드가 제대로 작동하는지 확인합니다.

완전한 Shlink 웹 앱을 구축하는 세 개의 컨테이너를 보여주는 터미널입니다.

Nginx를 사용하여 SSL 역방향 프록시 만들기

이제 서버에서 작동하는 Shlink 소프트웨어 제품군이 실행됩니다. 그러나 이에 액세스하려면 서로 다른 도메인에 있는 두 컨테이너를 위임하는 SSL 웹 프록시를 만들어야 합니다.

시작하려면 Shlink의 프런트엔드 인터페이스에 대한 새 A 레코드를 만듭니다. 제 경우에는 프런트엔드의 A 레코드를 “admin”으로 설정하겠습니다.

데모 Shlink 서버에 대한 두 개의 DNS 레코드를 보여주는 스크린샷.

원하는 텍스트 편집기를 사용하여 Shlink 인스턴스에 대한 사이트 구성 파일을 만듭니다.

구성 파일 내에 다음 코드 블록을 붙여넣습니다.

“YOUR-ROOT.DOMAIN” 변수를 루트 도메인으로 바꾸고, “SUBDOMAIN.YOUR-ROOT.DOMAIN”을 프런트엔드 인터페이스의 하위 도메인으로 바꿉니다.

구성 파일을 저장한 다음 Nginx에서 웹앱을 활성화합니다.

새 설정을 적용하려면 Nginx 데몬을 다시 로드하세요.

Electronic Frontier Foundation에 서버를 등록하세요.

Shlink 인스턴스에 대한 새로운 다중 도메인 SSL 인증서를 요청합니다.

인스턴스의 관리 콘솔로 이동하여 Shlink 서버가 제대로 작동하는지 확인하세요. 제 경우에는 “https://admin.helloserver.top”입니다.

Shlink 인스턴스의 기본 방문 페이지를 보여주는 스크린샷.

새 인스턴스를 사용하려면 랜딩 페이지에서 Shlink 메뉴 항목을 클릭하세요.

인스턴스 방문 페이지의 Shlink 메뉴 항목을 보여주는 스크린샷.

짧은 URL 만들기 카테고리 아래의 단축할 URL 텍스트 상자 에 긴 URL을 붙여넣습니다 .

짧은 링크에 대한 일부 메타데이터를 제공한 다음 저장을 클릭하여 링크를 만듭니다.

Shlink에서 짧은 링크를 생성하는 양식을 보여주는 스크린샷.

새 브라우저 탭에서 새 단축 URL을 연 다음 Shlink 대시보드에서 방문 버튼을 클릭하여 제대로 작동하는지 테스트하세요.

Shlink의 샘플 링크에 대한 기본 분석을 보여주는 스크린샷입니다.

자신만의 링크 단축 서비스를 설치하고 배포하는 것은 온라인 개인정보 보호를 되찾는 첫 번째 단계일 뿐입니다. Tor를 사용하여 Ubuntu에서 자신만의 익명 웹사이트를 호스팅 함으로써 Linux가 개인정보를 더욱 효과적으로 보호하는 데 어떻게 도움이 되는지 알아보세요 .

이미지 출처: Carlos Muza, UnsplashShlink.io Developers 제공 . Ramces Red의 모든 변경 사항 및 스크린샷.


Author: Egor Kostenko

제 목표는 복잡한 기술 주제를 간단하고 접근 가능하게 만드는 것입니다. 이 사이트에서는 사용자의 문제를 해결할 뿐만 아니라 Windows의 기능을 더 잘 이해할 수 있도록 독창적이고 유용한 콘텐츠를 모읍니다.


답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다