Рубрики
Uncategorized

Maintived Guide Для настройки SourceGraph Server для более продуктивного расширенного поиска кода

Если вы когда-либо написали код, вы, вероятно, знаете, что: 🔍 В поисках примеров кода используется … Теги с производительностью, кодовой коробкой, поиском, дежопами.

Если вы когда-либо написали код, вы, вероятно, знаете, что:

  • 🔍 В поисках примеров кода полезно для многих вещей.
  • 🤦♂️. Github поиск вид отстой.

Возможно, вы не попросили продвинутые инструменты поиска кода, такие как SourceGraphraph, потому что начаток выглядит слишком много усилий.

Страница «Начало работы» Souraphraph уже имеет тонна информации о различных способах начать использовать SourceGraph, но здесь мы пройдем через мнение Настройка руководства.

В частности, мы будем:

  • ☁️ Настройте SourceGraph на VPS (на цифровой камень в этом случае, но не стесняйтесь использовать свой собственный поставщик облака).
  • 🚍 Настройте nginx в качестве обратного прокси.
  • 🎫 Используйте Letsencrypt, чтобы получить сертификат SSL.
  • 👩💻. Интегрируйтесь с GitHub для поиска через публичные и частные репозитории, принимаемые там.

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

🖼 Конечный результат следующего состояния этого руководства

В конце этого руководства у вас будет свой собственный SourterGraph Server настроен на пользовательском домене, таким как sg.example.com. . Он будет периодически извлечь любые репозитории, которые вы заинтересованы в GitHub (Private, Public, или от всего вашего Github org) и обновляют его индекс, чтобы у вас были эти под рукой.

Вы сможете выполнить поиск по всем вашим кодам с помощью расширенного синтаксиса и лучшего по умолчанию.

☑️ Требования к выполнению вдоль

Чтобы следовать, вы должны:

  • 💻 Удобно использовать Linux и SSH, подключение к VPS и установке и настройке программного обеспечения.
  • 🌐 иметь пользовательский домен, где вы можете добавлять новые субдомены, например, через namecheap или подобное.
  • ☁️ иметь учетную запись в облачном провайдере, таком как Digitalocean или AWS.

🔨 Настройка VPS и установка Docker и SourceGraph

Во-первых, нам нужно настроить VPS, работающий Ubuntu 18.04. На этом мы устанавливаем Docker и потяните сознатель графики докера.

Выберите Ubuntu 18.04 (20.04 имеет некоторые проблемы, устанавливающие Docker) и капельку с достаточным количеством дискового пространства. Здесь мы выбрали один, который стоит 40 долларов в месяц — но выбрать меньший, если вы знаете, у вас есть несколько репозиториев.

Далее выберите регион, которая находится рядом с вами, настройте клавишу SSH и дайте свой сервер дружеское имя, такое как SourceGraph-Server Отказ

Наконец, нажмите «Создать» и подождите несколько секунд, пока не получите свой IP-адрес и не смогу подключиться к серверу.

⚒️. Настройка VPS.

Мы собираемся просто использовать по умолчанию root Пользователь, который имеет некоторые последствия безопасности, но, поскольку мы не собираемся использовать этот сервер для чего-либо, кроме SourceGraph, это не являются основными. Если вы предпочитаете устанавливать все как пользователь без root, вам нужно префикс большинство команд Linux с Sudo Отказ

Подключите к вашему экземпляру с SSH, подставляя IP-адрес, который вы получили от Diumpanyocean.

ssh root@68.183.10.58

Установите Docker, запустив:

snap install docker

Откройте панель TMUX (где мы оставим поощряющийграфом), набрав TMUX Отказ

