Compare commits
63 Commits
3d51325a6f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 221592a2e4 | |||
| a25bd88086 | |||
| d6d2392a44 | |||
| 3c3fcbb7c0 | |||
| bc56f59e16 | |||
| 0d48cb23c5 | |||
| 31376a6ded | |||
| 6a79371ef8 | |||
| 40bad4a94c | |||
| 16fbe67f59 | |||
| 25d94e0592 | |||
| d25860148b | |||
| 3146c811f5 | |||
| eb4932986c | |||
| 3a65b1c545 | |||
| be0598c725 | |||
| 823c3f03c1 | |||
| 35337a173f | |||
| f38043e90b | |||
| 60b4de26f7 | |||
| 210f6cc0db | |||
| b848dc8369 | |||
| 01dd2e8388 | |||
| bdb65ec784 | |||
| f4fad8f8f7 | |||
| 7e3fc4424c | |||
| df0a29454d | |||
| 6decc98b75 | |||
| e6e510d712 | |||
| cca2d76b4a | |||
| bd88d937be | |||
| a2dc8cabe4 | |||
| abcea3bea0 | |||
| 8d1798adcb | |||
| 4b38dafdec | |||
| d7a760326f | |||
| bb3091dddf | |||
| 2146195c8b | |||
| 8e9b788c99 | |||
| 8084104b34 | |||
| 2efead03da | |||
| 3653306839 | |||
| 7827ced1b5 | |||
| 827a7500a2 | |||
| 19a0b736bb | |||
| 17788f201f | |||
| d59f468092 | |||
| d65688395e | |||
| 56a99ff268 | |||
| d6114b5e70 | |||
| 8eed058a7f | |||
| 053283c314 | |||
| f78186e14f | |||
| aee4c36a8e | |||
| efa8c4329b | |||
| 9674f21f48 | |||
| e4f70511c8 | |||
| 9cf1cc6a3c | |||
| 026447bf48 | |||
| edbba54205 | |||
| aa5cea95d3 | |||
| 5eef9c9f0d | |||
| 570fca0560 |
@@ -1,8 +1,3 @@
|
|||||||
# serti-docs
|
# serti-docs
|
||||||
|
|
||||||
Исходный код [моего сайта](https://serti.fun) на MkDocs для блога и документирования моих проектов.
|
Исходный код [моего сайта](https://serti.fun) на MkDocs для блога и документирования моих проектов.
|
||||||
|
|
||||||
| Статус | Задача |
|
|
||||||
| ------ | ------ |
|
|
||||||
| Не готово | Добавленная ссылка на мой Telegram |
|
|
||||||
| Не готово | Добавлен RSS Feed |
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# Обо мне
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
# Создание блога
|
|
||||||
|
|
||||||
## Первый пост
|
|
||||||
Я захотел вести блог и писать документации исключительно для личных целей. Но так как кому то может быть интересно, данный блог не будет зкартым, как и мои документации.
|
|
||||||
## Почему здесь?
|
|
||||||
Я не люблю социальные сети как **Вконтакте**, **Twitter**(**X**), **Facebook** и прочие.
|
|
||||||
|
|
||||||
Оснавная причина в том, что пользователи не владеют так токовыми созданными постами. Они храняться на 3 серверах и могут редактировать или да же удалять ваш контент.
|
|
||||||
|
|
||||||
## Как будут выклажываться посты?
|
|
||||||
Посты не ежедневные. Когда появиться интересная история, то я срадостью поделюсь этим.
|
|
||||||
|
|
||||||
## Можно ли следить за постами?
|
|
||||||
Вероятнее всего да, но пока под вопросом. Я изучаю MkDocs и может появиться RSS Feed.
|
|
||||||
|
|
||||||
Так же, может блог перейдет на другой проект.
|
|
||||||
43
docs/blog/2026/ai-and-me.md
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
date:
|
||||||
|
created: 2026-01-01
|
||||||
|
---
|
||||||
|
|
||||||
|
# Дифицит комплектующих и искуственный интелект
|
||||||
|
|
||||||
|
Полагаю, большинство сейчас не гадуют что же делать, когда цена на технику взлетела, но прекрасно понимают кто за этим стоит. Вернее стоят.
|
||||||
|
|
||||||
|
Большинство компаний захотело вложиться в ИИ. И это уже не новость, факт. Многим компаниям захотелось начать улучшать серверную для себя и потребителей. Это не только Google, OpenAI и прочие америанские компании, но и наш Яндекс, Китайский DeepSeek и так далее.
|
||||||
|
|
||||||
|
Из-за этого взлетела цена на оперативную память, а вместе с ней и физические накопители (SSD и HDD). Не удивительно, что по правилам рынка поднялась цена на материнский платы, процессоры и так далее. Не значительно, но все же.
|
||||||
|
|
||||||
|
Помню в прошлом году новость, где компания Raspberry жаловалась на хайп ИИ. Цена за чип оперативной памяти взлетел и вместе с ним сам Raspberry Pi. Пришлось компании менять стратегию и выпускать свои машины на 2GB и 1GB оперативной памяти. Мне не до конца понятно, что можно сделать на машине с 1GB оперативной памяти, но если есть какие то идеи, то компания Raspberry точно знает об этом.
|
||||||
|
|
||||||
|
## Обновление HomeLab
|
||||||
|
|
||||||
|
Я как раз хотел обновить свой сервер, докупив серверные плашки **DDR3** на али. Но цена меня растроила.
|
||||||
|
|
||||||
|

|
||||||
|
[Ссылка на товар](https://aliexpress.ru/item/1005007836124329.html?sku_id=5000000915963465&spm=a2g2w.productlist.search_results.0.727b2059jahshr)
|
||||||
|
|
||||||
|
Несколько месяцев назад можно было купить по приемлемой цене. Теперь, никому не нужный модуль оперативной памяти стоит **9.5 тыс.** И это одна плашка **32ГБ**.
|
||||||
|
|
||||||
|
Да и не только оперативная память мне нужна. Но и диски, которые нужны для замены моих пулов на моем самосборочном NAS. Мои пулы, как можно заметить, имеют тип **Sprite**. Если один из дисков превратиться в кирпич, то все данные я потеряю. А на этом NAS храняться фильмы и сервиалы для Jellyfin и Emby.
|
||||||
|
|
||||||
|

|
||||||
|
[Ссылка на список товартов DNS](https://www.dns-shop.ru/catalog/17a8914916404e77/zhestkie-diski-35/?f[1c]=d5)
|
||||||
|
|
||||||
|
|
||||||
|
## Что же тогда делать?
|
||||||
|
|
||||||
|
На самом деле, тут да же скидки не смогут помочь.
|
||||||
|
|
||||||
|
Мое мнение, просто подождать когда утихнет хайп ИИ и все не уляжеться, как с майнингом. Как говориться, лучше не бежать вперед поровоза и следить за ситуацией.
|
||||||
|
|
||||||
|
Гадать тут трудно. Но многие говорят, что скоро будет снова повышение цен, но теперь цена возрастет на видеокарты. Я этим слухам верю.
|
||||||
|
|
||||||
|
## Есть ли что то, что не подорожало?
|
||||||
|
|
||||||
|
Ходить во круг до около не стоит. Все равно, копьютеры и телефоны имеют оперативную память и какое то хранилище.
|
||||||
|
|
||||||
|
К счастью, цена на кекоторую апаратуру еще не сильно возрасла. Можно взять для HomeLab или для личных целей мини пк от HP серии EleteDesk. Хотя се равно, после покупки б/у, нужно обновлять, а опериатвная память в серьезном дефиците, как и жеские диски.
|
||||||
18
docs/blog/2026/create-blog.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Создание блога
|
||||||
|
|
||||||
|
## Первый пост
|
||||||
|
Мне захотелось вести личный блог и писать документации исключительно для личных целей. Но так как кому то может быть интересно, данный блог не будет зкартым, как и мои документации.
|
||||||
|
## Почему здесь?
|
||||||
|
Мне не нравиться социальные сети как **Вконтакте**, **Twitter**(**X**), **Facebook** и прочие.
|
||||||
|
|
||||||
|
Оснавная причина в том, что пользователи не владеют так таковыми созданными постами. Они храняться на 3 серверах, где могут редактировать или удалять контент без вашего ведома.
|
||||||
|
|
||||||
|
## Как будут выкладываться посты?
|
||||||
|
Посты не ежедневные и не ежемесячные. Когда появиться интересная история, то я срадостью поделюсь.
|
||||||
|
|
||||||
|
На данный момент, будут происходить изменения в сайте как в дизайне, так и добавление информации.
|
||||||
|
|
||||||
|
## Можно ли следить за постами?
|
||||||
|
Пока нет.
|
||||||
|
|
||||||
|
Я пока изучаю MkDocs и может появиться RSS Feed.
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# Покупка Б/У дисков
|
|
||||||
|
|
||||||
*Дата: 02.01.2026*
|
|
||||||
*Теги: sas, homelab*
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1 2 3
|
|
||||||
42
docs/blog/hi.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
title: Привет!
|
||||||
|
---
|
||||||
|
|
||||||
|
Здесь я делюсь своим мнением и рассказываю, что произошло.
|
||||||
|
|
||||||
|
## Почему здесь?
|
||||||
|
|
||||||
|
Мне не нравиться социальные сети.
|
||||||
|
|
||||||
|
- **Вконтакте**
|
||||||
|
- **Twitter** (**X**)
|
||||||
|
- **Facebook**
|
||||||
|
|
||||||
|
И другие.
|
||||||
|
|
||||||
|
**Основная причина** - владелец контента не владеет полностью своими постами. Они находяться на 3 серверах и с ними могут сделать все что угодно.
|
||||||
|
|
||||||
|
А так как мессенджеры начали внедрять посты, они то же попадают в данную категорию. Хотя у некоторых проблем больше, что у приведенных выше социальных сетей.
|
||||||
|
|
||||||
|
- **Telegram**
|
||||||
|
- Обещал, обещал Дуров, что не выдаст ключи, а сам на хайпе поднялся и, се равно выдал Франции.
|
||||||
|
- Никогда не будет платных подписок... Видим на лицо.
|
||||||
|
- **WhatsApp**
|
||||||
|
- Эти хранения медиа данных на телефоне для галочки.
|
||||||
|
- **Max**
|
||||||
|
- Гигант бреда. Позже напишу пост, почему так думаю.
|
||||||
|
|
||||||
|
## Обновление
|
||||||
|
|
||||||
|
Посты **не ежедневные** и **не ежемесячные**. Если появиться что то интересное, то срадостью поделюсь.
|
||||||
|
|
||||||
|
## Обратите внимание!
|
||||||
|
|
||||||
|
Мое мнение должно оставиться **в узких кругах**.
|
||||||
|
|
||||||
|
??? warning "Не большое замечание"
|
||||||
|
**Я стараюсь никого не оскорблять**.
|
||||||
|
|
||||||
|
Хотя это полностью мой блог, интернет может по разному оценить мои посты.
|
||||||
|
|
||||||
|
|
||||||
1
docs/blog/index.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
48
docs/docs/docker/about.md
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
# Что такое Docker?
|
||||||
|
|
||||||
|
**Docker** — программное обеспечение для автоматизированного развертывания и управления приложениями в изолированных средах — контейнерах.
|
||||||
|
|
||||||
|
**Если говорить проще:** Docker помогает быстро развернуть разные проекты в своей изолированной контейнерной среде.
|
||||||
|
|
||||||
|
## Как он работает?
|
||||||
|
|
||||||
|
В контейнер можно «завернуть» свой или любой другой проект. Существуют готовые **образы (images)**, которые содержат предустановленные проекты со всеми зависимостями, что избавляет от необходимости компиляции и поиска библиотек.
|
||||||
|
|
||||||
|
## Готовые образы
|
||||||
|
|
||||||
|
Большая часть образов находится на [официальном репозитории Docker Hub](https://hub.docker.com).
|
||||||
|
|
||||||
|
Самые базовые:
|
||||||
|
|
||||||
|
- **Debian**, **Ubuntu**, **Fedora**, **CentOS** (ОС)
|
||||||
|
- **Python**, **MySQL**, **MariaDB**, **PostgreSQL** (сервисы)
|
||||||
|
|
||||||
|
А также готовые проекты:
|
||||||
|
- **PHP MyAdmin**, **Apache2**, **WordPress**, **phpBB**
|
||||||
|
|
||||||
|
Это позволяет запускать проекты на разных версиях ПО, обеспечивая совместимость даже со старыми системами.
|
||||||
|
|
||||||
|
## Доступ к контейнерам
|
||||||
|
|
||||||
|
Docker предоставляет несколько способов взаимодействия с контейнерами. Чаще всего используются:
|
||||||
|
|
||||||
|
- **Проброс портов** (например, порт `8080` в контейнере на порт `80` хоста)
|
||||||
|
- **Монтирование каталогов** (например, `/var/www/html` из контейнера в папку на хосте)
|
||||||
|
|
||||||
|
## Комбинирование контейнеров
|
||||||
|
|
||||||
|
Docker позволяет связывать контейнеры в общую сеть, что необходимо для сложных приложений.
|
||||||
|
|
||||||
|
**Пример стека для форума на phpBB:**
|
||||||
|
|
||||||
|
1. **MariaDB** — контейнер с базой данных
|
||||||
|
2. **phpBB** — контейнер с форумом, подключённый к MariaDB
|
||||||
|
3. **PHP MyAdmin** — контейнер для управления БД (опционально)
|
||||||
|
|
||||||
|
Все три контейнера работают вместе как единое приложение.
|
||||||
|
|
||||||
|
## Ссылки
|
||||||
|
|
||||||
|
- [Официальный сайт **Docker**](https://www.docker.com/)
|
||||||
|
- [Репозиторий образов **Docker**](https://hub.docker.com/)
|
||||||
|
|
||||||
280
docs/docs/docker/commands.md
Normal file
@@ -0,0 +1,280 @@
|
|||||||
|
# Команды Docker
|
||||||
|
|
||||||
|
## Введение
|
||||||
|
Рассмотрим команды, которые необходимо знать для использования Docker.
|
||||||
|
|
||||||
|
Список базовых команд:
|
||||||
|
|
||||||
|
- Справочная страница:
|
||||||
|
```bash
|
||||||
|
docker help
|
||||||
|
```
|
||||||
|
- Версия Dсocker:
|
||||||
|
```bash
|
||||||
|
docker version
|
||||||
|
```
|
||||||
|
- Базовая информация о работе Docker:
|
||||||
|
```bash
|
||||||
|
docker info
|
||||||
|
```
|
||||||
|
|
||||||
|
## Поиск образов
|
||||||
|
|
||||||
|
Поиск можно осуществлять на [сайте образов docker](https://hub.Docker.com/), но иногда можно искать и с помощью команд.
|
||||||
|
|
||||||
|
**Почему это полезно?** Мы быстрее получим необходимый список и сможем выбрать нужный Docker.
|
||||||
|
|
||||||
|
**Обычный поиск:**
|
||||||
|
```bash
|
||||||
|
docker search wordpress
|
||||||
|
```
|
||||||
|
|
||||||
|
???info "Пример резульата"
|
||||||
|
```
|
||||||
|
NAME DESCRIPTION STARS OFFICIAL
|
||||||
|
wordpress The WordPress rich content management system… 5855 [OK]
|
||||||
|
bitnami/wordpress Bitnami Secure Image for wordpress 281
|
||||||
|
bitnamicharts/wordpress Bitnami Helm chart for WordPress 2
|
||||||
|
elestio/wordpress Wordpress, verified and packaged by Elestio 6
|
||||||
|
secoresearch/wordpress Apache+PHP+Varnish+Wordpress 0
|
||||||
|
shinsenter/wordpress 🔋 (PHP / Wordpress) Production-ready Docker… 5
|
||||||
|
vulhub/wordpress 4
|
||||||
|
chainguard/wordpress Build, ship and run secure software with Cha… 0
|
||||||
|
corpusops/wordpress https://github.com/corpusops/docker-images/ 0
|
||||||
|
rootpublic/wordpress 0
|
||||||
|
centurylink/wordpress Wordpress image with MySQL removed. 14
|
||||||
|
erikzenker/wordpress wordpress docker image 0
|
||||||
|
arm64v8/wordpress The WordPress rich content management system… 21
|
||||||
|
arm32v7/wordpress The WordPress rich content management system… 16
|
||||||
|
tutum/wordpress Out-of-the-box Wordpress docker image 42
|
||||||
|
amd64/wordpress The WordPress rich content management system… 2
|
||||||
|
demyx/wordpress Non-root Docker image running Alpine Linux, … 2
|
||||||
|
i386/wordpress The WordPress rich content management system… 1
|
||||||
|
ppc64le/wordpress The WordPress rich content management system… 1
|
||||||
|
wodby/wordpress Vanilla WordPress container image 2
|
||||||
|
itherz/wordpress Wordpress 0
|
||||||
|
s390x/wordpress The WordPress rich content management system… 5
|
||||||
|
spatialy/wordpress Wordpress + PHP Extensions 0
|
||||||
|
arm32v5/wordpress The WordPress rich content management system… 0
|
||||||
|
mips64le/wordpress The WordPress rich content management system… 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Здесь мы получаем список из 4 столбцов:
|
||||||
|
|
||||||
|
- **NAME** Имя
|
||||||
|
- **DESCRIPTION** Описание
|
||||||
|
- **STARS** Звезды, которые отображат популярность образов
|
||||||
|
- **OFFICIAL** Помечаються оффициальные образы
|
||||||
|
|
||||||
|
**Аргументы:**
|
||||||
|
|
||||||
|
- `-f` (`--filter`) Фильтрует результат.
|
||||||
|
- `-f stars=3` больше 3 звезд
|
||||||
|
- `-f is-offical=true` только оффициальные
|
||||||
|
- `--format` Преобразование вывода
|
||||||
|
- `--format "{{.Name}}"` Имя образа
|
||||||
|
- `--format {{.StarCount}}` Кол-во звезд
|
||||||
|
- `--format {{.Description}}` Описание
|
||||||
|
- `--format {{.IsOffical}}` официальный образ
|
||||||
|
- `--limit` Ограничивает список до определенного количества
|
||||||
|
- `--limit 5` Выводит 5 образов
|
||||||
|
- `--no-trunc` Не сокращенный вариант описания
|
||||||
|
|
||||||
|
**Поиск с аргументами:**
|
||||||
|
```bash
|
||||||
|
docker search --limit 5 --format "{{.Name}}: {{.Description}}" --no-trunc wordpress
|
||||||
|
```
|
||||||
|
|
||||||
|
???info "Пример результата"
|
||||||
|
```
|
||||||
|
wordpress: The WordPress rich content management system can utilize plugins, widgets, and themes.
|
||||||
|
bitnami/wordpress: Bitnami Secure Image for wordpress
|
||||||
|
bitnamicharts/wordpress: Bitnami Helm chart for WordPress
|
||||||
|
elestio/wordpress: Wordpress, verified and packaged by Elestio
|
||||||
|
secoresearch/wordpress: Apache+PHP+Varnish+Wordpress
|
||||||
|
```
|
||||||
|
|
||||||
|
## Установка образа
|
||||||
|
|
||||||
|
Теперь попробуем установить образ **nginx**.
|
||||||
|
|
||||||
|
**Установка образа:**
|
||||||
|
```bash
|
||||||
|
docker pull nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
???info "Пример вывода"
|
||||||
|
```
|
||||||
|
Using default tag: latest
|
||||||
|
latest: Pulling from library/nginx
|
||||||
|
02d7611c4eae: Pull complete
|
||||||
|
dcea87ab9c4a: Pull complete
|
||||||
|
35df28ad1026: Pull complete
|
||||||
|
99ae2d6d05ef: Pull complete
|
||||||
|
a2b008488679: Pull complete
|
||||||
|
d03ca78f31fe: Pull complete
|
||||||
|
d6799cf0ce70: Pull complete
|
||||||
|
Digest: sha256:ca871a86d45a3ec6864dc45f014b11fe626145569ef0e74deaffc95a3b15b430
|
||||||
|
Status: Downloaded newer image for nginx:latest
|
||||||
|
docker.io/library/nginx:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
Смотря от загрузки сети, через некоторое время, у нас получиться установить **nginx**.
|
||||||
|
|
||||||
|
!!!note "Обратите внимание"
|
||||||
|
Оффициальный поставщик образов **Docker** имеет имя **library**.
|
||||||
|
|
||||||
|
Когда мы устанавливаем оффициальные образа, можно не указывать поставщика.
|
||||||
|
|
||||||
|
**Установка определенной версии:**
|
||||||
|
```bash
|
||||||
|
docker pull nginx:1.29-trixie
|
||||||
|
```
|
||||||
|
|
||||||
|
Под версии в Docker подразумеваются **Tags**. Теги просматриваются на сайте [hub.docker.com](https://hub.docker.com). В нашем случае это [данный образ](https://hub.docker.com/_/nginx/tags/).
|
||||||
|
|
||||||
|
К сожалению, с помощью команды **docker** нельзя просмотреть список версий. Можно с помощью api или, как было написанно выше - на сайте.
|
||||||
|
|
||||||
|
|  |
|
||||||
|
| :--------: |
|
||||||
|
| Теги Nginx |
|
||||||
|
|
||||||
|
## Просмотр установленных образов
|
||||||
|
|
||||||
|
После устанвки, можно посмотреть какие образы у нас установлены:
|
||||||
|
```bash
|
||||||
|
docker images
|
||||||
|
```
|
||||||
|
|
||||||
|
???info "Пример вывода"
|
||||||
|
```
|
||||||
|
REPOSITORY TAG IMAGE ID CREATED SIZE
|
||||||
|
...
|
||||||
|
nginx latest 058f4935d1cb 10 days ago 152MB
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Мы получим пять колонок:
|
||||||
|
|
||||||
|
- **REPOSITORY** имя образа (репозитория). Обычно пишеться `имя поставщика/образ`
|
||||||
|
- **TAG** версия (тег) изображения
|
||||||
|
- **IMAGE ID** ID изображения
|
||||||
|
- **CREATED** Когда данный образ обновлялся
|
||||||
|
- **SIZE** Размер образа
|
||||||
|
|
||||||
|
|
||||||
|
## Запуск контейнера
|
||||||
|
|
||||||
|
Запуск происходит достаточно простым способом. Попробуем запустить контейнер nginx, который только что установили.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
Веб сервис nginx запуститься и отобразит логи.
|
||||||
|
|
||||||
|
|
||||||
|
???info "Пример логов"
|
||||||
|
```
|
||||||
|
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
|
||||||
|
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
|
||||||
|
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
|
||||||
|
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
|
||||||
|
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
|
||||||
|
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
|
||||||
|
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
|
||||||
|
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
|
||||||
|
/docker-entrypoint.sh: Configuration complete; ready for start up
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: using the "epoll" event method
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: nginx/1.29.4
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: built by gcc 14.2.0 (Debian 14.2.0-19)
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: OS: Linux 6.1.0-27-amd64
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker processes
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 30
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 31
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 32
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 33
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 34
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 35
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 36
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 37
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 38
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 39
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 40
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 41
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 42
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 43
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 44
|
||||||
|
2026/01/14 14:30:15 [notice] 1#1: start worker process 45
|
||||||
|
```
|
||||||
|
|
||||||
|
Но зайти на стандартную страницу по порту 80, вероятнее вссего не получиться.
|
||||||
|
|
||||||
|
### Проброс портов
|
||||||
|
|
||||||
|
Попробуем пробросить HTTP порт 80.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -p 80:80 nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
- `-p 80:80` - `[HOST]:[CONTAINER]` - проброс порта на машину хоста.
|
||||||
|
- Тем же самым можно пробросить на другие порты хоста `81:80`, `8080:80` и так далее. Это помогает избежать конфликтов, когда запущено несколько портов и они используют одни и те же порты.
|
||||||
|
|
||||||
|
Теперь, когда перейдем на адрес машины, то мы получим страницу по умолчанию:
|
||||||
|
|
||||||
|
- [http://localhost](http://localhost) - кто поднимает контейнеры на основной машине или пробрасывает порты.
|
||||||
|
- `http://[адрес хоста с активным контейнером]` - прямой доступ с удаленной машины.
|
||||||
|
|
||||||
|
???warning "Информация для тех, которые поднимают первый раз сайты"
|
||||||
|
Браузер может запросить о подтверждения входа. Это из-за того, что используеться http протокол, а не https.
|
||||||
|
|
||||||
|
Принимаем риски.
|
||||||
|
|
||||||
|
???info "Стартовая страница nginx"
|
||||||
|

|
||||||
|
|
||||||
|
### Монтирование каталога
|
||||||
|
|
||||||
|
Однозначно, если мы говорим про nginx, нам нужен прямой доступ к `/usr/share/nginx/html`, да бы иметь доступ к исходному сайту.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -p 80:80 -v /mnt/nginx:/usr/share/nginx/html:ro nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
- `-v /mnt/nginx:/usr/share/nginx/html:ro` - `[HOST]:[CONTAINER]:[PERMISSION]` - подключение каталога контейнера к машине с правами только для четения.
|
||||||
|
- `ro` - только для четения не для контейнера, а для самого контейнера.
|
||||||
|
- Это полезно, когда нужно что бы процесс в контейнере случайно не изменил сруктуру сайта.
|
||||||
|
- Если не нужно прописывать такие обраничения, то не устанавливаем данный параметр и простовводим `-v /mnt/nginx:/usr/share/nginx/html`
|
||||||
|
- Каталог автоматически создасться, если отсутствует.
|
||||||
|
|
||||||
|
!!!warning "Смотрите оф документацию по настройке NGINX"
|
||||||
|
Это пример использования команд docker.
|
||||||
|
|
||||||
|
Читайте настройку.
|
||||||
|
|
||||||
|
### Фоновый запуск
|
||||||
|
|
||||||
|
Контейнер уже готов для постоянного использования. Попробуем запустить в демоне.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -p 80:80 -v /mnt/nginx:/usr/share/nginx/html:ro -d nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
- `-d` - Процесс будет запущен в фоне.
|
||||||
|
|
||||||
|
## Просмотр рабочих контейнеров
|
||||||
|
|
||||||
|
Да бы проверить, какие контейнеры работают на данный момент, прописываем данную команду:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
**📌 Документ в разработке.** Следующие разделы в работе:
|
||||||
|
|
||||||
|
- Управление контейнерами (`exec`, `logs`, `ps`, `stop`, `rm`)
|
||||||
|
- Работа с томами (Volumes)
|
||||||
|
- Сети Docker
|
||||||
92
docs/docs/docker/install.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
# Установка Docker
|
||||||
|
|
||||||
|
## С помощью готового скрипта (Быстрый способ)
|
||||||
|
```bash title="Быстрая установка"
|
||||||
|
curl -fsSL https://get.docker.com/ | sh
|
||||||
|
```
|
||||||
|
|
||||||
|
??? "Описание аргументов curl"
|
||||||
|
- `-f`(`--fail`) - если произойдет ошибка, `curl` молча остановится, не передавая HTML-страницу с ошибкой в `sh`.
|
||||||
|
- `-s`(`--silent`) - тихий режим. Не отображает индикатор прогресса.
|
||||||
|
- `-S`(`--show-error`) - покажет ошибки, если они возникнут.
|
||||||
|
- `-L`(`--location`) - следовать перенаправлениям (если ссылка изменилась).
|
||||||
|
|
||||||
|
!!!info "Примечание"
|
||||||
|
- Убедитель, что в системе установлен пакет `curl`
|
||||||
|
- Запускаете с повышенными правами с помощью `sudo`, если не используете **root**.
|
||||||
|
- Убедитесь, что установлен `sudo` и парава на его использование.
|
||||||
|
|
||||||
|
!!!quote "Не большое замечание"
|
||||||
|
Есть 2 варианта, как установить docker:
|
||||||
|
|
||||||
|
1. Через пакетный менеджер с добавлением официального репозитория.
|
||||||
|
2. C помощью готового скрипта.
|
||||||
|
|
||||||
|
Здеcь показан второй вариант установки. Он более быстрый и я его использую на постоянной основе.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Выдача права управления пользователю
|
||||||
|
|
||||||
|
Как только установите, права на управление Docker будут только у **root**.
|
||||||
|
|
||||||
|
```bash title="Установка прав"
|
||||||
|
sudo usermod -aG docker $USER
|
||||||
|
```
|
||||||
|
|
||||||
|
- Замените **$USER**, если выдаете другому пользователю.
|
||||||
|
- Перезайдите, или используйте данную команду для немедленного применения.
|
||||||
|
```bash
|
||||||
|
newgrp docker
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Проверка
|
||||||
|
Запустим простой контейнер.
|
||||||
|
```bash
|
||||||
|
docker run hello-world
|
||||||
|
```
|
||||||
|
|
||||||
|
??? "Результат команды"
|
||||||
|
```
|
||||||
|
Unable to find image 'hello-world:latest' locally
|
||||||
|
latest: Pulling from library/hello-world
|
||||||
|
17eec7bbc9d7: Pull complete
|
||||||
|
Digest: sha256:d4aaab6242e0cace87e2ec17a2ed3d779d18fbfd03042ea58f2995626396a274
|
||||||
|
Status: Downloaded newer image for hello-world:latest
|
||||||
|
|
||||||
|
Hello from Docker!
|
||||||
|
This message shows that your installation appears to be working correctly.
|
||||||
|
|
||||||
|
To generate this message, Docker took the following steps:
|
||||||
|
1. The Docker client contacted the Docker daemon.
|
||||||
|
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
|
||||||
|
(amd64)
|
||||||
|
3. The Docker daemon created a new container from that image which runs the
|
||||||
|
executable that produces the output you are currently reading.
|
||||||
|
4. The Docker daemon streamed that output to the Docker client, which sent it
|
||||||
|
to your terminal.
|
||||||
|
|
||||||
|
To try something more ambitious, you can run an Ubuntu container with:
|
||||||
|
$ docker run -it ubuntu bash
|
||||||
|
|
||||||
|
Share images, automate workflows, and more with a free Docker ID:
|
||||||
|
https://hub.docker.com/
|
||||||
|
|
||||||
|
For more examples and ideas, visit:
|
||||||
|
https://docs.docker.com/get-started/
|
||||||
|
```
|
||||||
|
|
||||||
|
**Описание к выводу**:
|
||||||
|
|
||||||
|
- Первая строка показывает, что образ `hello-world` не найден локально.
|
||||||
|
- Docker автоматически обращается к реестру (Docker Hub) и находит образ `library/hello-world`.
|
||||||
|
- Затем он загружает образ, проверяет его контрольную сумму и сразу запускает контейнер.
|
||||||
|
|
||||||
|
---
|
||||||
|
## Ссылки
|
||||||
|
|
||||||
|
- [Официальный Сайт **Docker**](https://docker.com)
|
||||||
|
- [Официальный документации по установке **Docker**](https://docs.docker.com/engine/install/) - на английском
|
||||||
|
|
||||||
33
docs/docs/linux/base-commands.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
## Оглавление
|
||||||
|
|
||||||
|
Не большая шпаргалка для использования консоли Linux.
|
||||||
|
|
||||||
|
Список комманд будет пополняться.
|
||||||
|
|
||||||
|
!!! info "Не забудьте"
|
||||||
|
Команда **man** выведет информацию о нужной вам команде.
|
||||||
|
```command
|
||||||
|
$ man <команда>
|
||||||
|
```
|
||||||
|
|
||||||
|
Если данной комманды нет, его можно установить пакетом из репоитория вашего дистрибутива.
|
||||||
|
|
||||||
|
## Уравление файлами и изменение активного каталога
|
||||||
|
|
||||||
|
| Команда | Описание | Базовые аргументы | Пример |
|
||||||
|
| :-------: | -------- | ----------------- | ------: |
|
||||||
|
| [`ls`](../command-ls/) | Просмотр элементов в каталоге | `-l` Вывод элементов подробным списком<br>`-a` Вывести скрытые элементы | `ls -la /` |
|
||||||
|
| `mv` | Перенести или перемновать каталог или файл | `-f` Принудительный перенос файлов (полезно для слияния каталогов) | `mv file.txt file.md` |
|
||||||
|
| `rm` | Удаление каталога или файла | `-r` Рекурсивное удаление. Обязательно для каталогов. | `rm file.txt` |
|
||||||
|
| `cp` | Копирование каталогов и файлов | `-r` Рекурсивное копирование. Обязательно для каталогов. | `cp file.txt /home/user/file.txt` |
|
||||||
|
| `ln` | Создание ссылки до файла или каталога | `-s` Создание символических ссылкок. | `ln file.txt /home/user/file.txt` |
|
||||||
|
| `mkdir` | Создание каталогов | `-p` Принудительное создание каталогов. Полезно, когдно нужно создать несколько вложенных каталогов. | `mkdir -p ~/1/2/3/4/5` |
|
||||||
|
| `file` | Просмотр информации о файле | | `file file.txt` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Информация о системе
|
||||||
|
| Команда | Описание | Базовые аргументы | Пример |
|
||||||
|
| :-------: | -------- | ----------------- | ------ |
|
||||||
|
| `uname` | Информация о ядре | `-a` выводит полную информацию о ядре | `uname -a` |
|
||||||
|
| `lsblk` | Просмотр подключенных носителей | | `lsblk /dev/sda` |
|
||||||
188
docs/docs/linux/command-ls.md
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
## Что делает данная команда?
|
||||||
|
|
||||||
|
Команда **LS** (List Files and Directories) - выводит список директорий и файлов.
|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
|
||||||
|
- Вывод в подробном (списком) или в краце (строчном) формате
|
||||||
|
- Сортировка по алфавиту, дате, размеру и типу
|
||||||
|
- Отображение скытых файлов
|
||||||
|
- Рекрусивый обход каталогов
|
||||||
|
|
||||||
|
## Базовые примеры
|
||||||
|
|
||||||
|
### Команда без аргументов
|
||||||
|
Попробуем сначала вывести просто `ls` без аргументов.
|
||||||
|
```console title="Просто ls"
|
||||||
|
[cher@k-des test0]$ ls
|
||||||
|
dirrectory hello-world.txt
|
||||||
|
```
|
||||||
|
Мы видим, что было выведено 2 элемента: **hello-world.txt** и **dirrectory**.
|
||||||
|
|
||||||
|
### Вывод элементов вне активном каталоге
|
||||||
|
Так же, список можно вывести и не в активном каталоге. Пропишем любой путь.
|
||||||
|
```console title="Вывод содержимого вне активного каталога"
|
||||||
|
[cher@k-des test0]$ ls /srv
|
||||||
|
ftp http nfs4
|
||||||
|
```
|
||||||
|
В каталоге, **srv**, который находиться в корневом каталоге системы `/`, видим 3 элемента: **ftp**, **http** и **nfs4**.
|
||||||
|
|
||||||
|
### Вывод всех элементов в каталоге
|
||||||
|
Теперь посмотрим, имеються ли скрытые файлы с помощью аргумента `-a`.
|
||||||
|
```console title="Вывести все что есть"
|
||||||
|
[cher@k-des test0]$ ls -a
|
||||||
|
. .. dirrectory hello-world.txt .hide-file.txt
|
||||||
|
```
|
||||||
|
!!! info "Скрытые файлы и каталоги"
|
||||||
|
Скрытые файлы и каталоги обозначаються точкой перед названием.
|
||||||
|
|
||||||
|
Пример: `.FileName.md`
|
||||||
|
|
||||||
|
Мы видим, что в нашем каталоге имееться скрытый файл **.hide-file.txt**. Но вместе с этим мы получили еще 2 элемента: `.` и `..`. Что они обозначают?
|
||||||
|
|
||||||
|
1. `.` обозначает наш активный каталог.
|
||||||
|
2. `..` ссылкаеться на предыдущий каталог.
|
||||||
|
|
||||||
|
Прямо сейчас, они нам не нужны. Можно такие элементы не выводить, и аргумент `-A` нам поможет.
|
||||||
|
```console title="Вывести все скрытые файлы и каталоги"
|
||||||
|
[cher@k-des test0]$ ls -A
|
||||||
|
dirrectory hello-world.txt .hide-file.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Вывод подробного, строчного списка
|
||||||
|
Теперь попробуем вывести списком. Для этого нам понадобиться аргумент `-l`. Попробуем ввести с дополнительным аргументом `-A`.
|
||||||
|
```console title="Подробный список"
|
||||||
|
[cher@k-des test0]$ ls -lA
|
||||||
|
итого 12
|
||||||
|
drwxr-xr-x 2 cher cher 4096 янв 3 20:03 dirrectory
|
||||||
|
-rw-r--r-- 1 cher cher 16 янв 3 19:35 hello-world.txt
|
||||||
|
-rw-r--r-- 1 cher cher 10 янв 3 19:38 .hide-file.txt
|
||||||
|
```
|
||||||
|
Здесь нужно остановиться и разобраться, что здесь написано.
|
||||||
|
|
||||||
|
| Параметр | Описание |
|
||||||
|
| -------- | -------- |
|
||||||
|
| **итого 12** | Обозначаеться общий размер всех файлов в каталоге в килобайтах. Но считает не размерами файлов, а блоками. |
|
||||||
|
| **-rw-r--r--** | Права на файл или каталог. *Данная тема очень обширная и ее следует рассматривать отдельно*. <br> Мы можем увидеть, что у каталога в начале прав вместо `-` установлена `d`. Это обозначение каталога. <br> *Данная тема очень обширная и ее следует рассматривать отдельно*.|
|
||||||
|
| Первый параметр **cher** | Имя пользователя, который владеет каталогом или файлом. <br> Данный владелец присвоился от создателя. |
|
||||||
|
| Второй параметр **cher** | Группа, которая владеет каталога или файла. <br> Данная группа присвоилась от создателя. |
|
||||||
|
| **4096**, **16** и **10** | Размер файла и каталога в байтах. <br> Каталоги, как и все в Linux - файл. Обычный пустой каталог весит **4096** байтов, то есть **4** КБ. |
|
||||||
|
| **Янв 3 19:38** | Дата и время создания или измения каталога. |
|
||||||
|
|
||||||
|
### Завершение базовой части
|
||||||
|
Мы прошлись по базовым аргументам, которые должны знать уверенные пользователи GNU/Linux.
|
||||||
|
!!! info "Не большая рекомендация"
|
||||||
|
Попробуйте на своей машине с GNU/Linux попрактиковаться.
|
||||||
|
|
||||||
|
## Расширенные примеры
|
||||||
|
|
||||||
|
Посмотрим другие параметры.
|
||||||
|
|
||||||
|
### Перевернуть список
|
||||||
|
Попробуем перевернуть список, используя аргумент `-r` `--reverse`.
|
||||||
|
```console title="Вверх ногами"
|
||||||
|
[cher@k-des test0]$ ls -lr
|
||||||
|
итого 8
|
||||||
|
-rw-r--r-- 1 cher cher 16 янв 3 19:35 hello-world.txt
|
||||||
|
drwxr-xr-x 2 cher cher 4096 янв 3 20:03 dirrectory
|
||||||
|
```
|
||||||
|
|
||||||
|
### Сортировать по размеру
|
||||||
|
Теперь посмотрим, какие файлы самые большие, использовав аргумент `-S`.
|
||||||
|
```console title="Сортировка по размеру"
|
||||||
|
[cher@k-des test0]$ ls -lS
|
||||||
|
итого 8
|
||||||
|
drwxr-xr-x 2 cher cher 4096 янв 3 20:03 dirrectory
|
||||||
|
-rw-r--r-- 1 cher cher 16 янв 3 19:35 hello-world.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
Ничего не изменилось. Да же, если выведем и скрытые файлы, то ничего не измениться. Потому что обычная и по размеру сортировка совпадает. Попробуем тогда вывести с другого каталога.
|
||||||
|
|
||||||
|
Возьмем для примера каталог `/etc/ssh`, где присутствют файлы конфигурации ssh.
|
||||||
|
```console title="Сортировка по размеру №2"
|
||||||
|
[cher@k-des test0]$ ls -l /etc/ssh
|
||||||
|
итого 608
|
||||||
|
-rw-r--r-- 1 root root 581349 окт 25 11:36 moduli
|
||||||
|
-rw-r--r-- 1 root root 1558 дек 4 02:47 ssh_config
|
||||||
|
drwxr-xr-x 2 root root 4096 дек 7 15:46 ssh_config.d
|
||||||
|
-rw-r--r-- 1 root root 3528 ноя 30 01:22 sshd_config
|
||||||
|
drwxr-xr-x 2 root root 4096 ноя 17 19:57 sshd_config.d
|
||||||
|
-rw------- 1 root root 505 окт 2 02:26 ssh_host_ecdsa_key
|
||||||
|
-rw-r--r-- 1 root root 172 окт 2 02:26 ssh_host_ecdsa_key.pub
|
||||||
|
-rw------- 1 root root 399 окт 2 02:26 ssh_host_ed25519_key
|
||||||
|
-rw-r--r-- 1 root root 92 окт 2 02:26 ssh_host_ed25519_key.pub
|
||||||
|
-rw------- 1 root root 2590 окт 2 02:26 ssh_host_rsa_key
|
||||||
|
-rw-r--r-- 1 root root 564 окт 2 02:26 ssh_host_rsa_key.pub
|
||||||
|
[cher@k-des test0]$ ls -lS /etc/ssh
|
||||||
|
итого 608
|
||||||
|
-rw-r--r-- 1 root root 581349 окт 25 11:36 moduli
|
||||||
|
drwxr-xr-x 2 root root 4096 дек 7 15:46 ssh_config.d
|
||||||
|
drwxr-xr-x 2 root root 4096 ноя 17 19:57 sshd_config.d
|
||||||
|
-rw-r--r-- 1 root root 3528 ноя 30 01:22 sshd_config
|
||||||
|
-rw------- 1 root root 2590 окт 2 02:26 ssh_host_rsa_key
|
||||||
|
-rw-r--r-- 1 root root 1558 дек 4 02:47 ssh_config
|
||||||
|
-rw-r--r-- 1 root root 564 окт 2 02:26 ssh_host_rsa_key.pub
|
||||||
|
-rw------- 1 root root 505 окт 2 02:26 ssh_host_ecdsa_key
|
||||||
|
-rw------- 1 root root 399 окт 2 02:26 ssh_host_ed25519_key
|
||||||
|
-rw-r--r-- 1 root root 172 окт 2 02:26 ssh_host_ecdsa_key.pub
|
||||||
|
-rw-r--r-- 1 root root 92 окт 2 02:26 ssh_host_ed25519_key.pub
|
||||||
|
```
|
||||||
|
Здесь уже достаточно хорошо видно различие между обычной сортировки и сортировки по размеру.
|
||||||
|
|
||||||
|
Обратная сортировка осуществляеться таким образом: `ls -lSr`.
|
||||||
|
|
||||||
|
### Рекурсивый просмотр каталогов
|
||||||
|
Попробуем вывести сразу список в активном каталоге и тех, которые находяться в нем. Добавим аргумент `-R` к `-l`.
|
||||||
|
```console title="Вевести ВСЕ!"
|
||||||
|
[cher@k-des test0]$ ls -lR
|
||||||
|
.:
|
||||||
|
итого 8
|
||||||
|
drwxr-xr-x 3 cher cher 4096 янв 3 21:52 dirrectory
|
||||||
|
-rw-r--r-- 1 cher cher 16 янв 3 19:35 hello-world.txt
|
||||||
|
|
||||||
|
./dirrectory:
|
||||||
|
итого 8
|
||||||
|
drwxr-xr-x 2 cher cher 4096 янв 3 21:53 dirrectory0
|
||||||
|
-rw-r--r-- 1 cher cher 5 янв 3 21:49 gift.txt
|
||||||
|
|
||||||
|
./dirrectory/dirrectory0:
|
||||||
|
итого 4
|
||||||
|
-rw-r--r-- 1 cher cher 10 янв 3 21:53 trap.txt
|
||||||
|
```
|
||||||
|
Теперь мы сразу увидели что находиться в каталогах **./dirrectory** и **./dirrectory/dirrectory0**.
|
||||||
|
|
||||||
|
### Сотрировка по времени
|
||||||
|
Аргумент `-t` или `--time` поможет сортировать по времени.
|
||||||
|
```console title="Временной калаж"
|
||||||
|
[cher@k-des test0]$ ls -ltA
|
||||||
|
итого 12
|
||||||
|
drwxr-xr-x 3 cher cher 4096 янв 3 21:52 dirrectory
|
||||||
|
-rw-r--r-- 1 cher cher 10 янв 3 19:38 .hide-file.txt
|
||||||
|
-rw-r--r-- 1 cher cher 16 янв 3 19:35 hello-world.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Вывод элементов по строчно без дополнительной информации
|
||||||
|
Аргумент `-1` работает также, как и `-l`, но без лишней информации, только название элементов.
|
||||||
|
```console title="Строчный список имен"
|
||||||
|
[cher@k-des test0]$ ls -1A
|
||||||
|
dirrectory
|
||||||
|
hello-world.txt
|
||||||
|
.hide-file.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Аргументы
|
||||||
|
|
||||||
|
| Аргумент | Описание |
|
||||||
|
| :--------: | -------- |
|
||||||
|
| `-l` | Выводит подробный список. |
|
||||||
|
| `-a`, `--all`| Выводит дополнительно скрытые файлы и каталоги, начинающиеся с точки. |
|
||||||
|
| `-A` `--almost-all` | То же, что и `-a`, `-all`, но без основного каталога `.` и каталога выше `..`.|
|
||||||
|
| `-o` | То же, что и `-l`, но без групп. |
|
||||||
|
| `-g` | То же, что и `-l`, но без владельцев. |
|
||||||
|
| `--full-time` | Выведет время в полном варианте. <br> Будет использоваться формат **full-iso**. |
|
||||||
|
| `-S` | Сортировка элементов по размеру. |
|
||||||
|
| `-s` | Отобразить блочно размер файлов. |
|
||||||
|
| `-r` | Перевернуть список. |
|
||||||
|
| `-R` | Рекурсивный список каталогов и файлов. <br> Отобразит содержимое основного каталого и и тех, которые присутствуют в нем. |
|
||||||
|
| `-1` | Работает так же, как и `-l`, но выводит только название файлов и каталогов. |
|
||||||
|
| `-t`, `--time` | Сортировка по времени |
|
||||||
82
docs/docs/linux/command-ls.md.bk
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
## Что делает данная команда?
|
||||||
|
|
||||||
|
Команда **LS** (List Files and Directories) - выводит список директорий и файлов в активном каталоге.
|
||||||
|
|
||||||
|
## Что она может делать?
|
||||||
|
|
||||||
|
- Выводить как списоком, то есть подробно, так и в строку.
|
||||||
|
- Сортировать вывод по алфавиту, дате и типу.
|
||||||
|
|
||||||
|
## Примеры
|
||||||
|
|
||||||
|
Попробуем сначала вывести просто `ls` без аргументов:
|
||||||
|
```bash
|
||||||
|
[cher@k-des test0]$
|
||||||
|
ls
|
||||||
|
dirrectory hello-world.txt
|
||||||
|
```
|
||||||
|
Мы видим, что было выведено 2 элемента: `hello-world.txt` и `dirrectory`.
|
||||||
|
|
||||||
|
Теперь посмотрим, имеються ли скрытые файлы:
|
||||||
|
```bash
|
||||||
|
[cher@k-des test0]$
|
||||||
|
ls -a
|
||||||
|
. .. dirrectory hello-world.txt .hide-file.txt
|
||||||
|
```
|
||||||
|
> Да бы скрыть файл или каталог, его название должно иметь в начле точку `.`.
|
||||||
|
|
||||||
|
Мы видим, что в нашем каталоге имееться скрыты файл `.hide-file.txt`. Но вместе с этим мы получили еще 2 элемента: `.` и `..`. Что они обозначают?
|
||||||
|
|
||||||
|
- `.` обозначает наш активный каталог.
|
||||||
|
- `..` ссылкаеться на предыдущий каталог.
|
||||||
|
|
||||||
|
Они нам особо не нужны. Можно их не выводить. Аргумент `-A` не выводит данные обозначения:
|
||||||
|
```bash
|
||||||
|
[cher@k-des test0]$
|
||||||
|
ls -A
|
||||||
|
dirrectory hello-world.txt .hide-file.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
Теперь попробуем вывести списком. Для этого нам понадобиться аргумент `-l`. Попробуем снова посмотрет с дополнительны аргументом `-A`:
|
||||||
|
```bash
|
||||||
|
[cher@k-des test0]$
|
||||||
|
ls -lA
|
||||||
|
итого 12
|
||||||
|
drwxr-xr-x 2 cher cher 4096 янв 3 20:03 dirrectory
|
||||||
|
-rw-r--r-- 1 cher cher 16 янв 3 19:35 hello-world.txt
|
||||||
|
-rw-r--r-- 1 cher cher 10 янв 3 19:38 .hide-file.txt
|
||||||
|
```
|
||||||
|
Здесь нужно остановиться и разобраться, что здесь написано.
|
||||||
|
|
||||||
|
- **итого 12** - Так обозначаеться общий размер всех файлов в каталоге в килобайтах. Но считает не размерами файлов, а блоками.
|
||||||
|
- **-rw-r--r--** - Права на файл или каталог. *Данная тема очень обширная и ее следует рассматривать отдельно*.
|
||||||
|
- Мы можем увидеть, что у каталога в начале прав вместо `-` установлена `d`. Это обозначение каталога.
|
||||||
|
- **Первый столбец с обозначением cher** - Имя пользователя, который владеет каталогом или файлом.
|
||||||
|
- **Второй столбец с обозначением cher** - Группа, которая владеет каталога или файла.
|
||||||
|
- Почему имя пользователя и группа одинакова? При создании какого либо элемета, владельцем становиться создатель, а так же, присваиваеться его группа.
|
||||||
|
- **4096**, **16** и **10** - Размер файла и каталога в байтах.
|
||||||
|
> Каталоги, как и все в Linux - файл. Обычный пустой каталог весит **4096** байтов, то есть **4** КБ.
|
||||||
|
- **Янв 3 19:38** - Дата и время создания или измения каталога.
|
||||||
|
|
||||||
|
| Параметр | Описание |
|
||||||
|
| -------- | -------- |
|
||||||
|
| **итого 12** | Обозначаеться общий размер всех файлов в каталоге в килобайтах. Но считает не размерами файлов, а блоками. |
|
||||||
|
| **-rw-r--r--** | Права на файл или каталог. *Данная тема очень обширная и ее следует рассматривать отдельно*. <br> Мы можем увидеть, что у каталога в начале прав вместо `-` установлена `d`. Это обозначение каталога. |
|
||||||
|
| Первый параметр **cher** | Имя пользователя, который владеет каталогом или файлом. |
|
||||||
|
| Второй параметр **cher** | Группа, которая владеет каталога или файла. |
|
||||||
|
| **4096**, **16** и **10** | Размер файла и каталога в байтах. <br> Каталоги, как и все в Linux - файл. Обычный пустой каталог весит **4096** байтов, то есть **4** КБ. |
|
||||||
|
| **Янв 3 19:38** | Дата и время создания или измения каталога. |
|
||||||
|
|
||||||
|
Это базовые аргументы, которые должны знать пользователи GNU/Linux. Теперь посмотрим и другие парамерты.
|
||||||
|
|
||||||
|
## Аргументы
|
||||||
|
|
||||||
|
| Аргумент | Описание |
|
||||||
|
| -------- | -------- |
|
||||||
|
| `-l` | Выводит подробный список. |
|
||||||
|
| `-a`, `--all`| Выводит дополнительно скрытые файлы и каталоги, начинающиеся с точки. |
|
||||||
|
| `-A` `--almost-all` | Выведет все файлы в каталоге. Без активного каталога `.` и каталога выше `..`.|
|
||||||
|
| `-o` | То же, что и `-l`, но без групп. |
|
||||||
|
| `-g` | То же, что и `-l`, но без владельцев. |
|
||||||
|
| `--full-time` | Выведет время в полном варианте. Будет использоваться формат **full-iso** |
|
||||||
|
|
||||||
72
docs/docs/steam-deck/disable-read-only.md
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
## Для чего это нужно?
|
||||||
|
??? info inline end "Важное замечание"
|
||||||
|
Делайте это **на свой страх и риск**!
|
||||||
|
|
||||||
|
Valve не рекомендует изменять систему.
|
||||||
|
|
||||||
|
Изменение корневого раздела системы может понадобиться для:
|
||||||
|
|
||||||
|
- Установка пакетов из репозитория ArchLinux:
|
||||||
|
- Java (для игр, включая Minecraft)
|
||||||
|
- Сетевые инструменты диагностики
|
||||||
|
- Пользовательские драйверы и библиотеки
|
||||||
|
- И другие
|
||||||
|
- **Углубленная настройка** системы
|
||||||
|
|
||||||
|
!!! warning "Обратите внимание"
|
||||||
|
После обновления SteamOS **все изменения будут утеряны**!
|
||||||
|
|
||||||
|
## Основные команды
|
||||||
|
|
||||||
|
```console title="Отключение защиты"
|
||||||
|
# steamos-readonly disable
|
||||||
|
```
|
||||||
|
|
||||||
|
```console title="Включение защиты"
|
||||||
|
# steamos-readonly enable
|
||||||
|
```
|
||||||
|
## Пример
|
||||||
|
### Снятие защиты от изменения.
|
||||||
|
|
||||||
|
1. Откройте **Konsole**, если не открыт.
|
||||||
|
2. Введите данную комманду:
|
||||||
|
```console
|
||||||
|
$ sudo steamos-readonly disable
|
||||||
|
```
|
||||||
|
3. Подтвердите личность, если запросит, введя пароль учетной записи **deck**.
|
||||||
|
- Если отсутствует, то просто нажите **Enter**.
|
||||||
|
|
||||||
|
**Готово** ✅
|
||||||
|
|
||||||
|
### Вернуть защиту
|
||||||
|
|
||||||
|
!!! danger "Верните защиту как только закончите!"
|
||||||
|
Это защита от дурака.
|
||||||
|
|
||||||
|
**Систему можно запросто сломать!**
|
||||||
|
|
||||||
|
|
||||||
|
1. Откройте **Konsole**, если не открыт.
|
||||||
|
2. Введите данную комманду:
|
||||||
|
```console
|
||||||
|
$ sudo steamos-readonly enable
|
||||||
|
```
|
||||||
|
3. Подтвердите личность, если запросит, введя пароль учетной записи **deck**.
|
||||||
|
- Если отсутствует, то просто нажите **Enter**.
|
||||||
|
|
||||||
|
**Готово** ✅
|
||||||
|
|
||||||
|
## Пример на скриншоте
|
||||||
|
|
||||||
|
{ .gallery-item }
|
||||||
|
|
||||||
|
## Примечание
|
||||||
|
|
||||||
|
Как было упомянуто ранее, это **не безопастный вариант установки**.
|
||||||
|
|
||||||
|
Альтернативные решения:
|
||||||
|
|
||||||
|
- Установка с помощью **Flatpak** из реестра приложений **Flathub**.
|
||||||
|
- Можно установить с помощью приложение Discover или через консоль.
|
||||||
|
- Скачивать приложения с расширанием .AppImage или бинарные файли для Linux.
|
||||||
|
- Проверьте, что имеються все зависимости у бинарного файла с помощь команды `lld`.
|
||||||
3
docs/docs/steam-deck/index.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
icon: fontawesome/brands/steam
|
||||||
|
---
|
||||||
3
docs/docs/steam-deck/main.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
icon: fontawesome/brands/steam
|
||||||
|
---
|
||||||
@@ -1,4 +1,24 @@
|
|||||||
#Личный блог Kurnesay
|
# Приветствую Вас на моем сайте! :material-hand-wave:
|
||||||
|
|
||||||
|
Меня зовут **Валентин**. Так же, Вы можете знать меня по нику **Kurnesay**.
|
||||||
|
|
||||||
|
Здесь я выкладываю **посты** по разным темам и пишу **документациии**.
|
||||||
|
|
||||||
|
## Обо мне
|
||||||
|
Обычно работаю техником, но в свободное время увликаюсь *GNU/Linux* :penguin: и сетевыми технологиями :material-ip-network:.
|
||||||
|
|
||||||
|
??? info "Важное замечание"
|
||||||
|
***Я не претендую на высшие знания.***
|
||||||
|
|
||||||
|
Мне нравиться работать с техникой. Да бы не забыть, я записываю в виде документаций.
|
||||||
|
|
||||||
|
## Случайные фотографии
|
||||||
|
|
||||||
|
| Первые сервера | Rack server - **Dell PowerEdge R630** |
|
||||||
|
| :---: | :---: |
|
||||||
|
|||
|
||||||
|
| **SAS-диски**, ожидающие форматировия | |
|
||||||
|
|||
|
||||||
|
| **Steam Deck** | Вскрытый **Joy Con** |
|
||||||
|
|||
|
||||||
|
|
||||||
Приветствую Вас на моем личном сайте.
|
|
||||||
Меня зовут Валентин. Так же, я использую ник **Kurnesay**.
|
|
||||||
|
|||||||
BIN
docs/media/ali-ddr3-card.png
Normal file
|
After Width: | Height: | Size: 356 KiB |
BIN
docs/media/dns-hdd-1tb.png
Normal file
|
After Width: | Height: | Size: 200 KiB |
BIN
docs/media/docker-run-nginx-title-web-site.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
docs/media/first-servers-family.jpg
Normal file
|
After Width: | Height: | Size: 4.9 MiB |
BIN
docs/media/hub.docker.com-nginx-tags.png
Normal file
|
After Width: | Height: | Size: 273 KiB |
BIN
docs/media/image_2026-01-02_17-23-52.png
Normal file
|
After Width: | Height: | Size: 200 KiB |
BIN
docs/media/joycon-stick-replacement.jpg
Normal file
|
After Width: | Height: | Size: 3.3 MiB |
BIN
docs/media/sas-disks-on-formating.jpg
Normal file
|
After Width: | Height: | Size: 714 KiB |
BIN
docs/media/sas-disks.jpg
Normal file
|
After Width: | Height: | Size: 787 KiB |
BIN
docs/media/server-poweredger630-opened.jpg
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
BIN
docs/media/steamdeck-view.jpg
Normal file
|
After Width: | Height: | Size: 619 KiB |
BIN
docs/media/steamos-discover-main-page.png
Normal file
|
After Width: | Height: | Size: 609 KiB |
BIN
docs/media/steamos-konsole-disable-readonly-system.png
Normal file
|
After Width: | Height: | Size: 808 KiB |
BIN
docs/media/steamos-konsole-flatpak-install-quake.png
Normal file
|
After Width: | Height: | Size: 624 KiB |
@@ -1,15 +1,20 @@
|
|||||||
# Сервера
|
## Основное оборудование
|
||||||
## Основное оборудование - Dell PowerEdge R630
|
- **Тип сервера** - Rack сервер - Dell PowerEdge R630
|
||||||
- **Операционная система**: Proxmox
|
- **Операционная система**: Proxmox
|
||||||
- **Оперативная память**: 126 ГБ
|
- **Оперативная память**: 126 ГБ
|
||||||
- **Процессор**: 2 Intel Xeon E5-2680
|
- **Процессор**: 2 Intel Xeon E5-2680
|
||||||
- **Хранилище**: 8 SAS дисков по 512 ГБ
|
- **Хранилище**:
|
||||||
|
- **Диски**: 8 SAS дисков по 512 ГБ
|
||||||
- **RAID**: 10
|
- **RAID**: 10
|
||||||
## Файловая помойка
|
## Самосборочный NAS
|
||||||
- **Операционная система**: TrueNAS
|
- **Операционная система**: TrueNAS
|
||||||
- **Материнская плата**: ...
|
- **Материнская плата**: Gigabyte H55M-UD2H
|
||||||
- **Процессор**: Intel Core i7 CPU 870
|
- **Процессор**: Intel Core i7 CPU 870
|
||||||
- **Оперативная память**: 12 ГБ
|
- **Оперативная память**: 12 ГБ
|
||||||
- **Хранилище**:
|
- **Хранилище**:
|
||||||
- **1 ПУЛ**: 3 ТБ
|
- **1 ПУЛ**:
|
||||||
- **2 ПУЛ**: 4 ТБ
|
- **Объем**: 3 ТБ
|
||||||
|
- **Тип**: sprite
|
||||||
|
- **2 ПУЛ**:
|
||||||
|
- **Объем**: 4 ТБ
|
||||||
|
- **Тип**: sprite
|
||||||
|
|||||||
22
docs/services.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Публичные сервисы
|
||||||
|
|
||||||
|
## Медиа контент
|
||||||
|
!!! info "Доступ к медиа контенту ограничен "
|
||||||
|
Свяжитесь со мной, если хотите получить доступ.
|
||||||
|
|
||||||
|
- [**Jellyfin**](https://jellyfin.serti.fun){:target="_blank"} - [оф. сайт](https://jellyfin.org){:target="_blank"} - Медиа сервис для просмотра видео и аудио контента
|
||||||
|
- [**Emby**](https://emby.serti.fun){:target="_blank"} - [оф. сайт](https://emby.media){:target="_blank"} - Медиа сервис для просмотра видео и аудио контента
|
||||||
|
- [**Komga**](https://komga.serti.fun){:target="_blank"} - [оф. сайт](https://komga.org){:target="_blank"} - Медиа сервис для четения комиксов
|
||||||
|
|
||||||
|
## Менеджер игровых серверов
|
||||||
|
!!! info "Платный доступ"
|
||||||
|
Свяжитесь со мной, если захотите поднять свой игровой сервер у меня.
|
||||||
|
- [**Pterodacty**](https://pterodactyl.serti.fun){:target="_blank"} - [оф. сайт](https://pterodactyl.io/){:target="_blank"} - Удобный сервис для управления игровыми серверами
|
||||||
|
|
||||||
|
## Прочее
|
||||||
|
- [**TeamSpeak**](https://invite.teamspeak.com/serti.fun){:target="_blank"} - [оф. сайт](https://teamspeak.com){:target="_blank"} - Игровой голосовой сервер на подобии Discord
|
||||||
|
- [**Stirling PDF**](https://stirlingpdf.serti.fun){:target="_blank"} - [оф. сайт](https://www.stirling.com/){:target="_blank"} - Редактирование PDF файлов
|
||||||
|
- [**VaultWarden**](https://vaultwarden.serti.fun){:target="_blank"} - [Исходный код](https://github.com/dani-garcia/vaultwarden){:target="_blank"} - Сервис для хранение паролей, аналог BitWarden
|
||||||
|
- [**LinkWarden**](https://linkwarden.serti.fun){:target="_blank"} - [оф. сайт](https://linkwarden.app/){:target="_blank"} - Серивис для хранения ссылок в удобном формате
|
||||||
|
- [**it-tools**](https://it-tools.serti.fun){:target="_blank"} - [Исходный код](https://github.com/CorentinTh/it-tools){:target="_blank"} - Сервис с инструментами для разработчиков и администраторов
|
||||||
|
- `SoftEther` - [оф. сайт](https://www.softether.org) - VPN сервер со множеством протоколов и отдельный клиент - Публичный хаб в разработке
|
||||||
88
mkdocs.yml
@@ -1,6 +1,6 @@
|
|||||||
site_name: HomeLab Serti
|
site_name: Serti Lab
|
||||||
site_url: https://docs.serti.fun/
|
site_url: https://serti.fun/
|
||||||
site_description: Документация и блог моего HomeLab
|
site_description: Документация и блог
|
||||||
site_author: Kurnesay
|
site_author: Kurnesay
|
||||||
|
|
||||||
theme:
|
theme:
|
||||||
@@ -9,7 +9,11 @@ theme:
|
|||||||
- navigation.tabs
|
- navigation.tabs
|
||||||
- navigation.sessions
|
- navigation.sessions
|
||||||
- navigation.expand
|
- navigation.expand
|
||||||
|
- navigation.instant
|
||||||
|
- navigation.trcking
|
||||||
- toc.integrate
|
- toc.integrate
|
||||||
|
- content.code.copy
|
||||||
|
- content.code.annotate
|
||||||
palette:
|
palette:
|
||||||
# Светлая тема
|
# Светлая тема
|
||||||
- scheme: default
|
- scheme: default
|
||||||
@@ -17,38 +21,72 @@ theme:
|
|||||||
accent: deep orange
|
accent: deep orange
|
||||||
toggle:
|
toggle:
|
||||||
icon: material/weather-sunny
|
icon: material/weather-sunny
|
||||||
name: Switch to dark mode
|
name: Переключиться на темную тему
|
||||||
# Тёмная тема
|
# Тёмная тема
|
||||||
- scheme: slate
|
- scheme: slate
|
||||||
primary: teal
|
primary: teal
|
||||||
accent: deep orange
|
accent: deep orange
|
||||||
toggle:
|
toggle:
|
||||||
icon: material/weather-night
|
icon: material/weather-night
|
||||||
name: Switch to light mode
|
name: Периключить на светлую тему
|
||||||
|
|
||||||
|
plugins:
|
||||||
|
- search
|
||||||
|
- git-revision-date-localized
|
||||||
|
- glightbox
|
||||||
|
- blog
|
||||||
|
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
- Главная: index.md
|
- "Главная": index.md
|
||||||
- Блог:
|
|
||||||
- 2026:
|
|
||||||
- '01':
|
|
||||||
- "Создание блога": blog/2026/01/create-blog.md
|
|
||||||
- Документации:
|
- Документации:
|
||||||
- Proxmox:
|
- 'Docker':
|
||||||
- "Что такое Proxmox": docs/proxmox/about.md
|
'О проекте': docs/docker/about.md
|
||||||
- "Запуск и настройка": docs/proxmox/first-setup.md
|
'Установка': docs/docker/install.md
|
||||||
- Nginx Proxy Manager:
|
'Команды': docs/docker/commands.md
|
||||||
- "Что такое Nginx Proxy Manager": docs/nginx-proxy-manager/about.md
|
- 'Steam Deck':
|
||||||
- "Запуск и настройка": docs/nginx-proxy-manager/first-seup.md
|
- "Снятие Read Only с корневого раздела": docs/steam-deck/disable-read-only.md
|
||||||
- "Медиа серверы":
|
- Сервисы: services.md
|
||||||
- Jellyfin:
|
- Мои сервера: server.md
|
||||||
- "Что такое Jellyfin": docs/media-servers/jellyfin/about.md
|
- Блог:
|
||||||
- "Запуск и настройка": docs/media-servers/jellyfin/first-seup.md
|
- Привет: blog/hi.md
|
||||||
- Emby:
|
- 2026:
|
||||||
- "Что такое Emby": docs/media-servers/emby/about.md
|
- Январь:
|
||||||
- "Запуск и настройка": docs/media-servers/emby/first-seup.md
|
#- "01 Создание блога": blog/2026/create-blog.md
|
||||||
- Мой сервер: server.md
|
- "01 Дефецит комплектующих ПК": blog/2026/ai-and-me.md
|
||||||
- Обо мне: about-me.md
|
|
||||||
|
|
||||||
extra:
|
extra:
|
||||||
social:
|
social:
|
||||||
- icon: fontawesome/solid/envelope
|
- icon: fontawesome/solid/envelope
|
||||||
link: mailto:kurnesay@disroot.org
|
link: mailto:kurnesay@disroot.org
|
||||||
|
- icon: fontawesome/brands/git-alt
|
||||||
|
link: https://git.serti.fun/Kurnesay/serti-docs/src/branch/main
|
||||||
|
- icon: fontawesome/brands/telegram
|
||||||
|
link: https://t.me/Kurnesay
|
||||||
|
- icon: fontawesome/brands/discord
|
||||||
|
link: https://discordapp.com/users/226313599570804736
|
||||||
|
- icon: fontawesome/brands/steam
|
||||||
|
link: https://steamcommunity.com/id/KURNESAY/
|
||||||
|
|
||||||
|
markdown_extensions:
|
||||||
|
- admonition
|
||||||
|
- pymdownx.details
|
||||||
|
- pymdownx.superfences
|
||||||
|
- attr_list
|
||||||
|
- md_in_html
|
||||||
|
- toc:
|
||||||
|
permalink: true
|
||||||
|
- pymdownx.emoji:
|
||||||
|
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
||||||
|
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
||||||
|
- pymdownx.highlight:
|
||||||
|
anchor_linenums: true
|
||||||
|
line_spans: __span
|
||||||
|
pygments_lang_class: true
|
||||||
|
- pymdownx.inlinehilite
|
||||||
|
- pymdownx.snippets
|
||||||
|
- pymdownx.superfences:
|
||||||
|
custom_fences:
|
||||||
|
- name: mermaid
|
||||||
|
class: mermaid
|
||||||
|
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||||
|
|||||||
7
requirements.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
mkdocs>=1.6
|
||||||
|
mkdocs-material>=9.7
|
||||||
|
mkdocs-git-revision-date-localized-plugin>=1.2
|
||||||
|
mkdocs-rss-plugin>=1.7
|
||||||
|
mkdocs-glightbox
|
||||||
|
pymdown-extensions
|
||||||
|
|
||||||