Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
880af1fdb1 | ||
|
|
020ace5718 | ||
|
|
62a64724b2 | ||
|
|
57a323cb73 | ||
|
|
27af521441 | ||
|
|
6fe090b89a | ||
|
|
86e3b85923 | ||
|
|
9a19077677 | ||
|
|
51dfc3b68e | ||
|
|
45bd9950dc | ||
|
|
f91b500e68 | ||
|
|
d7c5de2ff7 | ||
|
|
9f4ea59ff6 | ||
|
|
d767da9f34 | ||
|
|
7827d7dc97 | ||
|
|
51fe6c3de6 | ||
|
|
0c6ff1e473 | ||
|
|
5e291357f1 | ||
|
|
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.
|
|
||||||
|
|
||||||
Так же, может блог перейдет на другой проект.
|
|
||||||
@@ -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. Хотя се равно, после покупки б/у, нужно обновлять, а опериатвная память в серьезном дефиците, как и жеские диски.
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Создание блога
|
||||||
|
|
||||||
|
## Первый пост
|
||||||
|
Мне захотелось вести личный блог и писать документации исключительно для личных целей. Но так как кому то может быть интересно, данный блог не будет зкартым, как и мои документации.
|
||||||
|
## Почему здесь?
|
||||||
|
Мне не нравиться социальные сети как **Вконтакте**, **Twitter**(**X**), **Facebook** и прочие.
|
||||||
|
|
||||||
|
Оснавная причина в том, что пользователи не владеют так таковыми созданными постами. Они храняться на 3 серверах, где могут редактировать или удалять контент без вашего ведома.
|
||||||
|
|
||||||
|
## Как будут выкладываться посты?
|
||||||
|
Посты не ежедневные и не ежемесячные. Когда появиться интересная история, то я срадостью поделюсь.
|
||||||
|
|
||||||
|
На данный момент, будут происходить изменения в сайте как в дизайне, так и добавление информации.
|
||||||
|
|
||||||
|
## Можно ли следить за постами?
|
||||||
|
Пока нет.
|
||||||
|
|
||||||
|
Я пока изучаю MkDocs и может появиться RSS Feed.
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# Покупка Б/У дисков
|
|
||||||
|
|
||||||
*Дата: 02.01.2026*
|
|
||||||
*Теги: sas, homelab*
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1 2 3
|
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
title: Привет!
|
||||||
|
---
|
||||||
|
|
||||||
|
Здесь я делюсь своим мнением и рассказываю, что произошло.
|
||||||
|
|
||||||
|
## Почему здесь?
|
||||||
|
|
||||||
|
Мне не нравиться социальные сети.
|
||||||
|
|
||||||
|
- **Вконтакте**
|
||||||
|
- **Twitter** (**X**)
|
||||||
|
- **Facebook**
|
||||||
|
|
||||||
|
И другие.
|
||||||
|
|
||||||
|
**Основная причина** - владелец контента не владеет полностью своими постами. Они находяться на 3 серверах и с ними могут сделать все что угодно.
|
||||||
|
|
||||||
|
А так как мессенджеры начали внедрять посты, они то же попадают в данную категорию. Хотя у некоторых проблем больше, что у приведенных выше социальных сетей.
|
||||||
|
|
||||||
|
- **Telegram**
|
||||||
|
- Обещал, обещал Дуров, что не выдаст ключи, а сам на хайпе поднялся и, се равно выдал Франции.
|
||||||
|
- Никогда не будет платных подписок... Видим на лицо.
|
||||||
|
- **WhatsApp**
|
||||||
|
- Эти хранения медиа данных на телефоне для галочки.
|
||||||
|
- **Max**
|
||||||
|
- Гигант бреда. Позже напишу пост, почему так думаю.
|
||||||
|
|
||||||
|
## Обновление
|
||||||
|
|
||||||
|
Посты **не ежедневные** и **не ежемесячные**. Если появиться что то интересное, то срадостью поделюсь.
|
||||||
|
|
||||||
|
## Обратите внимание!
|
||||||
|
|
||||||
|
Мое мнение должно оставиться **в узких кругах**.
|
||||||
|
|
||||||
|
??? warning "Не большое замечание"
|
||||||
|
**Я стараюсь никого не оскорблять**.
|
||||||
|
|
||||||
|
Хотя это полностью мой блог, интернет может по разному оценить мои посты.
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -0,0 +1,127 @@
|
|||||||
|
## Инвентарь
|
||||||
|
|
||||||
|
- Операционная система: **Debian**
|
||||||
|
- Веб сервер: **Apache2**
|
||||||
|
- База данных: **MariaDB**
|
||||||
|
|
||||||
|
## Почему данный арсенал используеться?
|
||||||
|
|
||||||
|
- Операционная система используеться для удобства. Можно использовать Ubuntu, Fedora и прочие.
|
||||||
|
- С веб-сервером такая же ситуация. Можно использовать **Nginx**
|
||||||
|
- База данных почти не отличима от **MySQL**.
|
||||||
|
- Не рекомендеться использовать в продакшене **SQLite**.
|
||||||
|
|
||||||
|
> **Внимание!**
|
||||||
|
>
|
||||||
|
> Натстройка серверной части MariaDB в данной инструкции отсутствует.
|
||||||
|
|
||||||
|
## Настройка системы.
|
||||||
|
|
||||||
|
Не будем спешить и начнем с базовой настройки системы.
|
||||||
|
|
||||||
|
### Настройка прав учетной записи.
|
||||||
|
|
||||||
|
- Переключаемся на пользователя **root**.
|
||||||
|
```bash
|
||||||
|
su - #Вводим пароль от учетной записи root
|
||||||
|
```
|
||||||
|
|
||||||
|
- Устанавливаем пакет sudo, не забывая обновить репозитории и пакеты.
|
||||||
|
```bash
|
||||||
|
apt update && apt upgrade
|
||||||
|
apt install sudo
|
||||||
|
```
|
||||||
|
|
||||||
|
- Добавляем вашего пользователя в группу sudo.
|
||||||
|
```bash
|
||||||
|
usermod -aG sudo <имя пользователя>
|
||||||
|
```
|
||||||
|
|
||||||
|
- Полностью выходим из сессии и заходим заного.
|
||||||
|
|
||||||
|
### Установка пакетов.
|
||||||
|
|
||||||
|
- Установка основных пакетов для работы **Nextcloud**.
|
||||||
|
```bash
|
||||||
|
sudo apt install apache2 php php-cli php-common php-curl php-gd php-mysql php-xml php-json php-intl php-pear php-imagick php-dev php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu mariadb-client curl wget unzip
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверяем версию php. Поддерживаемые версии можно найти в [документации NextCloud](https://docs.nextcloud.com/server/latest/admin_manual/installation/system_requirements.html)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php --version
|
||||||
|
```
|
||||||
|
|
||||||
|
## Загрузка NextCloud.
|
||||||
|
|
||||||
|
- Загружаем архив сайта NextCloud по данному пути `https://download.nextcloud.com/server/releases/latest.zip`. Можно воспользоваться командой wget.
|
||||||
|
```bash
|
||||||
|
wget https://download.nextcloud.com/server/releases/latest.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
- Распаковываем **latest.zip** архив.
|
||||||
|
```bash
|
||||||
|
unzip latest.zip
|
||||||
|
```
|
||||||
|
- Должен появиться каталог nextcloud
|
||||||
|
|
||||||
|
- Переносим в каталог nextcloud в `/var/www/`
|
||||||
|
```bash
|
||||||
|
sudo mv nextcloud /var/www/
|
||||||
|
```
|
||||||
|
- Должно появиться что то подобное.
|
||||||
|
```bash
|
||||||
|
$ ls /var/www
|
||||||
|
html nextcloud
|
||||||
|
```
|
||||||
|
|
||||||
|
- Замена прав доступа к каталогу и содержимому.
|
||||||
|
```bash
|
||||||
|
sudo chown www-data:www-data -R /var/www/nextcloud
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Настройка Apache2.
|
||||||
|
|
||||||
|
- Отключение default сайта.
|
||||||
|
```
|
||||||
|
sudo a2dissite 000-default.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
- Создаем файл **nextcloud.conf** по пути /etc/apache2/sites-available с данными параметрами.
|
||||||
|
```apache2
|
||||||
|
<VirtualHost *:80>
|
||||||
|
DocumentRoot /var/www/nextcloud/
|
||||||
|
ServerName your.server.com
|
||||||
|
|
||||||
|
<Directory /var/www/nextcloud/>
|
||||||
|
Require all granted
|
||||||
|
AllowOverride All
|
||||||
|
Options FollowSymLinks MultiViews
|
||||||
|
|
||||||
|
<IfModule mod_dav.c>
|
||||||
|
Dav on
|
||||||
|
</IfModule>
|
||||||
|
</Directory>
|
||||||
|
</VirtualHost>
|
||||||
|
```
|
||||||
|
|
||||||
|
- Включение данного сайтаю
|
||||||
|
```
|
||||||
|
a2ensite nextcloud.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
- Перезапуск службы apache2.
|
||||||
|
```bash
|
||||||
|
sudo systemctl reload apache2
|
||||||
|
```
|
||||||
|
|
||||||
|
Если все получилось, то при переходе на страницу `http://<адрес сервера>` у вас откроеться первоначальная настройка NextCloud.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
!!! info "Обратите внимание"
|
||||||
|
В списке пакетов, которые были установлены с помощью пакетного менеджера apt, не была база sql, а так же плагин sqlite и прочие.
|
||||||
|
|
||||||
|
Эта инструкция нацелена на тех, кто использует отдельную и уже настроенную базу данных MariaDB или MySQL.
|
||||||
@@ -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/)
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -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/) - на английском
|
||||||
|
|
||||||
@@ -0,0 +1,120 @@
|
|||||||
|
# Запуск контейнеров
|
||||||
|
|
||||||
|
Присутствует 2 варианта запуска контейнеров:
|
||||||
|
|
||||||
|
1. Обычный, через команду `docker run`
|
||||||
|
2. С помощью файла docker-compose.yml
|
||||||
|
|
||||||
|
Обычный запуск достаточно простой, но не удобен. Мы расмотрим 2 вариант, так как он более понятный и его чаще всего используют.
|
||||||
|
|
||||||
|
## Пример файла docker-compose.yml
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
hbbs:
|
||||||
|
container_name: hbbs
|
||||||
|
image: rustdesk/rustdesk-server:latest
|
||||||
|
command: hbbs
|
||||||
|
volumes:
|
||||||
|
- /docker/rustdesk/data:/root
|
||||||
|
network_mode: host
|
||||||
|
depends_on:
|
||||||
|
- hbbr
|
||||||
|
restart: unless-stopped
|
||||||
|
hbbr:
|
||||||
|
container_name: hbbr
|
||||||
|
image: rustdesk/rustdesk-server:latest
|
||||||
|
command: hbbr
|
||||||
|
volumes:
|
||||||
|
- /docker/rustdesk/data:/root
|
||||||
|
network_mode: host
|
||||||
|
restart: unless-stopped
|
||||||
|
```
|
||||||
|
|
||||||
|
Это рабочая настройка контейнера с RustDesk Server, скопированная с моего сервера.
|
||||||
|
|
||||||
|
Пробежимся по параметрам, которые показаны выше.
|
||||||
|
|
||||||
|
| Название | Описание |
|
||||||
|
| :---: | :------- |
|
||||||
|
| **services** | Основной параметр, в который вводяться параметры контейнеров. |
|
||||||
|
| **hbbs** и **hbbr** | Название контейнеров. |
|
||||||
|
| **container_name** | Назначение основного названия контейнера. |
|
||||||
|
| **image** | Путь до образа контейнера `{ХОСТ}/{ОБРАЗ}:{ВЕРСИЯ} |
|
||||||
|
| **command** | Комманда, которые будет воспроизводиться при старе контейнера. Обычно не указываеться. |
|
||||||
|
| **volumes** | Точки монтирования каталогов `{ХОСТ}:{КОНТЕЙЕР}`. |
|
||||||
|
| **network_mode** | Тип проброса сети. |
|
||||||
|
| **depends_on** | Включение после определенного контейнера. |
|
||||||
|
| **restart** | Тип перезапуска. |
|
||||||
|
|
||||||
|
## Запуск контейнеров
|
||||||
|
|
||||||
|
Запуск достаточно простой. Нужно ввести данную команду:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
Команда запустит и выведет логи, но не переведет в фоновый режим. Следующая команда запуит в демоне:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Во время запуска, если образ не был загружен, Docker автоматически подгрузит по адресу, который был предоставлен в параметре **image**.
|
||||||
|
|
||||||
|
!!!warning "Обратите внимание"
|
||||||
|
Активный каталог должен быть там, где находиться файл **docker-compose.yml**, когда используете команду, которая начинаеться с `docker compose`.
|
||||||
|
|
||||||
|
## Проверка активных контейнеров
|
||||||
|
|
||||||
|
Да бы посмотреть какие контейнеры запущены на хосте, используеться данная комманда:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
|
```
|
||||||
|
|
||||||
|
!!!info "Пример вывода"
|
||||||
|
```
|
||||||
|
...
|
||||||
|
c737f116506f rustdesk/rustdesk-server:latest "hbbs" 3 months ago Up 2 months hbbs
|
||||||
|
ecf717a21f84 rustdesk/rustdesk-server:latest "hbbr" 3 months ago Up 2 months hbbr
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
- **CONTAINER ID** - ID контейнера.
|
||||||
|
- **c737f116506f**
|
||||||
|
- **IMAGE** - Образ, использующий контейнером.
|
||||||
|
- **rustdesk/rustdesk-server:latest**
|
||||||
|
- **COMMAND** - Комманда, работающая в контейнере.
|
||||||
|
- **"hbbs"**
|
||||||
|
- **CREATED** - Когда контейнер создан.
|
||||||
|
- **3 months ago**
|
||||||
|
- **STATUS** - Время работы контейнера.
|
||||||
|
- **Up 2 months**
|
||||||
|
- **PORTS** - Проброшенные порты с контейнера.
|
||||||
|
- Отстутвует, так как параметр `network_mode: host` передает весь трафик на хост.
|
||||||
|
- **NAME** - Имя контейнера.
|
||||||
|
- **hbbs**
|
||||||
|
|
||||||
|
## Отключение контейнера
|
||||||
|
|
||||||
|
Выключение происходит данной коммандой:
|
||||||
|
|
||||||
|
```bsah
|
||||||
|
docker compose stop
|
||||||
|
```
|
||||||
|
|
||||||
|
## Удаление данных контейнера
|
||||||
|
|
||||||
|
Это полезно во время очистки или диангостики/восстановления.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose rm
|
||||||
|
```
|
||||||
|
|
||||||
|
Docker может запросить подтверждение.
|
||||||
|
|
||||||
|
## Ссылки
|
||||||
|
|
||||||
|
- [Оф. документация Docker Compose](https://docs.docker.com/compose/) - На английском языке.
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
## Что такое Guacamole?
|
||||||
|
|
||||||
|
**Guacamole** это веб сервис от **Apache**, который дает возможность подключаться по разным протоколам к разным устройствам через веб клиент.
|
||||||
|
|
||||||
|
## Список поддерживаемых протоколов
|
||||||
|
|
||||||
|
- **RDP**
|
||||||
|
- **VNC**
|
||||||
|
- **SSH**
|
||||||
|
- **TELLNET**
|
||||||
|
|
||||||
|
|
||||||
|
|  |  |
|
||||||
|
| :---: | :---: |
|
||||||
|
| Основная страница Guacamole | Windows server 2009 через Guacamole |
|
||||||
|
|
||||||
|
|  |
|
||||||
|
| :---: |
|
||||||
|
| Терминал с MC |
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
# Установка Guacamle
|
||||||
|
|
||||||
|
!!!Info "Вариант установки"
|
||||||
|
Есть 2 варианта установки:
|
||||||
|
|
||||||
|
1. **Ручная** - Компиляция **Guacd**, установка **tomcat** с клиентом **Guacamole** и подключение к **базе данных**.
|
||||||
|
2. **Docker** контейнеры - **mysql**, **guacd**, **guacamole**.
|
||||||
|
|
||||||
|
Будет описана установка Guacamole с помощью Docker.
|
||||||
|
|
||||||
|
## Примечание
|
||||||
|
Проверьте, что у вас установлен **Docker**.
|
||||||
|
|
||||||
|
## Готовые файлы
|
||||||
|
|
||||||
|
`docker-compoae.yaml`:
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
guacamole:
|
||||||
|
image: guacamole/guacamole
|
||||||
|
container_name: guacamole
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
depends_on:
|
||||||
|
- guacd
|
||||||
|
- mysql
|
||||||
|
ports:
|
||||||
|
- "80:8080"
|
||||||
|
environment:
|
||||||
|
GUACD_HOSTNAME: guacd
|
||||||
|
MYSQL_HOSTNAME: mysql
|
||||||
|
MYSQL_DATABASE: guacamole_db
|
||||||
|
MYSQL_USER: "guacamole"
|
||||||
|
MYSQL_PASSWORD: "guacamole"
|
||||||
|
volumes:
|
||||||
|
- ./data/guacamole/data:/app/data
|
||||||
|
|
||||||
|
guacd:
|
||||||
|
image: guacamole/guacd
|
||||||
|
container_name: guacd
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
mysql:
|
||||||
|
image: mysql:8.0
|
||||||
|
container_name: mysql
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${ROOTPASS}
|
||||||
|
MYSQL_DATABASE: guacamole_db
|
||||||
|
MSQL_USER: ${GUACUSER}
|
||||||
|
MYSQL_PASSWORD: ${GUACPASS}
|
||||||
|
volumes:
|
||||||
|
- ./data/mysql/data:/var/lib/mysql
|
||||||
|
- ./data/mysql/script:/script
|
||||||
|
pma:
|
||||||
|
image: phpmyadmin
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 8080:80
|
||||||
|
environment:
|
||||||
|
PMA_HOST: mysql
|
||||||
|
```
|
||||||
|
|
||||||
|
`.env`:
|
||||||
|
```
|
||||||
|
GUACUSER=CHANGE-ME
|
||||||
|
GUACPASS=CHANGE-ME
|
||||||
|
ROOTPASS=CHANGE-ME
|
||||||
|
```
|
||||||
|
|
||||||
|
## Первая настройка
|
||||||
|
Перед запуском, нужно настроить базу данных.
|
||||||
|
|
||||||
|
Запускаем все контейнеры
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Создаем файл базы данных **initdb.sql**
|
||||||
|
```bash
|
||||||
|
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh > ./initdb.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
Файл базы данных **initdb.sql** должен появиться в активном каталоге.
|
||||||
|
|
||||||
|
Добавим самым простым способом в базу данных mysql, использую **PhpMyAdmin**.
|
||||||
|
|
||||||
|
1. Заходим на **PhpMyAdmin** и вводим логин и пароль. `{address}:8080`
|
||||||
|
2. Переходим в базу данных, которую будет использовать **Guacamole**. В наем случае это **guacamole_db**.
|
||||||
|
3. Выбираем вкладку **SQL**.
|
||||||
|
4. Открываем **initdb.sql**, копируем содержимое и вставляем в большое поле.
|
||||||
|
5. После вставки, нажимаем **Вперёд**.
|
||||||
|
|
||||||
|
|  |  |
|
||||||
|
| :---: | :---: |
|
||||||
|
| Страница авторизации | Главная страница |
|
||||||
|
|
||||||
|
|  |
|
||||||
|
| :---: |
|
||||||
|
| Вставленные данные |
|
||||||
|
|
||||||
|
|
||||||
|
## Вход на Guacamole
|
||||||
|
|
||||||
|
Переходим на сайт Guacamole и вводим логин и пароль учетной записи.
|
||||||
|
|
||||||
|
- Логин: `guacadmin`
|
||||||
|
- Пароль: `guacadmin`
|
||||||
|
|
||||||
|
|  |
|
||||||
|
| : --- : |
|
||||||
|
| Вход на Guacamole |
|
||||||
|
|
||||||
|
Если все сделали корректно, то аунтификация должна пройти успешно.
|
||||||
|
|
||||||
|
## Ссылки
|
||||||
|
|
||||||
|
- [Оф. сайт](https://guacamole.apache.org/)
|
||||||
|
- [Документация](https://guacamole.apache.org/doc/gug/) - на английском
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Добро пожаловать в доки
|
||||||
|
|
||||||
|
Это мой личный список как документаций, так и описание чего либо.
|
||||||
|
|
||||||
|
Если найдете ошибки или имееться желание что-то добавить, обращайтесь ко мне. Обратную связь найдете внизу.
|
||||||
@@ -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` |
|
||||||
@@ -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` | Сортировка по времени |
|
||||||
@@ -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** |
|
||||||
|
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
# Устранение сетевых проблем
|
||||||
|
|
||||||
|
!!! Warning "Обратите внимание"
|
||||||
|
Ошибки бывают разные. Доступ к определенному ресурсу, пропускная спостобность и так далее.
|
||||||
|
|
||||||
|
Здесь разберем самые самые частые проблемы, которые могут быть.
|
||||||
|
|
||||||
|
Так же, эта информация не для обычных пользователей, а администраторов сетей и серверов. Здесь показаны достаточно специфичные варианты устранения проблем.
|
||||||
|
|
||||||
|
Все команды, показаны здесь чаще всего используються в ОС Linux.
|
||||||
|
|
||||||
|
Посмотрим сначала достаточно простые проблемы, а после перейдем на более серьезные ситуации.
|
||||||
|
|
||||||
|
---
|
||||||
|
## Сайт не открываеться
|
||||||
|
|
||||||
|
Для начала посмотрим коды ошибок.
|
||||||
|
|
||||||
|
??? info "Комментарий автора"
|
||||||
|
Сам не запоминаю коды, так как сразу перехожу на поиск проблемы. Это происходит на мышечном памяти.
|
||||||
|
|
||||||
|
Когда управляешь самостоятельно всей инфраструктурой, можешь сразу определить причину методом исключения. Однако это не очень правильно и коды необходимо знать.
|
||||||
|
|
||||||
|
|
||||||
|
### Коды ошибок
|
||||||
|
|
||||||
|
Самые частые коды:
|
||||||
|
|
||||||
|
1. **404** — **Not Found** — ресурс не найден на сервере.
|
||||||
|
|
||||||
|
2. **403** — **Forbidden** — доступ запрещен.
|
||||||
|
- Неправильные права доступа к файлам на уровне ОС.
|
||||||
|
- Активен фильтр ограничения доступа (IP-белый список и т.п.).
|
||||||
|
|
||||||
|
3. **504** — **Gateway Timeout** — бэкенд не ответил вовремя.
|
||||||
|
- Сервер отвечает долго и может происходить на сетевом уровне или из-за нагруженности бэкенда.
|
||||||
|
|
||||||
|
4. **503** — **Service Unavailable** — бэкенд временно недоступен.
|
||||||
|
- Бэкенд не запущен или упал.
|
||||||
|
- Порт бэкенда закрыт или недоступен.
|
||||||
|
|
||||||
|
5. **502** — **Bad Gateway** — прокси получил некорректный ответ от бэкенда.
|
||||||
|
- Несовместимость версий протоколов.
|
||||||
|
- Бэкенд отдает ответ в неправильном формате.
|
||||||
|
|
||||||
|
!!! info Бэкенд
|
||||||
|
Был упомянут такой термин, как Бэкенд.
|
||||||
|
|
||||||
|
Это распространенное название конечных серверов, когда веб сервер находиться из сервером проксирования.
|
||||||
|
|
||||||
|
Коды ошибок во время диагностики:
|
||||||
|
|
||||||
|
1. **200** - **OK** - ресурс упешно получен без каких либо ошибок.
|
||||||
|
2. **301** - **Moved Permanently** - Перенаправляет на другой URI.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Примеры ситуаций
|
||||||
|
|
||||||
|
#### Сайт поднят, но не открываються на других устройствах в локальной сети
|
||||||
|
|
||||||
|
Для начала, и это самое важное, нужно определить как именно не открываеться.
|
||||||
|
|
||||||
|
- Сайт не загружаеться.
|
||||||
|
- Браузер сразу показывает ошибку, что не может достучаться до сайта.
|
||||||
|
- **Server not found** или **Не удается получить доступ к сайту**.
|
||||||
|
- Выводит статическу ошибку о ошибке.
|
||||||
|
- Сервер выведет данную ошибку ввиде HTML страницы кода, если такое веб сервер умеет.
|
||||||
|
|
||||||
|
|
||||||
|
##### Сайт не открываеться.
|
||||||
|
|
||||||
|
Для начало узнаем, открыт ли порт.
|
||||||
|
|
||||||
|
```
|
||||||
|
nc -zv <address> <port>
|
||||||
|
```
|
||||||
|
|
||||||
|
``` title="Порт открыт"
|
||||||
|
$ nc -zv 192.168.1.1 80
|
||||||
|
|
||||||
|
Connection to 192.168.1.1 80 port [tcp/http] succeeded!
|
||||||
|
```
|
||||||
|
|
||||||
|
``` title="Порт закрыт"
|
||||||
|
$ nc -zv 192.168.1.1 80
|
||||||
|
|
||||||
|
nc: connect to 100.222.6.5 port 80 (tcp) failed: Connection timed out
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! info "Рекомендация"
|
||||||
|
Используйте параметр `-w`. Данный параметр выставляет time out по секундноe
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<h1 style="text-align:center;">Команды Linux</h1>
|
||||||
|
|
||||||
|
|
||||||
|
| Команда | Значение | Комментарий |
|
||||||
|
| :--: | :--- | :--- |
|
||||||
|
| `systemctl status` | Список всех служб | |
|
||||||
|
| `systemctl` или `systemctl list-utils` | Список рабочих служб | |
|
||||||
|
| `systemctl --failed` | Службы, которые завершились с ошибкой | |
|
||||||
|
| `systemctl list-unit-files` | Оторазить список unit файлов (`.service`,`.mount`...) со статусом | |
|
||||||
|
| `systemctl status` *pid* | Отобразить статус определенной службы | |
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
## Зачем это нужно?
|
||||||
|
|
||||||
|
Пользователи, которые используют мой VPN постоянно спрашивают о разных технических проблемах. Отвечать я не устал, однако иногда оперативно не получаеться всем ответить.
|
||||||
|
|
||||||
|
Я создал комнату на моем сервере Element, да бы пользователи могли общаться, помогать и оперативно получать важную информацию о работе vpn.
|
||||||
|
|
||||||
|
## Почему Element?
|
||||||
|
|
||||||
|
Я не буду вдаваться в технические особеднности данного мессенджера. Однако четко отвечу на вопрос.
|
||||||
|
|
||||||
|
> **Element** - гибкий сервис, где достаточно удобно можно создавать комнаты и общаться с пользователями.
|
||||||
|
>
|
||||||
|
> Данный сервис не запрашивает почту или номер телефона во время регистрации и можно развернуть свой личный сервер у себя дома или на арендованном сервере. А это приводит к тому, что Element достаточно удобен и его с наименьшей вероятностью заблокируют.
|
||||||
|
|
||||||
|
|
||||||
|
## Параметры подключения
|
||||||
|
|
||||||
|
- Веб сайт, где можно общаться: [https://element.serti.fun](https://element.serti.fun)
|
||||||
|
|
||||||
|
- Адрес подключения для приложений: `https://matrix.serti.fun`
|
||||||
|
- Некоторые приложения могут запросить адрес выше, однако таких програм достаточно мало
|
||||||
|
|
||||||
|
|
||||||
|
## Приложения для телефонов
|
||||||
|
|
||||||
|
- Android
|
||||||
|
- [Google Play](https://play.google.com/store/apps/details?id=im.vector.app)
|
||||||
|
- [F-Droid](https://f-droid.org/packages/im.vector.app/)
|
||||||
|
- [IOS](https://apps.apple.com/app/vector/id1083446067)
|
||||||
|
|
||||||
|
!!! info
|
||||||
|
Рекомендуеться приложение Element Classic, так как он более стабильный для моего сервера.
|
||||||
|
|
||||||
|
Однако можно использовать любое другое приложение.
|
||||||
|
|
||||||
|
После установки, введите мой адрес до сервера, а после пройдите аунтификацию, если не делали ранее.
|
||||||
|
|
||||||
|
## Связь со мной
|
||||||
|
|
||||||
|
Как только зарегистрируетесь, напишите мне и я добавлю вас в комнату.
|
||||||
|
|
||||||
|
``` title="Мой id"
|
||||||
|
@cher:matrix.serti.fun
|
||||||
|
```
|
||||||
|
|
||||||
|
Так же, добавлять могут и другие участники.
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
# WebDAV, CalDAV, CardDAV от Yandex
|
||||||
|
|
||||||
|
## Предисловие
|
||||||
|
Когда пришлось работать с Yandex сервисами как корпоративная почта, мне не понравился веб интерфейс. Когда привык к Thunderbird или к какому то другому почтовому клиенту, веб клиенты становяться невносимо нагружены. Как и с Yandex. Они впихнули все что возможно. Тем более не нужное для корпоратвных сервисов Яндекс Алиса.
|
||||||
|
<br /> Я все же не стал привыкать к интерфейсу, и перевел на Thunderbird почту, календарь и контакты. С почтой было все просто. Трудностей с настройкой IMAP и SMTP не возникало. Однако, как только перешел на настройку синхронизации контактов и календаря, я понял, что это ужас. Самое важное то, что документация у Yandex сырая. URi WebDAV и CalDAV отсутствтует.
|
||||||
|
<br /> Однако, у меня получилось найти URi CalDAV и CardDAV.
|
||||||
|
|
||||||
|
## Аунтинфикация
|
||||||
|
Логин - почта Вашей учетной записи.
|
||||||
|
<br /> Для того что бы использовать **SMTP**, **IMAP** и **DAV** сервисы, необходимо создать **пароль для приложений** для **каждого протокола**. Данный пароль можно сделать в настройках безопастности учетной записи Yandex.
|
||||||
|
|
||||||
|
|
||||||
|
## Ссылки
|
||||||
|
### CalDAV
|
||||||
|
```
|
||||||
|
https://caldav.yandex.ru
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
$ dig caldav.yandex.ru +short
|
||||||
|
77.88.21.67
|
||||||
|
```
|
||||||
|
### CardDAV
|
||||||
|
```
|
||||||
|
https://carddav.yandex.ru
|
||||||
|
```
|
||||||
|
```
|
||||||
|
$ dig carddav.yandex.ru +short
|
||||||
|
77.88.21.67
|
||||||
|
```
|
||||||
|
|
||||||
@@ -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`.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
icon: fontawesome/brands/steam
|
||||||
|
---
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
icon: fontawesome/brands/steam
|
||||||
|
---
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
# Decky
|
||||||
|
|
||||||
|
{ align=right width="150" }
|
||||||
|
|
||||||
|
- [Оф. сайт](https://decky.xyz/)
|
||||||
|
- [GitHub](https://github.com/SteamDeckHomebrew)
|
||||||
|
|
||||||
|
## Что это?
|
||||||
|
|
||||||
|
**Decky** - менеджер плагинов для Game Mode.
|
||||||
|
|
||||||
|
{ width="400" }
|
||||||
|
|
||||||
|
!!! warning "Внимание"
|
||||||
|
Некоторые плагины могут выводить из строя Game Mode а то и саму систему.
|
||||||
|
|
||||||
|
**Лучший исход** - система просто перезагрузиться и продолжит дальше работать.
|
||||||
|
|
||||||
|
Ставьте любые плагины, особенно улчшающие производительность, **на свой страх и риск!**
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
Заходим на [оф. сайт](https://decky.xyz) и скачиваем файл с расширением **desktop**, нажав на **Download**. После запускаем скачанный файл.
|
||||||
|
|
||||||
|
??? info "Для Российского региона"
|
||||||
|
Вероятнее всего, если зайдете на [decky.xyz](https://decky.xyz), то увидите долгую загрузку. В последние годы это стало нормой - замедлять подключение к любым сайтам без какого либо повода. Да же если это безобидный сайт, где нет упоминания о политических мативах и каких либо запрещенных тем.
|
||||||
|
|
||||||
|
Но не беда! В desktop файле обычный curl, который скачивает скрипт из GitHub для установки проекта. Запустите данный скрипт используя **konsole**.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -S -s -L -O --output-dir /tmp/ --connect-timeout 60 https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/user_install_script.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
**Обратите внимание!**
|
||||||
|
|
||||||
|
Мало вероятно, но репозиторий плагинов то же может долго загружаться. Рекомендую использовать сервисы для обхода блокировок.
|
||||||
|
|
||||||
|
Учтите. Разработчики Decky и плагинов - разные.
|
||||||
|
|
||||||
|
Установщик может потребовать пароль от пользователя.
|
||||||
|
|
||||||
|
Как только установщик завершит установку, выходим из рабочего стола или запускаем **Big Picture**.
|
||||||
|
|
||||||
|
|
||||||
|
## Использование
|
||||||
|
|
||||||
|
Нажмите на кнопку **Быстрого доступа** `. . .` и Вы увидите кнопку, похожую на вилку. Это установленный Decky. Нажмите на него!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Здесь можно управлять плагинами. На скриншоте установленно достаточно много плагинов, но после установки Decky у Вас ничего не будет.
|
||||||
|
|
||||||
|
Перейдите в менеджер плагинов `кнопка с иконкой торговой лавкой`. Вы увидете достаточно длинный список плагинов с фильтром, которые можно установить.
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
Плагинов очень много. Полный список плагинов можно посмотреть на [сайте](https://plugins.deckbrew.xyz/) или на [GitHub](https://github.com/SteamDeckHomebrew/decky-plugin-database/tree/main/plugins).
|
||||||
|
|
||||||
|
|
||||||
|
## Выявленные проблемы плагинов
|
||||||
|
|
||||||
|
{ align=right width="400" }
|
||||||
|
|
||||||
|
### SteamGridDB
|
||||||
|
|
||||||
|
Достаточно популярный плагин, который добавляет поиск картинок для игр.
|
||||||
|
|
||||||
|
- Не используйте анимированные изображения, так как движок React, на котором работает Game Mode, и не только, может полностью зависнуть во время загрузки.
|
||||||
|
|
||||||
|
[GitHub проекта](https://github.com/SteamGridDB/decky-steamgriddb)
|
||||||
|
|
||||||
|
{ align=right width="400" }
|
||||||
|
|
||||||
|
### CSS Loader
|
||||||
|
|
||||||
|
Изменяет интерфейс Game Mode.
|
||||||
|
|
||||||
|
- Может поломать работу движка, от чего Game Mode может перейти в перезагрузку.
|
||||||
|
- Необходимо использовать максимум 1-2 темы, стараясь не перемешивать CSS стили.
|
||||||
|
|
||||||
|
|
||||||
|
[Оф. сайт проекта](https://deckthemes.com/)
|
||||||
|
|
||||||
|
### Decky Translator
|
||||||
|
|
||||||
|
Переводит текст с экрана.
|
||||||
|
|
||||||
|
- Плагин может начать переводить содержимое экрана, но управление останиться в игре. Из-за чего перевод от Decky Translator достаточно трудно закрыть.
|
||||||
|
- Держите Decky Translator отключенным, если Вам не обходимо переводить текст с игры.
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# Обновление GPG ключей репозиториев Pacman
|
||||||
|
|
||||||
|
|
||||||
|
## Описание
|
||||||
|
|
||||||
|
Если захотите обновить пакеты или установить, то у вас появиться ошибка с сертификатами на подобии этой:
|
||||||
|
|
||||||
|
```
|
||||||
|
glibc: signature from "GitLab CI Package Builder <ci-package-builder-1@steamos.cloud>" is unknown trust
|
||||||
|
```
|
||||||
|
|
||||||
|
Это нормальная ситуация для pacman. Исправить достаточно просто.
|
||||||
|
|
||||||
|
|
||||||
|
!!!warning "Обратите внимание"
|
||||||
|
Все команды ниже запускаються с повышенными привилегиями
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
|
||||||
|
1. Инициализируем базу ключей:
|
||||||
|
```
|
||||||
|
pacman-key --init
|
||||||
|
```
|
||||||
|
2. Далее, генерируем ключи для ArchLinux и Holo:
|
||||||
|
```
|
||||||
|
pacman-key --populate archlinux
|
||||||
|
```
|
||||||
|
```
|
||||||
|
pacman-key --populate holo
|
||||||
|
```
|
||||||
@@ -1,4 +1,10 @@
|
|||||||
#Личный блог Kurnesay
|
# Приветствую Вас на моем личном сайте! :material-hand-wave:
|
||||||
|
|
||||||
Приветствую Вас на моем личном сайте.
|
Меня зовут **Валентин**. Так же, Вы можете знать меня по нику **Kurnesay**.
|
||||||
Меня зовут Валентин. Так же, я использую ник **Kurnesay**.
|
|
||||||
|
Здесь я выкладываю **посты** по разным темам и пишу **документациии**.
|
||||||
|
|
||||||
|
## Обо мне
|
||||||
|
Обычно работаю техником, но в свободное время увликаюсь *GNU/Linux* :penguin: и сетевыми технологиями :material-ip-network:.
|
||||||
|
|
||||||
|
Мне нравиться работать с техникой. Так же, Поднимаю различные сервисы, провожу эксперименты над ОС GNU/Linux и Unix подобными системами, тем самым изучая их.
|
||||||
|
|||||||
|
After Width: | Height: | Size: 356 KiB |
|
After Width: | Height: | Size: 200 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 4.9 MiB |
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 273 KiB |
|
After Width: | Height: | Size: 200 KiB |
|
After Width: | Height: | Size: 3.3 MiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 503 KiB |
|
After Width: | Height: | Size: 518 KiB |
|
After Width: | Height: | Size: 714 KiB |
|
After Width: | Height: | Size: 787 KiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 619 KiB |
|
After Width: | Height: | Size: 192 KiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 210 KiB |
|
After Width: | Height: | Size: 817 KiB |
|
After Width: | Height: | Size: 945 KiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 609 KiB |
|
After Width: | Height: | Size: 808 KiB |
|
After Width: | Height: | Size: 624 KiB |
@@ -1,15 +1,8 @@
|
|||||||
# Сервера
|
## Основное оборудование
|
||||||
## Основное оборудование - Dell PowerEdge R630
|
- **Тип сервера** - Rack сервер - Dell PowerEdge R630
|
||||||
- **Операционная система**: Proxmox
|
- **Операционная система**: Proxmox
|
||||||
- **Оперативная память**: 126 ГБ
|
- **Оперативная память**: 126 ГБ
|
||||||
- **Процессор**: 2 Intel Xeon E5-2680
|
- **Процессор**: 2 Intel Xeon E5-2680
|
||||||
- **Хранилище**: 8 SAS дисков по 512 ГБ
|
|
||||||
- **RAID**: 10
|
|
||||||
## Файловая помойка
|
|
||||||
- **Операционная система**: TrueNAS
|
|
||||||
- **Материнская плата**: ...
|
|
||||||
- **Процессор**: Intel Core i7 CPU 870
|
|
||||||
- **Оперативная память**: 12 ГБ
|
|
||||||
- **Хранилище**:
|
- **Хранилище**:
|
||||||
- **1 ПУЛ**: 3 ТБ
|
- **Диски**: 8 SAS дисков по 512 ГБ
|
||||||
- **2 ПУЛ**: 4 ТБ
|
- **RAID**: 10
|
||||||
|
|||||||
@@ -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 сервер со множеством протоколов и отдельный клиент - Публичный хаб в разработке
|
||||||
@@ -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: Личный сайт Kurnesay
|
||||||
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,87 @@ 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:
|
- 'index': docs/index.md
|
||||||
- "Что такое Proxmox": docs/proxmox/about.md
|
- 'Linux':
|
||||||
- "Запуск и настройка": docs/proxmox/first-setup.md
|
- 'Сеть':
|
||||||
- Nginx Proxy Manager:
|
- 'Устранение проблем': docs/linux/network/troubleshooting.md
|
||||||
- "Что такое Nginx Proxy Manager": docs/nginx-proxy-manager/about.md
|
- 'Docker':
|
||||||
- "Запуск и настройка": docs/nginx-proxy-manager/first-seup.md
|
'О проекте': docs/docker/about.md
|
||||||
- "Медиа серверы":
|
'Установка': docs/docker/install.md
|
||||||
- Jellyfin:
|
#'Команды': docs/docker/commands.md
|
||||||
- "Что такое Jellyfin": docs/media-servers/jellyfin/about.md
|
'Запуск контейнеров': docs/docker/run_container.md
|
||||||
- "Запуск и настройка": docs/media-servers/jellyfin/first-seup.md
|
#- 'Apache guacamole':
|
||||||
- Emby:
|
# - 'О проекте': docs/guacamole/about.md
|
||||||
- "Что такое Emby": docs/media-servers/emby/about.md
|
# - 'Установка': docs/guacamole/install.md
|
||||||
- "Запуск и настройка": docs/media-servers/emby/first-seup.md
|
- 'NextCloud':
|
||||||
- Мой сервер: server.md
|
- 'Запуск и первоначальная настройка': docs/cloud-services/nextcloud/install.md
|
||||||
- Обо мне: about-me.md
|
- 'Steam Deck':
|
||||||
|
- "Снятие Read Only с корневого раздела": docs/steam-deck/disable-read-only.md
|
||||||
|
- "Обновление сетификатов реп Pacman": docs/steam-deck/upgrade-pgp-pacman.md
|
||||||
|
- "Decky": docs/steam-deck/plugins/decky.md
|
||||||
|
- 'Другое':
|
||||||
|
- 'CalDAV и CardDAV от Yandex': docs/other/ya-dav.md
|
||||||
|
- 'Доступ к комнате element для пользователей VPN': docs/other/element-vpn.md
|
||||||
|
- Сервисы: services.md
|
||||||
|
- Мои сервера: server.md
|
||||||
|
#- Блог:
|
||||||
|
# - Привет: blog/hi.md
|
||||||
|
# - 2026:
|
||||||
|
# - Январь:
|
||||||
|
# #- "01 Создание блога": blog/2026/create-blog.md
|
||||||
|
# - "01 Дифицит комплектующих ПК": blog/2026/ai-and-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
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
mkdocs>=1.6
|
||||||
|
mkdocs-material>=9.7
|
||||||
|
mkdocs-git-revision-date-localized-plugin>=1.2
|
||||||
|
mkdocs-rss-plugin>=1.7
|
||||||
|
mkdocs-glightbox
|
||||||
|
pymdown-extensions
|
||||||