ГлавнаяОперационные системыLinuxЗапустите свой собственный Pastebin с помощью Stikked

Запустите свой собственный Pastebin с помощью Stikked

Если вы какой-либо разработчик, вы, вероятно, слышали о Pastebin.com, наиболее широко используемом веб-приложении для вставки и обмена фрагментами текста. Pastebin.com великолепен, но это не единственный инструмент для вставки.

На самом деле, веб-сайты все чаще размещают собственные папки для вставки. Это дает вам больше свободы. Существует множество реализаций вставки с открытым исходным кодом, и Stikked — одна из наиболее полезных благодаря расширенным функциям и оптимизированному пользовательскому интерфейсу.

Застрял создан на основе PHP и jQuery и использует платформу CodeIgniter.

Установка застрявшего

Stikked требует, чтобы ваш сервер был запущен:

  • Git
  • Нгинкс
  • Docker и Docker Compose
  1. Чтобы загрузить последнюю версию Stikked, посетите страницу Stikked GitHub или перейдите в командную строку и выполните:
git clone https://github.com/claudehohl/Stikked.git
  1. Перейти в

    Установка застрявшего

    >
    cd ./Stikked
Терминал, показывающий процесс клонирования git для репозитория Stikked.
  1. Откройте файл «docker-compose.yml» внутри вашего любимого текстового редактора.
  2. Прокрутите до переменной «ports:» в категории «services:» и измените ее значение на следующее:
ports:
    - 8080:80/tcp
Терминал, показывающий переменную портов для докер-контейнера Stikked.
  1. Прокрутите до категории «mysql:» и замените подкатегорию «command:» следующим кодом:
command: mysqld
Терминал, показывающий новую команду mysql для контейнера докеров.
  1. Откройте основной файл конфигурации Stikked:
nano ~/Stikked/docker/stikked.php
  1. Перейдите к строке, содержащей переменную $config['base_url'], и замените «localhost» на полное доменное имя вашей системы. Сохраните и выйдите из файла.
Терминал, показывающий пример базового URL-адреса экземпляра.
  1. Откройте файл «nginx.conf» внутри контейнера Stikked:
nano ~/Stikked/docker/nginx.conf
  1. Удалите три строки под надписью «Разрешены только запросы к нашему хосту».
Терминал, выделяющий часть конфигурации докера Nginx, которую нужно удалить.
  1. Создайте контейнер Docker, выполнив следующую команду:
docker compose up -d

К вашему сведению: узнайте, как разместите свою собственную доску Канбан в Linux использовать Docker и Kanboard.

Создание обратного прокси-сервера SSL Nginx

Теперь у вас есть установка Stikked, работающая на порту 8080. Хотя вы можете использовать ее как есть, базовый контейнер Stikked может быть небезопасным, поскольку по умолчанию он не шифрует свое соединение. Чтобы это исправить, вам нужно создать обратный прокси , который может прослушивать входящие соединения, которые затем шифруются с помощью SSL.

  1. Создайте новый файл конфигурации сайта в папке «/etc/nginx/sites-available/»
sudo nano /etc/nginx/sites-available/stikked
  1. Вставьте следующий код в новый файл сайта. Это простой обратный прокси-сервер, который прослушивает входящие незашифрованные соединения через порт 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;
    }
}

Создание обратного прокси-сервера SSL Nginx

ntent/uploads/2024/05/install-stikked-linux-07-sample-nginx-reverse-proxy.png" alt="Терминал, показывающий пример конфигурации обратного прокси-сервера Nginx.">
  1. Создайте символическую ссылку на файл вашего сайта внутри «/etc/nginx/sites-enabled» и удалите из нее файл сайта по умолчанию:
sudo ln -s /etc/nginx/sites-available/stikked /etc/nginx/sites-enabled/
  1. Проверьте конфигурацию Nginx на наличие ошибок, затем включите службу Nginx через systemctl:
sudo nginx -t
sudo systemctl reload nginx.service

Установка SSL-сертификата

Когда обратный прокси-сервер запущен и работает, вы можете запросить сертификат SSL для своего экземпляра Stikked. Самый простой вариант — установить пакет оснастки certbot от Electronic Frontier Foundation.

  1. Убедитесь, что ваши основные двоичные файлы Snap обновлены и работают:
sudo snap install core
sudo snap refresh core
  1. Установите certbot, используя двоичный файл Snap вашей машины Stikked:
sudo snap install certbot --classic
Терминал, показывающий процесс установки certbot.

