Stikked로 나만의 Pastebin 실행

Stikked로 나만의 Pastebin 실행

개발자라면 텍스트 스니펫을 붙여넣고 공유하는 데 가장 널리 사용되는 웹 애플리케이션인 Pastebin.com에 대해 들어봤을 것입니다. Pastebin.com은 훌륭하지만 유일한 pastebin 도구는 아닙니다.

실제로 웹사이트에서 자체 페이스트빈을 호스팅하는 것이 점점 보편화되고 있습니다. 그것은 당신에게 더 많은 자유를 제공합니다. 많은 오픈 소스 페이스트빈 구현이 있으며 Stikked는 고급 기능과 간소화된 사용자 인터페이스를 갖춘 더 유용한 구현 중 하나입니다.

Stikked 는 PHP와 jQuery로 구축되었으며 CodeIgniter 프레임워크를 사용합니다.

Stikked 설치

Stikked는 서버가 실행 중이어야 합니다.

  • 힘내
  • 엔진엑스
  • 도커 및 도커 작성
  • Stikked의 최신 버전을 다운로드하려면 Stikked GitHub 페이지를 방문하거나 명령줄로 이동하여 다음을 실행하세요.

git clone https://github.com/claudehohl/Stikked.git

  • Stikked 폴더로 이동합니다.

cd. /Stikked

Stikked 리포지토리의 git clone 프로세스를 보여주는 터미널.
  • 원하는 텍스트 편집기를 사용하여 “docker-compose.yml” 파일을 엽니다.
  • “services:” 범주 아래의 “ports:” 변수로 스크롤하고 해당 값을 다음과 같이 변경합니다.

ports:
- 8080:80/tcp

Stikked 도커 컨테이너의 포트 변수를 보여주는 터미널.
  • “mysql:” 범주로 스크롤하고 “command:” 하위 범주를 다음 코드로 바꿉니다.

command: mysqld

도커 컨테이너에 대한 새로운 mysql 명령을 보여주는 터미널.
  • 기본 Stikked 구성 파일을 엽니다.

nano ~/Stikked/docker/stikked.php

  • 변수가 포함된 줄로 이동하여 $config['base_url']“localhost”를 시스템의 정규화된 도메인 이름으로 바꿉니다. 파일을 저장하고 종료합니다.
인스턴스의 기본 URL 예시를 보여주는 터미널.
  • Stikked 컨테이너 내에서 “nginx.conf” 파일을 엽니다.

nano ~/Stikked/docker/nginx.conf

  • “Only requests to our Host are allowed” 아래 세 줄을 제거합니다.
제거할 Docker Nginx 구성의 일부를 강조표시하는 터미널입니다.
  • 다음 명령어를 실행하여 Docker 컨테이너를 빌드합니다.

docker compose up -d

SSL Nginx 리버스 프록시 만들기

이제 Stikked 설치가 포트 8080에서 실행됩니다. 이것을 그대로 사용할 수 있지만 기본 Stikked 컨테이너는 기본적으로 연결을 암호화하지 않기 때문에 안전하지 않을 수 있습니다. 이 문제를 해결하려면 SSL을 통해 암호화하는 들어오는 연결을 수신 대기할 수 있는 역방향 프록시를 만들어야 합니다 .

  • “/etc/nginx/sites-available/” 아래에 새 사이트 구성 파일을 만듭니다.

sudo nano /etc/nginx/sites-available/stikked

  • 새 사이트 파일에 다음 코드를 붙여넣습니다. 이것은 포트 80에서 들어오는 암호화되지 않은 연결을 수신하고 모든 쿼리를 포트 8080으로 리디렉션하는 간단한 리버스 프록시입니다.

server {
listen 80;
listen [::]:80;

root /var/www/html;
server_name my-stikked-installation.com;


location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:8080;
}}

Nginx 리버스 프록시 구성 예시를 보여주는 터미널.
  • “/etc/nginx/sites-enabled” 안에 사이트 파일에 대한 심볼릭 링크를 만들고 그 안에 있는 기본 사이트 파일을 제거합니다.

