add pages

This commit is contained in:
wakadakawaka 2025-04-15 00:28:08 +05:00
parent bca3321fb1
commit 5816aa686f
17 changed files with 478 additions and 14 deletions

View File

@ -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' },
},
],
}),
],

View 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! 🎉

View File

@ -0,0 +1,21 @@
---
title: Добавление файлов в индекс
---
`git add` — подготавливает файлы для коммита. Без этой команды Git не будет учитывать изменения.
### Примеры:
Добавить конкретный файл:
```bash
git add index.html
```
Добавить все изменённые файлы:
```bash
git add .
```
После этого файлы попадают в "staging area" — область подготовки.

View File

@ -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
```
Текущая ветка будет отмечена звёздочкой `*`.

View File

@ -0,0 +1,27 @@
---
title: Переключение между ветками и коммитами
---
`git checkout` — переключает на другую ветку, коммит или файл.
### Примеры:
Перейти на другую ветку:
```bash
git checkout dev
```
Создать новую ветку и сразу перейти:
```bash
git checkout -b hotfix-1
```
Вернуть файл в состояние последнего коммита:
```bash
git checkout -- файл.txt
```
Git подскажет, если текущие изменения будут потеряны при переключении.

View File

@ -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`, внутри которой будет полный проект.

View File

@ -0,0 +1,13 @@
---
title: Фиксация изменений
---
`git commit` — сохраняет изменения, подготовленные командой `git add`, в историю проекта.
### Пример:
```bash
git commit -m "Добавлен новый раздел на сайте"
```
Хорошие коммиты должны быть с понятными сообщениями: что и зачем изменено.

View File

@ -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 не позволит делать коммиты.

View File

@ -0,0 +1,15 @@
---
title: Инициализация репозитория
---
`git init` — команда, которая создаёт новый Git-репозиторий в текущей папке. Это первый шаг при создании проекта под управление версиями.
### Пример:
```bash
mkdir my-project
cd my-project
git init
```
После этого Git начнёт отслеживать изменения в этой папке. Появится скрытая директория `.git`, где хранится история проекта.

View File

@ -0,0 +1,19 @@
---
title: Просмотр истории коммитов
---
`git log` — показывает все коммиты в истории репозитория.
### Пример:
```bash
git log
```
Более удобный и краткий вариант:
```bash
git log --oneline --graph --all
```
Это покажет историю в виде дерева.

View File

@ -0,0 +1,14 @@
---
title: Слияние веток
---
`git merge` — объединяет одну ветку с другой. Обычно используется, чтобы влить изменения из feature-ветки в основную (main или master).
### Пример:
```bash
git checkout main
git merge feature-x
```
После слияния история двух веток объединяется. Если есть конфликты — Git попросит их вручную разрешить.

View File

@ -0,0 +1,13 @@
---
title: Получение изменений из удалённого репозитория
---
`git pull` — загружает последние изменения из удалённого репозитория и объединяет с локальной веткой.
### Пример:
```bash
git pull origin main
```
Полезно, если вы работаете в команде и хотите получить изменения от коллег.

View File

@ -0,0 +1,19 @@
---
title: Отправка изменений в удалённый репозиторий
---
`git push` — отправляет локальные коммиты в удалённый репозиторий.
### Пример:
```bash
git push origin main
```
Если ветка новая и ещё не существует на сервере:
```bash
git push -u origin my-branch
```
Флаг `-u` устанавливает ветку по умолчанию для будущих push/pull.

View File

@ -0,0 +1,16 @@
---
title: Проверка состояния репозитория
---
`git status` — одна из самых часто используемых команд. Показывает, какие файлы изменены, какие — готовы к коммиту, а какие — нет.
### Пример:
```bash
git status
```
Вы увидите:
- изменённые, но не добавленные в индекс файлы (в красном),
- файлы, добавленные в индекс (в зелёном),
- неотслеживаемые файлы.

View File

@ -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 в оригинальный репозиторий.
Теперь автор проекта может принять ваши изменения.

View File

@ -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
```
Готово! Проект опубликован.

View File

@ -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
```
Теперь ваша копия содержит последние изменения оригинального проекта.