<ол старт="3">

  • Проверьте, правильно ли работает программа, связав свой адрес электронной почты с certbot:
  • sudo certbot register --agree-tos -m ramces@email.invalid
    1. Запустите certbot еще раз, чтобы создать сертификат SSL для вашего экземпляра Stikked:
    sudo certbot --nginx -d my-stikked-installation.com
    1. Откройте веб-браузер и проверьте, работает ли ваш экземпляр Stikked по протоколу SSL.
    Скриншот, показывающий работающий экземпляр Stikked.

    Полезно знать: узнайте, как работает шифрование в Интернете, к выдача собственного SSL-сертификата через OpenSSL .

    Стилизация закрепленной установки

    Все данные стиля находятся в каталоге «themes» в каталоге «htdocs» вашего репозитория Git. Для интереса загляните в подкаталог и увидите несколько интересных вариантов.

    1. Зайдите в репозиторий Stikked Git и перейдите в каталог «htdocs/themes».
    cd ~/Stikked/htdocs/

    Установка SSL-сертификата

    >
  • Большая часть стилей выполняется внутри каждой папки темы. Например, тема geocities превращает ваш Stikked в вид веб-сайта 1990-х годов.
  • Скриншот, показывающий ретро-тему для Stikked.
    1. Чтобы изменить внешний вид вашего экземпляра, вам необходимо сначала закрыть контейнер Docker:
    docker compose down
    1. Откройте основной файл конфигурации вашего экземпляра с помощью любимого текстового редактора:
    nano ~/Stikked/docker/stikked.php
    1. Прокрутите вниз до строки, содержащей переменную $config['theme'], и измените ее значение на «cleanwhite».
    Терминал, показывающий переменную темы для текущего экземпляра.
    1. Сохраните основной файл конфигурации и перезагрузите контейнер Docker:
    docker compose up -d
    1. Откройте веб-браузер и загрузите новую веб-страницу. Вот моя страница «Создать» после загрузки темы cleanwhite.
    Снимок экрана, показывающий, как Stikked работает с чистой белой темой.

    Функции

    Stikked имеет ряд интересных функций, которые выделяют его среди других скриптов Pastebin.

    Во-первых, он предлагает широкий спектр возможностей подсветки синтаксиса. Stikked поддерживает огромный список языков программирования и сценариев, от C до Bash. Что бы вы ни писали, установка Stikked поможет вам.

    Снимок экрана, показывающий функции подсветки синтаксиса Stikked.

    Язык каждого фрагмента отображается в таблице на странице «Последние». если на постере не указан язык вставки, то он помечен как «текст». В таблице также отображаются заголовок, имя автора и давность, а также значок RSS. RSS-канал находится по адресу your-stikked-installation.com/lists/rss.

    Стилизация закрепленной установкиwp-content/uploads/2024/05/install-stikked-linux-14-sample-rss-feed-link-1.jpg" alt="Снимок экрана, показывающий пустой RSS-канал для экземпляра Stikked.">

    Страница «Тенденции» практически идентична, но с добавлением столбца «Хиты» и отсутствием RSS-канала. Обращения рассчитываются на основе посещений с уникальных IP-адресов.

    Снимок экрана, показывающий список популярных вставок в текущем экземпляре.

    При создании вставки у вас есть возможность установить дату истечения срока действия, создать короткий URL-адрес с помощью службы bit.ly и/или сделать публикацию частной. Обратите внимание, что «частная» вставка не является действительно частной; любой пользователь, у которого есть URL-адрес вставки, может его увидеть, если только вы не включили аутентификацию LDAP — в этом случае его сможет увидеть каждый зарегистрированный пользователь с URL-адресом. «Частный» означает только то, что сообщение не будет отображаться на страницах «Последние» и «В тренде».

    Скриншот, показывающий приватную вставку.

    Помимо безопасности, Stikked предоставляет несколько полезных утилит для просмотра вставки. Мне особенно понравился код для встраивания.

    Снимок экрана, показывающий пример фрагмента внедрения для текущей вставки.

    Вы также можете отвечать на вставки и добавлять свои собственные изменения из формы под исходной вставкой. Единственным недостатком этого является то, что ответы не ссылаются на исходное сообщение; Если в вашей вставке много разных сообщений и ответов, написанных в разное время, легко потерять их структуру. Я могу только надеяться, что разработчик в какой-то момент представит цепочки ответов.

    Последняя функция — это контроль спама, который Стиккед называет «спам-админ». Настройте его, введя учетные данные в «docker/stikked.php» в строках 79 и 80:

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

    Перейдите на страницу your-stikked-installation.com/spamadmin, чтобы войти в систему. Там вы можете увидеть, какие вставки поступили с каких IP-адресов, удалить вставки и заблокировать диапазоны IP-адресов.

    Функциириншот, показывающий панель управления спамом для Stikked.">

    API

    API Stikked позволяет вставлять в него данные из клиентов Pastebin. URL-адрес API, который будет использоваться в вашем клиенте: 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 . Все изменения и скриншоты Рамсеса Реда.

    API

    ПОХОЖИЕ СТАТЬИ

    Популярные записи