sudo ln -s /etc/nginx/sites-available/stikked /etc/nginx/sites-enabled/

  • 오류가 있는지 Nginx 구성을 테스트한 다음 다음을 통해 Nginx 서비스를 활성화합니다 systemctl.

sudo nginx -tsudo systemctl reload nginx.service

SSL 인증서 설치

리버스 프록시가 실행 중이면 이제 Stikked 인스턴스에 대한 SSL 인증서를 요청할 수 있습니다. 가장 쉬운 옵션은 Electronic Frontier Foundation에서 certbot 스냅 패키지를 설치하는 것입니다.

  • 핵심 스냅 바이너리가 최신 상태이고 실행 중인지 확인합니다.

sudo snap install core
sudo snap refresh core

  • Stikked 머신의 스냅 바이너리를 사용하여 certbot을 설치합니다.

sudo snap install certbot --classic

certbot의 설치 과정을 보여주는 터미널.
  • 이메일 주소를 certbot에 연결하여 프로그램이 제대로 실행되고 있는지 테스트합니다.

sudo certbot register --agree-tos -m ramces@email.invalid

  • Stikked 인스턴스에 대한 SSL 인증서를 생성하려면 certbot을 다시 실행하십시오.

sudo certbot --nginx -d my-stikked-installation.com

  • 웹 브라우저를 열고 Stikked 인스턴스가 SSL에서 실행 중인지 확인하십시오.
작동하는 Stikked 인스턴스를 보여주는 스크린샷.

Stikked 설치 스타일링

모든 스타일 데이터는 Git 저장소의 “htdocs” 디렉토리 아래에 있는 “themes” 디렉토리에 있습니다. 재미를 위해 하위 디렉토리 내부를 살펴보고 몇 가지 흥미로운 선택 사항을 확인하십시오.

  • Stikked Git 저장소 내부로 이동하여 “htdocs/themes” 디렉토리로 이동합니다.

cd ~/Stikked/htdocs/themes

  • 대부분의 스타일 선택은 모든 테마 폴더 내에서 이루어집니다. 예를 들어 geocities 테마는 Stikked를 1990년대 웹사이트처럼 보이도록 변형합니다.
Stikked의 복고풍 테마를 보여주는 스크린샷.
  • 인스턴스의 모양을 수정하려면 먼저 Docker 컨테이너를 종료해야 합니다.

docker compose down

  • 원하는 텍스트 편집기를 사용하여 인스턴스의 기본 구성 파일을 엽니다.

nano ~/Stikked/docker/stikked.php

  • 변수가 포함된 줄까지 아래로 스크롤 $config['theme']하고 해당 값을 “cleanwhite”로 변경합니다.
현재 인스턴스의 테마 변수를 보여주는 터미널.
  • 기본 구성 파일을 저장하고 Docker 컨테이너를 다시 로드합니다.

docker compose up -d

  • 웹 브라우저를 열고 새 웹 페이지를 로드합니다. 다음은 cleanwhite 테마를 로드한 후의 “만들기” 페이지입니다.
cleanwhite 테마로 실행되는 Stikked를 보여주는 스크린샷.

특징

Stikked에는 다른 많은 pastebin 스크립트와 차별화되는 여러 가지 흥미로운 기능이 있습니다.

먼저 구문 강조와 관련하여 영역을 실행합니다. Stikked는 C에서 Bash에 이르는 방대한 프로그래밍 및 스크립팅 언어 목록을 지원합니다. 무엇을 코딩하든 Stikked 설치로 해결됩니다.

Stikked의 구문 강조 기능을 보여주는 스크린샷.

각 스니펫의 언어는 “최근” 페이지의 표에 표시됩니다. 포스터가 붙여넣을 언어를 지정하지 않은 경우 “텍스트”라는 레이블이 지정됩니다. 이 표에는 RSS 아이콘과 함께 제목, 포스터 이름, 최신순도 표시됩니다. RSS 피드는 your-stikked-installation.com/lists/rss에 있습니다.

