Метка: gitlab

  • Почему я выбираю VDS?

    Почему я выбираю VDS?

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

    Вот что я смогу сделать на VDS и не смогу на обычном хостинге:
    – Разместить на одном сервере сколько угодно сайтов и привязать к ним любое количество доменов.
    – Динамически менять ресурсы на сервере.
    – Не переживать, что мой сайт перенесли на другой сервер, поэтому нужно поменять IP-адрес в DNS. На шаред хостингах это могут делать несколько раз в год, нужно следить за уведомлениями, чтобы сайт не перестал работать.
    – Настроить сервер под меня с помощью пары ansible-скриптов.
    – Поставить нужный мне веб-сервер Caddy или кастомную сборку NGINX. Избежать Apache2, который до сих пор часто работает на шаред хостингах.
    – Разместить публичную папку сайта в любой папке, а не только в предварительно за меня выбранной public_html. Для моей сборки WP или Laravel это важно.
    – Установить git, composer, WP-CLI нужных мне версий и обновлять их самому.
    – Поставить любую версию PHP с нужными расширениями и оптимизировать все настройки, включая OpCache.
    – Настроить все параметры для базы данных MySQL.
    – Добавить сборщики для фронта (npm, pnpm).
    – Добавить memcached для кэширования в оперативной памяти — пригодится для ускорения WordPress.
    – Управлять логами, менять их формат, включать дополнительные логи для медленных скриптов и запросов. Размещать логи в нужной мне папке.
    – Поставить CI-агента от GitLab, который будет автоматически обновлять сайты после внесения изменений в Git.
    – Отключить FTP-протокол, чтобы сайт не взломали через утечку FTP-паролей.

    Создал VDS у Beget за 290 рублей в месяц.
    Конфигурация: CPU 1 core, 2 GB RAM, 10 GB NVMe, Ubuntu 24.04.

    Посты по теме:
    – План запуска блога
    – Удобный SSH-доступ
    – Выбор хостинга для сайта

  • Удобный ssh

    Удобный ssh

    Надоело каждый раз искать логин и пароль от сервера?

    Дано:
    Вам нужно через терминал заходить на удалённые серверы. Хостинг дал логин, пароль и IP-адрес сервера. Каждый раз нужно искать и копировать их в консоль. Это неудобно, поэтому ниже инструкция, как перейти на ключи.

    Порядок решения:
    Создаём пару ключей у себя на компьютере. Открываем терминал, вводим команду ssh-keygen и жмём Enter несколько раз.
    После этого в скрытой папке ~/.ssh/ появляется два файла
    id_rsa — приватный ключ, его никуда никогда никому не показываем.
    id_rsa.pub — публичный ключ, его копируем в нужные сервисы.

    Выводим публичный ключ на экран, чтобы можно было его скопировать.
    cat ~/.ssh/id_rsa.pub
    Этот ключ нужно вставить в профиль на Github или Gitlab, скопировать на удалённый сервер или указать при создании VDS на хостинге.

    Копируем ключ на удалённый сервер командой ssh-copy-id. Для выполнения нужно знать логин, IP-адрес или домен сервера. Например
    ssh-copy-id login@example.org
    ssh-copy-id root@10.10.0.121
    При первом соединении нужно будет ввести yes в подтверждение обмена ключами.

    Для быстрого входа на сервер можно записать его реквизиты в текстовый файл ~/.ssh/config

    Host myservername
      Hostname 10.24.24.24  

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

    Host myservername
      Hostname 10.24.24.24  
      User root  
      Port 22
      IdentityFile ~/.ssh/id_rsa

    Проверяем:
    Подключаемся к удалённому серверу одной командой ssh myservername. Если в конфиге один пользователь, а нужно зайти под другим — используем ssh sensei@myservername.

    Итог:
    Вы мгновенно попадаете на сервер, используя выбранное вами название. Экономия времени на поиске адреса и пароля.

  • Расходы на хостинг Open Source приложений на опыте веб-студии

    Расходы на хостинг Open Source приложений на опыте веб-студии

    В посте с таблицей Open Source решений не указано, сколько стоит их содержать. Рассказываю о своём опыте.

    Минимальный тариф на VDS будет стоить примерно 300 рублей в месяц. Этого хватит, чтобы развернуть и использовать большинство приложений из таблицы.
    Хостинг для тяжеловесного мониторинга ошибок Sentry стоит мне около 4000 рублей в месяц — это пока рекорд. Gitlab CE на всю команду выходит 1700 рублей.

    Если размещаем много приложений, не обязательно брать под каждое новый VDS. У меня есть сервер с установленным Portainer (удобная альтернатива Kubernetes), который позволяет просто запускать множество приложений. Я плачу за него 1500 рублей, а на нём работают 14 контейнеров с n8n, zammad и чат-ботами. Подозреваю, что там ещё что-то поместится.
    Современные виртуальные серверы позволяют увеличивать мощность и место на сервере постепенно, по мере потребности.

    Open source инфраструктура для современной веб-студии до 50 человек обходится примерно в 10 тысяч рублей в месяц.
    Если у вас свой офис, то можно все эти приложения развернуть на своём сервере и не платить за аренду VDS.

    Чтобы обслуживать серверы и устанавливать приложения, будут нужны услуги системного администратора. Задачи с разворачиванием приложений — базовые и не требуют повышенной квалификации. Можно взять исполнителя на сдельную работу, штатный сисадмин для этого скорее всего не нужен.

  • Выбираю платформу для базы знаний

    Выбираю платформу для базы знаний

    За последнее время часто возникает потребность создания документации или базы знаний в разных проектах. Сколько бы мне ни нравился Obsidian для личных заметок, для коллективного использования в вебе он не предназначен. Поэтому я начал поиск продукта “база знаний”.

    Требования:
    – Поддержка русского языка
    – Статьи можно писать коллективно
    – Можно опубликовать на моём домене
    – Хочу поддержку markdown
    – Современный внешний вид из коробки, который легко брендировать
    – Приятный интерфейс и UX

    Рассматривал все варианты.
    Первыми не подошли зарубежные платные продукты: Gitbook, Notion, Confluence, Zendesk. Зачем сразу создавать себе проблемы с оплатой и блокировками?
    Потом стал смотреть российские платные: Teamly — альтернатива для Notion, CarrotQuest — альтернатива для ZenDesk/Intercom, Kaiten — альтернатива для Jira. В Kaiten мы даже сделали книгу сотрудника для агентства и остались довольны, но это всё же не для публичного доступа.

    Потом опомнился, что не хочу платить за подписки. Я готов разворачивать и админить приложения в нашей инфраструктуре. Начал смотреть на Open Source, чтобы бесплатно и с открытым кодом. Оказывается, не так много хороших решений.
    Outline и Documize оказались продуктами с платными версиями, не стал разбираться в тонкостях лицензий, убрал их из сравнения.
    BookStack — не понравился редактор статей, весь продукт выглядит устаревшим. Ставили его пару лет назад и пробовали использовать, но не прижился.
    GitLab — почему бы не писать документацию для разработчиков внутри репозитория? Решил опробовать, но для публичной базы знаний нужно что-то другое.

    В итоговой выборке остались эти продукты:
    Wiki.js — победитель, пока остановился на этом продукте и буду его пробовать. Множество плагинов, поддержка разных баз данных, корпоративный логин, markdown, всё выглядит очень современно.
    Docusaurus — второе место, поддерживает переводы и версии, отлично выглядит и тоже полностью открытый исходный код без скрытых тарифов.

    Занятно, что оба написаны на Node.js + TypeScript. Хотя я на стек смотрел в последнюю очередь.

    А на какой платформе база знаний у вас и насколько вы ей довольны?

  • Self-hosted

    Много раз за последние три года блокировали разные сервисы. То сами сервисы, то доступ к ним, то оплату, то поддержку. Самая странная блокировка – запрет принимать участие в приватных репозиториях на GitHub.

    Мы пошли другим путем: находим продукты с открытым кодом и ставим на свой сервер вместо платного SaaS.

    Что мы используем в работе:
    Gitlab CE – репозитории на нашем сервере. Переезжали с Bitbucket. Используем активно CI/CD.

    Sentry – сборщик логов с запущенных приложений. Очень полезный сервис – мы видим ошибки у реальных пользователей, сгрупированные по типу и с полным стеком вызова (браузер, устройство, окружение). Система прожорливая – ест CPU и RAM.

    Grafana – Конструктор дашбордов с графиками. Мы используем для мониторинга серверов (БД Prometheus в качестве источника). Видел у коллег дашборды с продуктовыми метриками, но у нас до этого руки пока не дошли.

    Plausible – простая веб-аналитика. Достаточно, чтобы изучить посещаемость лендинга или корп сайта, посмотреть источники и конверсии.

    PostHog – мощная аналитика. Расстановка своих событий (как в метрике и ga), воронки, срезы, полная информация о визитах, возвратах и т.д. Под капотом Clickhouse, Kafka и все 33 удовольствия для работы. Как и Sentry, очень прожорливая система.

    Ollgram – tg-боты для поддержки. Очень удобно – делаем бота, указываем его контакты в канал. Бот пересылает сообщения пользователей в секретную группу, а мы общаемся от имени бота. Не связано с CRM, но для получения обратной связи или старта – то что нужно. Код open source – поставили к себе.

    Сейчас присматриваюсь к новым кандидатам
    Affine для документации вместо Miro и Notion
    Zammad – автоматизация службы поддержки. Helpdesk вместо ZenDesk/CarrotQuest
    Twenty в качестве CRM

    Мы пока не смогли заменить трекер задач с учетом времени. Попробовал Taiga (вроде все ок, но не гибко, не хватает фич). Многообещающий Plane перекосило в урезание функционала бесплатной версии. Концептуально понравился LeanTime.

    А пользуетесь ли вы self-hosted и чем?