Запускаем собственный сокращатель ссылок Slash на VPS

968c199b7e9b9b33ad50b0f387d60131.png

Привет! На связи Игорь из техподдержки PQ.Hosting! Я продолжаю писать о незаезженных self-hosted приложениях, которые можно легко установить на свой виртуальный сервер. В прошлый раз я рассказывал, как поднять собственную интернет-машину времени с помощью Archive box. В этот раз речь пойдет про Slash — гитаристе группы Guns N» Roses интересном веб-сервисе для сокращения и кастомизации ссылок. 

Пару слов о Slash

Slash — веб-приложение с открытым исходным кодом, позволяющее создавать и кастомизировать короткие ссылки (или шорткаты, как называют их авторы) и хранить их на сервере. 

Кроме того, у Slash есть возможность добавлять теги и группировать ссылки в коллекции. Это удобно, если работаешь с несколькими проектами (например, личными и рабочими) и хочешь их красиво систематизировать. 

Ещё одно полезное дополнение — аналитика. Можно посмотреть, как часто по ссылке переходят, откуда приходит трафик и насколько она полезна. Например, эта фишка будет очень полезна для блогеров или маркетологов. 

Получается, что Slash — это такая сокращалка на стероидах, которая также совмещает в себе фичи менеджера ссылок и закладок.

Кстати, отпишитесь в комментариях пользуетесь ли вы такими приложениями? Или по старинке сохраняете все в закладках браузера? Нам будет очень интересно почитать ваши ответы!

Где-то здесь у многих появился закономерный вопрос: зачем морочиться с размещением приложения на виртуальном сервере, если в поисковиках легко можно найти уже готовые сайты-сокращалки. Ответ простой — дело в удобстве и безопасности. Мы как пользователи не можем на 100% утверждать, что владельцы сервисов не вшивают трекеры или другое вредоносное ПО в укороченные ссылки. Поэтому, как нам кажется, лучше лишний раз не рисковать и поднять опенсорсный сервис. Так вы точно будете уверены, что с вашими сокращенными ссылками никто не покопался.

Как установить Slash 

Slash использует для работы Docker, поэтому для начала нужно будет поставить саму платформу. Я покажу, как это делается с помощью Apt. Если вам такой способ не подходит, но на сайте Докера лежат альтернативные инструкции. 

Обновляем репозитории и добавим GPG-ключи:  

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

После добавляем репозиторий в apt:  

echo \

"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \

$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \

tee /etc/apt/sources.list.d/docker.list > /dev/null

apt-get update

Далее устанавливаем сам Docker следующей командой:

apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

А вот теперь можно и поставить Slash. Хорошая новость в том, что достаточно будет одной команды:  

docker run -d --name slash -p 5231:5231 -v ~/.slash/:/var/opt/slash yourselfhosted/slash:latest

Как и раньше, для теста я использую VPS начального уровня Aluminium с одним ядром процессора Xeon E5–2697A, гигабайтом ОЗУ и SSD на 25 гигабайт.

Выполнять в терминале команды, назначения которых не особо понимаешь — не самая хорошая привычка. Поэтому подробно поясняю за каждую команд:  

  • docker run — говорит Docker создать и запустить новый контейнер.

  • -d — запускает контейнер в фоновом режиме (detached mode).

  • --name slash — задаёт контейнеру имя «slash», чтобы к нему было проще обращаться.

  • -p 5231:5231 — связывает порт 5231 контейнера с портом 5231 на хосте, чтобы можно было получить доступ к Slash через браузер.

  • -v ~/.slash/:/var/opt/slash — создаёт том для хранения данных Slash на вашей машине, чтобы они не терялись при перезапуске контейнера.

  • yourselfhosted/slash: latest — указывает, какой образ Docker использовать, в этом случае — последнюю версию Slash.

ba54a7983b0977733f2c31f90e22571d.png

Результат выполнения команды в терминале.

Далее Slash будет доступен по адресу http://ip-вашего-сервера:5231

После от вас потребуется только зарегистрироваться — здесь все очень стандартно. 

dc4989a5647b76903344d82ae42c5839.png

А после регистрации вы окажетесь на главной странице сервиса. 

7af3c11a6601a5e00d89dd6504f22d60.png

Как использовать Slash

Лучше всего показать возможности сервиса на примере. Для теста возьму ссылку из Википедии — https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BF%D1%8C%D1%8E

Из-за кириллицы в названии текст ссылки преобразуется в не очень понятную абракадабру. В базу данных или документацию «урлу» такого вида ставить не хочется. В этом случае как раз и пригодится Slash. 

d5d5bfe2b24fab15bb8bac7da983a641.gif

Тут все просто:  

  1. Жмем на Create.

  2. Добавляем 2 обязательных поля — Name (это имя будущей ссылки) и Link (сама ссылка)

  3. Вписываем Title и Description (это своего рода пояснения к ссылке для себя) и теги. 

В итоге у вас должна получиться ссылка формата: http://IP-адрес-сервера/s/Nau. В идеале, конечно, зарегистрировать под это дело какой-нибудь красивый адрес и подключить домен к Slash. Но это уже совсем другая история. 

Поставили бы такое приложение на свой сервер? Обязательно напишите об этом в комментариях! А если вы знаете какой-нибудь необычный self-hosted сервис, о котором мало кто знает, то тоже отпишитесь — мы посмотрим, потестируем и обязательно расскажем о нем в будущих статьях!

© Habrahabr.ru