add pages
This commit is contained in:
parent
bca3321fb1
commit
5816aa686f
@ -15,20 +15,10 @@ export default defineConfig({
|
||||
social: [{ icon: 'github', label: 'GitHub', href: 'https://git.sinenikolsky.ru/artem/starlite-bsp-kb.git' }],
|
||||
sidebar: [
|
||||
{
|
||||
collapsed: true,
|
||||
label: 'Библиотека стандартных подсистем',
|
||||
autogenerate: { directory: 'bsp' },
|
||||
},
|
||||
{
|
||||
collapsed: true,
|
||||
label: 'Зарплата и управление персоналом',
|
||||
autogenerate: { directory: 'zup' },
|
||||
},
|
||||
{
|
||||
collapsed: true,
|
||||
label: 'ERP. Управление холдингом',
|
||||
autogenerate: { directory: 'erp_uh' },
|
||||
},
|
||||
label: 'База знаний',
|
||||
// Autogenerate a group of links for the 'constellations' directory.
|
||||
autogenerate: { directory: 'knowledge-base' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
],
|
||||
|
129
src/content/docs/knowledge-base/Работа с GIT/autodeploy.md
Normal file
129
src/content/docs/knowledge-base/Работа с GIT/autodeploy.md
Normal file
@ -0,0 +1,129 @@
|
||||
---
|
||||
title: Автоматический деплой сайта из Gitea через Webhook
|
||||
---
|
||||
|
||||
## 📋 Описание
|
||||
Эта инструкция описывает, как настроить автоматическое обновление (деплой) сайта на Windows-сервере после `git push` в репозиторий Gitea, используя webhook и скрипт на стороне сервера.
|
||||
|
||||
---
|
||||
|
||||
## 🧱 Что используется
|
||||
- **Gitea** — self-hosted Git-сервер
|
||||
- **Windows Server** — где расположен сайт и работает Apache
|
||||
- **Apache** — размещает сайт, слушает Webhook
|
||||
- **Git** — установлен и настроен на сервере
|
||||
- **PHP** — обрабатывает Webhook
|
||||
- **Планировщик задач Windows** — запускает bat-скрипт
|
||||
|
||||
---
|
||||
|
||||
## ✅ Структура проекта
|
||||
|
||||
- Исходники сайта: `C:\mykb`
|
||||
- Папка публикации: `C:\Apache24\htdocs\1c-knowledge`
|
||||
- Gitea-репозиторий: `https://git.sinenikolsky.ru/artem/docusaurus-kb.git`
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Шаг 1: Подготовка репозитория на сервере
|
||||
|
||||
```bash
|
||||
cd C:\mykb
|
||||
git init
|
||||
git remote add origin https://git.sinenikolsky.ru/artem/docusaurus-kb.git
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
Настрой имя пользователя и email:
|
||||
```bash
|
||||
git config --global user.name "Artem"
|
||||
git config --global user.email "you@example.com"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Шаг 2: Настройка webhook в Gitea
|
||||
|
||||
1. Перейди в репозиторий → **Settings** → **Webhooks**
|
||||
2. Добавь URL:
|
||||
```
|
||||
http://<your-server-address>/webhook/index.php
|
||||
```
|
||||
3. Тип: `application/json`
|
||||
4. Включи только `push` события
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Шаг 3: Создание webhook-обработчика
|
||||
|
||||
📁 Путь: `C:\Apache24\htdocs\webhook\index.php`
|
||||
|
||||
```php
|
||||
<?php
|
||||
// webhook/index.php
|
||||
shell_exec("schtasks /Run /TN \"Docusaurus Auto Deploy\"");
|
||||
echo "OK";
|
||||
```
|
||||
|
||||
Проверь, что Apache обрабатывает `.php` файлы.
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Шаг 4: Создание скрипта обновления
|
||||
|
||||
📁 Файл: `C:\mykb\update-site.bat`
|
||||
|
||||
```bat
|
||||
@echo off
|
||||
cd /d C:\mykb
|
||||
echo Updating project...
|
||||
git pull origin main
|
||||
|
||||
call npm install --legacy-peer-deps
|
||||
call npm run build
|
||||
|
||||
robocopy build C:\Apache24\htdocs\1c-knowledge /MIR /NP /NFL /NDL
|
||||
exit /b 0
|
||||
```
|
||||
|
||||
> ⚠️ Убедись, что `robocopy` установлен (входит в состав Windows).
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Шаг 5: Создание задачи в планировщике
|
||||
|
||||
1. Открой "Планировщик заданий Windows"
|
||||
2. Создай задачу **"Docusaurus Auto Deploy"**
|
||||
3. Установи:
|
||||
- Триггеры: нет (будет запускаться вручную через webhook)
|
||||
- Действие: `cmd.exe`
|
||||
- Аргументы: `/c C:\mykb\update-site.bat`
|
||||
- Запуск от имени администратора
|
||||
|
||||
Проверь запуск вручную:
|
||||
`schtasks /Run /TN "Docusaurus Auto Deploy"`
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Шаг 6: Проверка
|
||||
|
||||
1. Сделай `git push` в Gitea
|
||||
2. Перейди в Gitea → репозиторий → Webhooks → Recent Deliveries
|
||||
3. Убедись, что webhook сработал и вернул `OK`
|
||||
4. Проверь, что сайт обновился в `http://<your-server>/1c-knowledge/`
|
||||
|
||||
---
|
||||
|
||||
## 💡 Советы
|
||||
|
||||
- Включи логирование в `update-site.bat`, если нужно отладить:
|
||||
```bat
|
||||
npm run build >> log.txt 2>&1
|
||||
```
|
||||
- Используй `git reset --hard` перед `pull`, если бывают конфликты
|
||||
- Проверь, что `git` работает из `cmd` без ошибок
|
||||
|
||||
---
|
||||
|
||||
## ✅ Готово
|
||||
Теперь сайт будет автоматически обновляться после каждого push в Gitea! 🎉
|
@ -0,0 +1,21 @@
|
||||
---
|
||||
title: Добавление файлов в индекс
|
||||
---
|
||||
|
||||
`git add` — подготавливает файлы для коммита. Без этой команды Git не будет учитывать изменения.
|
||||
|
||||
### Примеры:
|
||||
|
||||
Добавить конкретный файл:
|
||||
|
||||
```bash
|
||||
git add index.html
|
||||
```
|
||||
|
||||
Добавить все изменённые файлы:
|
||||
|
||||
```bash
|
||||
git add .
|
||||
```
|
||||
|
||||
После этого файлы попадают в "staging area" — область подготовки.
|
@ -0,0 +1,31 @@
|
||||
---
|
||||
title: Работа с ветками
|
||||
---
|
||||
|
||||
Git позволяет работать с несколькими версиями проекта одновременно с помощью веток (branches).
|
||||
|
||||
### Создание новой ветки:
|
||||
|
||||
```bash
|
||||
git branch feature-x
|
||||
```
|
||||
|
||||
### Переход на ветку:
|
||||
|
||||
```bash
|
||||
git checkout feature-x
|
||||
```
|
||||
|
||||
### Создание и переход одновременно:
|
||||
|
||||
```bash
|
||||
git checkout -b feature-x
|
||||
```
|
||||
|
||||
### Просмотр всех веток:
|
||||
|
||||
```bash
|
||||
git branch
|
||||
```
|
||||
|
||||
Текущая ветка будет отмечена звёздочкой `*`.
|
@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Переключение между ветками и коммитами
|
||||
---
|
||||
|
||||
`git checkout` — переключает на другую ветку, коммит или файл.
|
||||
|
||||
### Примеры:
|
||||
|
||||
Перейти на другую ветку:
|
||||
|
||||
```bash
|
||||
git checkout dev
|
||||
```
|
||||
|
||||
Создать новую ветку и сразу перейти:
|
||||
|
||||
```bash
|
||||
git checkout -b hotfix-1
|
||||
```
|
||||
|
||||
Вернуть файл в состояние последнего коммита:
|
||||
|
||||
```bash
|
||||
git checkout -- файл.txt
|
||||
```
|
||||
|
||||
Git подскажет, если текущие изменения будут потеряны при переключении.
|
@ -0,0 +1,21 @@
|
||||
---
|
||||
title: Клонирование репозитория
|
||||
---
|
||||
|
||||
`git clone` — команда, с помощью которой можно скопировать удалённый репозиторий (например, с Gitea, GitHub или GitLab) на свой компьютер.
|
||||
|
||||
### Примеры:
|
||||
|
||||
Клонирование по HTTPS:
|
||||
|
||||
```bash
|
||||
git clone https://git.sinenikolsky.ru/user/repo.git
|
||||
```
|
||||
|
||||
Клонирование по SSH (если добавлен SSH-ключ):
|
||||
|
||||
```bash
|
||||
git clone git@git.sinenikolsky.ru:user/repo.git
|
||||
```
|
||||
|
||||
После клонирования появится папка `repo`, внутри которой будет полный проект.
|
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Фиксация изменений
|
||||
---
|
||||
|
||||
`git commit` — сохраняет изменения, подготовленные командой `git add`, в историю проекта.
|
||||
|
||||
### Пример:
|
||||
|
||||
```bash
|
||||
git commit -m "Добавлен новый раздел на сайте"
|
||||
```
|
||||
|
||||
Хорошие коммиты должны быть с понятными сообщениями: что и зачем изменено.
|
@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Настройка пользователя
|
||||
---
|
||||
|
||||
Перед первым использованием Git нужно указать своё имя и email. Они будут использоваться в каждом коммите.
|
||||
|
||||
### Пример:
|
||||
|
||||
```bash
|
||||
git config --global user.name "Иван Иванов"
|
||||
git config --global user.email "ivan@example.com"
|
||||
```
|
||||
|
||||
Проверка настроек:
|
||||
|
||||
```bash
|
||||
git config --list
|
||||
```
|
||||
|
||||
Если не указать имя/email — Git не позволит делать коммиты.
|
@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Инициализация репозитория
|
||||
---
|
||||
|
||||
`git init` — команда, которая создаёт новый Git-репозиторий в текущей папке. Это первый шаг при создании проекта под управление версиями.
|
||||
|
||||
### Пример:
|
||||
|
||||
```bash
|
||||
mkdir my-project
|
||||
cd my-project
|
||||
git init
|
||||
```
|
||||
|
||||
После этого Git начнёт отслеживать изменения в этой папке. Появится скрытая директория `.git`, где хранится история проекта.
|
@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Просмотр истории коммитов
|
||||
---
|
||||
|
||||
`git log` — показывает все коммиты в истории репозитория.
|
||||
|
||||
### Пример:
|
||||
|
||||
```bash
|
||||
git log
|
||||
```
|
||||
|
||||
Более удобный и краткий вариант:
|
||||
|
||||
```bash
|
||||
git log --oneline --graph --all
|
||||
```
|
||||
|
||||
Это покажет историю в виде дерева.
|
@ -0,0 +1,14 @@
|
||||
---
|
||||
title: Слияние веток
|
||||
---
|
||||
|
||||
`git merge` — объединяет одну ветку с другой. Обычно используется, чтобы влить изменения из feature-ветки в основную (main или master).
|
||||
|
||||
### Пример:
|
||||
|
||||
```bash
|
||||
git checkout main
|
||||
git merge feature-x
|
||||
```
|
||||
|
||||
После слияния история двух веток объединяется. Если есть конфликты — Git попросит их вручную разрешить.
|
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Получение изменений из удалённого репозитория
|
||||
---
|
||||
|
||||
`git pull` — загружает последние изменения из удалённого репозитория и объединяет с локальной веткой.
|
||||
|
||||
### Пример:
|
||||
|
||||
```bash
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
Полезно, если вы работаете в команде и хотите получить изменения от коллег.
|
@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Отправка изменений в удалённый репозиторий
|
||||
---
|
||||
|
||||
`git push` — отправляет локальные коммиты в удалённый репозиторий.
|
||||
|
||||
### Пример:
|
||||
|
||||
```bash
|
||||
git push origin main
|
||||
```
|
||||
|
||||
Если ветка новая и ещё не существует на сервере:
|
||||
|
||||
```bash
|
||||
git push -u origin my-branch
|
||||
```
|
||||
|
||||
Флаг `-u` устанавливает ветку по умолчанию для будущих push/pull.
|
@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Проверка состояния репозитория
|
||||
---
|
||||
|
||||
`git status` — одна из самых часто используемых команд. Показывает, какие файлы изменены, какие — готовы к коммиту, а какие — нет.
|
||||
|
||||
### Пример:
|
||||
|
||||
```bash
|
||||
git status
|
||||
```
|
||||
|
||||
Вы увидите:
|
||||
- изменённые, но не добавленные в индекс файлы (в красном),
|
||||
- файлы, добавленные в индекс (в зелёном),
|
||||
- неотслеживаемые файлы.
|
@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Форк и вклад в чужой проект
|
||||
---
|
||||
|
||||
Пример: вы хотите внести изменения в чужой репозиторий на GitHub.
|
||||
|
||||
### Шаги:
|
||||
|
||||
1. Сделайте форк проекта на GitHub (кнопка "Fork").
|
||||
|
||||
2. Клонируйте себе:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/yourusername/project-name.git
|
||||
cd project-name
|
||||
```
|
||||
|
||||
3. Создайте новую ветку:
|
||||
|
||||
```bash
|
||||
git checkout -b fix-typos
|
||||
```
|
||||
|
||||
4. Внесите изменения, затем:
|
||||
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "Исправлены опечатки в README"
|
||||
```
|
||||
|
||||
5. Отправьте ветку на GitHub:
|
||||
|
||||
```bash
|
||||
git push origin fix-typos
|
||||
```
|
||||
|
||||
6. Перейдите на сайт GitHub и создайте Pull Request в оригинальный репозиторий.
|
||||
|
||||
Теперь автор проекта может принять ваши изменения.
|
@ -0,0 +1,49 @@
|
||||
---
|
||||
title: Создание нового проекта с нуля
|
||||
---
|
||||
|
||||
Пример: вы хотите создать новый проект и загрузить его на GitHub или Gitea.
|
||||
|
||||
### Шаги:
|
||||
|
||||
1. Создайте папку проекта:
|
||||
|
||||
```bash
|
||||
mkdir my-new-project
|
||||
cd my-new-project
|
||||
```
|
||||
|
||||
2. Инициализируйте Git-репозиторий:
|
||||
|
||||
```bash
|
||||
git init
|
||||
```
|
||||
|
||||
3. Создайте файл, например `README.md`:
|
||||
|
||||
```bash
|
||||
echo "# My New Project" > README.md
|
||||
```
|
||||
|
||||
4. Добавьте и зафиксируйте изменения:
|
||||
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "Первый коммит"
|
||||
```
|
||||
|
||||
5. Создайте репозиторий на GitHub или Gitea вручную.
|
||||
|
||||
6. Подключите удалённый репозиторий:
|
||||
|
||||
```bash
|
||||
git remote add origin https://git.sinenikolsky.ru/username/my-new-project.git
|
||||
```
|
||||
|
||||
7. Отправьте изменения:
|
||||
|
||||
```bash
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
Готово! Проект опубликован.
|
@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Получение обновлений из оригинального репозитория
|
||||
---
|
||||
|
||||
Если вы сделали форк и хотите получить последние изменения из оригинала:
|
||||
|
||||
### Шаги:
|
||||
|
||||
1. Добавьте оригинальный репозиторий как дополнительный remote:
|
||||
|
||||
```bash
|
||||
git remote add upstream https://github.com/originaluser/project-name.git
|
||||
```
|
||||
|
||||
2. Получите обновления:
|
||||
|
||||
```bash
|
||||
git fetch upstream
|
||||
```
|
||||
|
||||
3. Обновите вашу ветку:
|
||||
|
||||
```bash
|
||||
git checkout main
|
||||
git merge upstream/main
|
||||
```
|
||||
|
||||
Теперь ваша копия содержит последние изменения оригинального проекта.
|
Loading…
x
Reference in New Issue
Block a user