---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.2
alternate:
  - https://sourcecraft.dev/portal/docs/en/sourcecraft/tutorials/sites.md
  - https://sourcecraft.dev/portal/docs/ru/sourcecraft/tutorials/sites.md
  - href: ru/sourcecraft/tutorials/sites.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
title: Хостинг статического сайта из репозитория с помощью SourceCraft Sites
description: Пошаговое руководство по настройке хостинга статического сайта из репозитория с помощью SourceCraft Sites.
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt


# Хостинг статического сайта из репозитория с помощью SourceCraft Sites

<!-- source: ru/_includes/sourcecraft/sites-intro.md -->
_SourceCraft Sites_ — инструмент для бесплатного хостинга статического сайта без необходимости настройки серверной инфраструктуры. Сайт публикуется на основе файлов, которые размещены в публичном [репозитории](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#repos) публичной [организации](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#org) SourceCraft.

Статический сайт строится на клиентских технологиях, таких как [HTML](https://ru.wikipedia.org/wiki/HTML), [CSS](https://ru.wikipedia.org/wiki/CSS) и [JavaScript](https://ru.wikipedia.org/wiki/JavaScript). Он не может содержать каких-либо скриптов, требующих запуска на стороне веб-сервера. Вы можете использовать любые генераторы статических сайтов, например: [Jekyll](https://jekyllrb.com/), [Hugo](https://gohugo.io/), [Gatsby](https://www.gatsbyjs.com/) и др.

Доступ к сайтам, размещенным в SourceCraft Sites, осуществляется по защищенному протоколу [HTTPS](https://ru.wikipedia.org/wiki/HTTPS). Загрузка собственного [TLS-сертификата](https://ru.wikipedia.org/wiki/TLS) не требуется.

{% note info %}

Вы можете подтвердить владение сайтом на SourceCraft Sites в [Яндекс Вебмастере](https://webmaster.yandex.ru). Подробнее читайте в разделе [Вопросы про SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/qa/sourcecraft-sites.md#verify-site-owner).

{% endnote %}
<!-- endsource: ru/_includes/sourcecraft/sites-intro.md -->

В этом руководстве вы настроите хостинг статического сайта из репозитория с помощью SourceCraft Sites.

[Подробнее о SourceCraft Sites](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/sites.md)

Чтобы настроить хостинг:
1. [Подготовьтесь к работе](#prepare)
1. [Создайте репозиторий из шаблона](#create)
1. [Отредактируйте исходные файлы](#edit)
1. [Проверьте работоспособность сайта](#check)

Если сайт вам больше не нужен, [снимите его с публикации](#delete).

## Подготовьтесь к работе {#prepare}

1. Аутентифицируйтесь в SourceCraft на [главной странице](https://sourcecraft.dev) сервиса или [зарегистрируйтесь](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/registration.md).

    {% note warning %}

    Публикация сайта возможна только из публичного [репозитория](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#repos) в публичной [организации](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#org).
    
    Если вы работаете в приватной организации, [измените](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/org-edit.md) настройки ее видимости или [создайте](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/org-create.md) новую публичную организацию.

    {% endnote %}

1. [Создайте](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md#create) персональный токен, он понадобится в дальнейшем.

## Создайте репозиторий из шаблона {#create}

1. Откройте [главную страницу сервиса](https://sourcecraft.dev).
1. На панели слева нажмите ![image](../../_assets/console-icons/plus.svg) **Создать репозиторий**.
1. В открывшемся окне выберите **Репозиторий из шаблона**.
1. Рядом с шаблоном [**sites-landing**](https://sourcecraft.dev/sourcecraft/sites-landing) нажмите **Использовать шаблон**.
   
   На основе репозитория для этого шаблона развернут [лендинг SourceCraft Sites](https://sourcecraft.sourcecraft.site/sites-landing/).

   Чтобы посмотреть содержимое шаблона, нажмите **Предварительный просмотр**.

   Шаблон содержит предустановленную [конфигурацию SourceCraft Sites](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/sites.md#config), а также типовые файлы проекта.

1. <!-- source: ru/_includes/sourcecraft/repo-create-details.md -->
   В блоке **Сведения о новом репозитории**:

   <!-- source: ru/_includes/sourcecraft/repo-fork-create-details.md -->
   * В поле **Владелец** выберите организацию, в которой будет создан репозиторий.
   * В поле **Название** укажите название репозитория. 
          
     Название должно быть уникальным в пределах организации и может содержать следующие [ASCII-символы](https://ru.wikipedia.org/wiki/ASCII): строчные и заглавные буквы латинского алфавита, цифры, запятые, дефисы и подчеркивания.

     Под названием отображается адрес, по которому репозиторий будет доступен.

   * (опционально) В поле **Описание** укажите описание репозитория.
   <!-- endsource: ru/_includes/sourcecraft/repo-fork-create-details.md -->
   <!-- endsource: ru/_includes/sourcecraft/repo-create-details.md -->

1. В поле **Видимость** выберите тип доступа к репозиторию **Публичный** — доступ к просмотру репозитория будут иметь все пользователи интернета без аутентификации. Доступ к изменению репозитория будут иметь только приглашенные пользователи.

    {% note warning %}

    Публикация сайта возможна только из публичного репозитория в публичной организации.
    
    Если вы работаете в приватном или внутреннем репозитории, [измените](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/repo-edit.md) настройки его видимости или [создайте](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/repo-create.md) новый публичный репозиторий.

    {% endnote %}

1. Нажмите **Создать репозиторий**.

## Отредактируйте исходные файлы {#edit}

1. Посмотрите содержимое созданного репозитория.

    В репозитории расположены следующие элементы для статического сайта:
    * файл конфигурации SourceCraft Sites — `.sourcecraft/sites.yaml`;
    * файл конфигурации [CI/CD](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md) — `.sourcecraft/ci.yaml`;
    * исходники для генерации сайта.

    Подробнее о структуре репозитория и об используемых технологиях смотрите в файле [README.md](https://sourcecraft.dev/sourcecraft/sites-landing/browse/README.md).

    Конфигурация SourceCraft Sites в репозитории уже преднастроена так, что шаблонный сайт будет доступен по адресу `https://<слаг_организации>.sourcecraft.site/<название_репозитория>` в течение нескольких минут после создания репозитория.

1. Отредактируйте файл `.sourcecraft/sites.yaml`, нажав ![image](../../_assets/console-icons/pencil.svg) **Редактировать** в правом верхнем углу, или оставьте настройки по умолчанию.

    <!-- source: ru/_includes/sourcecraft/sites-config.md -->
    Конфигурация SourceCraft Sites задается для конкретного репозитория и хранится в файле `.sourcecraft/sites.yaml`. Для всего репозитория действует конфигурация, которая размещена в основной ветке, например `master` или `main`.

    Общий вид конфигурации SourceCraft Sites в `.sourcecraft/sites.yaml`: {#config}

    ```yaml
    site:
      root: "<путь_к_директории_с_файлами_сайта>"
      ref: "<ветка_или_тег>"
    ```

    Где:
    * `root` — абсолютный путь от корня репозитория до директории с файлами сайта, например `site`. Опциональный параметр. По умолчанию — корень репозитория.

      {% note tip %}

      Рекомендуем использовать для главной страницы сайта файл `index.html`.

      {% endnote %}

    * `ref` — название ветки или тега, файлы из которых будут использованы для публикации статического сайта, например `release`. Опциональный параметр. По умолчанию — основная ветка репозитория. После внесения изменений в ветку сайт обновляется автоматически в течение нескольких минут.
    <!-- endsource: ru/_includes/sourcecraft/sites-config.md -->

1. Аналогичным образом измените содержимое в директории `src`, например:
    * Поменяйте конфигурацию основной страницы сайта `src/pages/index.yaml` на нужную вам — по умолчанию там находится конфигурация для [лендинга SourceCraft Sites](https://sourcecraft.sourcecraft.site/sites-landing/). Не меняйте имя файла `index.yaml`.
    * Добавьте свои CSS-файлы или React-компоненты. Пример конфигурации есть в файле `page-builder.config.yml`.

1. Сохраните изменения в основной ветке репозитория.

## Проверьте работоспособность сайта {#check}

В соответствии с конфигурацией `.sourcecraft/ci.yaml` после внесения изменений в основную ветку репозитория `main` автоматически запускается [рабочий процесс](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md#workflows) `build-site`, в котором:
1. Из исходных файлов в директории `src` в ветке `main` генерируются файлы сайта.
1. Файлы сайта публикуются в директории `site` в ветке `release`.

Чтобы проверить работоспособность сайта:
1. На странице репозитория в разделе ![image](../../_assets/console-icons/code.svg) **Код** перейдите в секцию ![image](../../_assets/console-icons/arrows-3-rotate-right.svg) **CI/CD**.
1. В списке запусков автоматизаций вы увидите новый запуск. Дождитесь, когда статус изменится на ![image](../../_assets/console-icons/circle-check.svg) **Успех**.
1. На главной странице репозитория на панели слева в блоке **Выкладки** перейдите по ссылке.

### Соберите сайт локально {#build}

Опционально вы можете собрать и проверить сайт локально:
1. Склонируйте репозиторий:

    ```bash
    git clone https://git@git.sourcecraft.dev/<слаг_организации>/<название_репозитория>.git
    ```

1. Установите [Node.js](https://nodejs.org) версии 18 или выше.

    Для установки рекомендуется использовать [Node Version Manager](https://github.com/nvm-sh/nvm).

1. Перейдите в директорию с репозиторием и соберите проект:

    ```bash
    cd <название_репозитория>
    npm ci
    npm run build
    ```

1. Откройте файл `site/index.html` в браузере.

## Снимите сайт с публикации {#delete}

Если сайт вам больше не нужен, в основной ветке репозитория очистите содержимое файла `.sourcecraft/sites.yaml` или [удалите репозиторий](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/repo-delete.md).