Теперь потяните контейнер SourceGraph Docker, запустив (проверьте обновленную версию этой команды на https://about.sourcegraph.com/get-started ).

docker run --publish 7080:7080 --publish 127.0.0.1:3370:3370 --rm --volume ~/.sourcegraph/config:/etc/sourcegraph --volume ~/.sourcegraph/data:/var/opt/sourcegraph sourcegraph/server:3.24.1

Он займет полминуту или около того, чтобы вытащить зависимости и инициализацию SourceGraph, а затем вы увидите пососграфом, работающий на порту 7080.

Нажмите Ctrl-B а затем нажмите D Отсоединить сеанс TMUX. Это оставит пососграфом, работающий на заднем плане даже после закрытия сеансов SSH.

Если вы хотите проверить это на этом этапе, откройте Новый SSH подключение к вашему серверу вместе с локальным портом для их (снова подстановка IP-адреса на цифровой документ)

ssh -L 7080:localhost:7080 root@68.183.10.58

Это будет передать ваш локальный порт 7080 через SSH для подключения к localhost: 7080 На экземпляре на цифровой цепи, когда исходный график работает. На вашей местной машине вы можете посетить http://localhost: 7080 В вашем браузере И вы должны увидеть страницу приветствия SourceGraph.

Не зарегистрируйтесь еще — Давайте сначала установим правильное соединение с помощью пользовательского домена и SSL.

👉 Указывая на домен в вашей капельке

Мы могли бы получить доступ к нашему серверу, набрав в IP-адресе, но трудно запомнить, и мы не можем легко получить SSL-сертификат, чтобы надежно получить доступ к нашему коду через HTTPS.

Вместо этого мы укажем поддоменность домена, которую мы контролируем — например. sg.example.com На капельке Digitalocean, чтобы мы могли получить доступ к серверу Sourpharapgraph, посетив этот домен.

В вашей панели управления DNS добавьте запись «A», которая указывает поддоменность к IP-адресу (тот же, который вы использовали для подключения к вашим VPS через SSH).

В NameCheap это выглядит следующим образом, но это изменится в зависимости от вашего регистратора доменов или поставщика DNS:

Сохраните изменения и дождитесь размножения DNS-записи. Это может занять до 72 часов, но на практике обычно занимает менее 5 минут.

⌨️. Установка Nginx и настройка обратного прокси

Вместо того, чтобы пользователи подключались непосредственно к порту, открытым Docker, мы собираемся настроить Nginx в качестве масштабируемого веб-сервера перед Docker. NGINX будет нести ответственность за ответ на все запросы от конечных пользователей и просыпает их на нашу связь докера.

apt update && apt install nginx

После установки вы должны быть в состоянии посетить поддомен, который мы настроили на предыдущем шаге sg.example.com и посмотрите страницу приветствия Nginx по умолчанию.

Настройка nginx.

Чтобы настроить Nginx в качестве прокси к контейнеру Docker, нам нужно редактировать файл на /etc/nginx/сайты, доступные/по умолчанию Отказ Открыть это с нано (или vim Если вы предпочитаете) бегом:

nano /etc/nginx/sites-available/default

Удалите все в файл и добавьте ниже на своем месте. Замените оба экземпляры sg.example.com С поддоменом, который вы настроили на предыдущем шаге.

server {
    server_name sg.example.com;

    access_log            /var/log/nginx/sourcegraph.access.log;

    location / {

      proxy_set_header    Host $host;
      proxy_set_header    X-Real-IP $remote_addr;
      proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header    X-Forwarded-Proto $scheme;

      proxy_pass          http://localhost:7080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:7080 https://sg.example.com;
    }

    listen 80;
}

Это связывает бегущий контейнер докеров с Nginx, что означает, что любой трафик, который приходит на нашем sg.example.com Поддомен будет перенаправлен на SourceGraph Server, запущенный внутри докера.

Сохраните файл и запустите:

service nginx reload

Теперь вы сможете увидеть одинаковый поиск страницы приветствия GreetGraph на http://sg.example.com. . Обратите внимание, что безопасная версия ( https ) пока не будет работать, так как нам все еще нужно настроить сертификат SSL.

🎫 Получение сертификата SSL с летесшипником

Установить Certbot Используя Snap, запустив следующую команду:

snap install --classic certbot snap install --classic certbot

Затем запустите:

certbot

И следуйте инструкциям:

  • Введите ваш адрес электронной почты.
  • Согласен на условия использования.
  • Выбрать или из коммуникаций из Эффе.
  • Выберите sg.example.com домен.

CERTBOT автоматически изменит файл конфигурации NGINX, который мы отредактировали ранее, чтобы использовать HTTPS. вместо http. .

Посетить https://sg.example.com. И теперь вы можете наконец заполнить форму, чтобы подписаться на SourtGraph.

✏️ Настройка SourceGraph с доменом и GitHub

Sourtgraph очень настраивается и имеет много разных вариантов. Два самых важных, чтобы начать с использованием IT:

  • Скажите пососграфом, где он принимается.
  • Скажите посудуграфом, где найти свой код.

Настройка домена

Посетить https://sg.ritza.co/site-admin/Configuration и растрескивание третьей строки (удалить // в начале). Затем замените домен поддоменом, которую мы выбрали ранее.

Нажмите кнопку «Сохранить изменения» и выберите «Перезагрузить сервер» при появлении запроса.

Связывание к Github

Чтобы получить свой код из GitHub, вам нужно получить токен из GitHub. Войдите в свой аккаунт GitHub и посетите https://github.com/settings/tokens. . Нажмите «Создать новый токен» и следуйте инструкциям.

Вы увидите только ваш токен, чтобы сохранить его где-то в безопасности и безопасных, таких как менеджер паролей.

Теперь перейдите к https://sg.ritza.co/site-admin/external-services/new и выберите github. Изменить конфигурацию к:

  • Добавьте ваш токен GitHub.
  • Добавьте любые организации, для которых вы хотите клонировать и индексировать все репозитории.
  • Добавьте любые отдельные репозитории, которые вы хотите клонировать и индексировать.

Например, в конфигурации ниже мы клонируем все публичные репозитории от Google и все государственные и частные репозитории от Ritza-Co (В нашем примере токен GitHub имеет доступ ко всему Ritza-Co org). Мы также добавляем репозитории для реагирования и Tensorflow по отдельности.

{
  "url": "https://github.com",
  "token": "e10db0e8307726f57254875992c24dd7ca2e2b23",
  "orgs": ["google", "ritza-co"],
  "repos": ["facebook/react", "tensorflow/tensorflow"]
}

Нажмите на синюю кнопку «Добавить репозитории» под текстовой коробкой и дождитесь клона и уконтеруйте свои репозитории.

🔎 Запуск вашего первого поиска по созначению

Хотя это делает это, вы можете пойти дальше и попробовать ваш первый поиск по сосребесению (что может быть неполным, пока репоиспетели все еще клонируют). Например, ниже вы можете увидеть все пустые операторы печати в файлах Python во всем коде.

В отличие от поиска GitHub, он уважает спецслужбы и возвращает совпадения, включая () Отказ Он также имеет простые возможности для исключения или включения видов, совпадающих корпусов и намного больше.

Посмотрите на https://docs.sourcegraph.com/code_search/tutorials/examples Для некоторых примеров поиска и начать узнавать синтаксис.

Оригинал: «https://dev.to/ritza/the-opinionated-guide-to-setting-up-a-sourcegraph-server-for-more-productive-advanced-code-search-3578»