Stikked 인스턴스에 대한 기본 RSS 피드를 보여주는 스크린샷.

“트렌딩” 페이지는 거의 동일하지만 “히트” 열이 추가되고 RSS 피드가 없습니다. 조회수는 고유 IP 주소의 방문을 기반으로 계산되는 것으로 보입니다.

현재 인스턴스에서 유행하는 붙여넣기 목록을 보여주는 스크린샷.

붙여넣기를 만들 때 만료 날짜를 설정하고, bit.ly 서비스를 사용하여 짧은 URL을 만들고, 게시물을 비공개로 설정할 수 있는 옵션이 있습니다. “비공개” 붙여넣기는 진정한 비공개가 아닙니다. 붙여넣기의 URL이 있는 모든 사용자는 LDAP 인증을 활성화하지 않는 한 이를 볼 수 있습니다. 이 경우 URL이 있는 등록된 모든 사용자가 볼 수 있습니다. “비공개”는 게시물이 최근 페이지 또는 인기 페이지에 표시되지 않는다는 의미일 뿐입니다.

비공개 붙여넣기를 보여주는 스크린샷.

보안은 제쳐두고 Stikked는 붙여넣기를 볼 수 있는 깔끔한 유틸리티를 제공합니다. 임베드 코드가 특히 마음에 듭니다.

현재 붙여넣기에 대한 예제 포함 스니펫을 보여주는 스크린샷.

또한 붙여넣기에 응답하고 원본 붙여넣기 아래의 양식에서 편집 내용을 추가할 수 있습니다. 이것의 유일한 단점은 답글이 원래 게시물로 다시 연결되지 않는다는 것입니다. 귀하의 페이스트빈에 서로 다른 시간에 만들어진 많은 게시물과 답글이 있는 경우 해당 구조를 놓치기 쉽습니다. 개발자가 어느 시점에 스레드 답장을 도입하기를 바랄 뿐입니다.

마지막 기능은 Stikked가 “spamadmin”이라고 부르는 스팸 제어입니다. 79행과 80행의 “docker/stikked.php”에 자격 증명을 입력하여 설정합니다.

$config['spamadmin_user'] = 'stikked';
$config['spamadmin_pass'] = 'stikked';

your-stikked-installation.com/spamadmin으로 이동하여 로그인하세요. 여기에서 어떤 IP 주소에서 어떤 붙여넣기가 왔는지 확인하고 붙여넣기를 제거하고 IP 범위를 차단할 수 있습니다.

Stikked용 spamadmin 제어판을 보여주는 스크린샷.

API

Stikked의 API를 사용하면 pastebin 클라이언트에서 붙여넣을 수 있습니다. 클라이언트에서 사용할 API URL은 your-stikked-installation.com/api/create입니다.

기본적인 예는 cURL 명령을 사용하여 “smalltalk.st”라는 파일을 업로드하고 제목, 이름, 개인 정보 보호, 언어 및 만료 시간을 분 단위로 설정하는 것입니다.

curl -d title='cURL test' -d name='Ramces' -d private=1 -d lang=c -d expire=45 --data-urlencode text@count.c https://my-stikked-installation.com/api/create

그러면 붙여넣기 URL이 반환됩니다.

Stikked API를 사용하여 만든 예시 붙여넣기를 보여주는 스크린샷.

자신의 웹사이트에서 텍스트 스니펫을 수집하고 공유하는 쉬운 방법을 원한다면 Stikked를 사용해 보는 것이 좋습니다.

참고로 일부 텍스트 스니펫을 빠르게 공유할 수 있는 한 가지 방법은 새로운 프로그래밍 언어를 배우는 것입니다. 초보자를 위한 간단한 가이드를 통해 Bash 스크립트를 작성하는 방법을 알아보세요 . 또한 Bash 변수 및 용도에 대한 심층 분석 을 통해 이 지식을 확장할 수 있습니다 .

이미지 크레디트: Unsplash를 통한 Christopher Gower . Ramces Red의 모든 변경 및 스크린샷.

답글 남기기

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