Compare commits
4 Commits
4f3b2ad52a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 646de9a1fe | |||
| 520af29279 | |||
| 035bae4fca | |||
| bd620e77eb |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
site/
|
||||
.obsidian/
|
||||
.obsidian/
|
||||
*.pyc
|
||||
@@ -279,4 +279,82 @@ DNS-записи распространяются не мгновенно, но
|
||||
|
||||
```sh
|
||||
./run-and-backup.sh -h
|
||||
```
|
||||
```
|
||||
|
||||
## Загрузка карт
|
||||
|
||||
Карту нужно загрузить на сервер и разместить в папке `./data/`. Название папки с картой нужно будет указать в переменной `LEVEL` в файле `docker-compose.yml`. Также, почти все карты требуют включения командных блоков, это делается с помощью переменной `ENABLE_COMMAND_BLOCK`.
|
||||
|
||||
=== "Терминал"
|
||||
```sh
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
=== "docker-compose.yml"
|
||||
```yaml
|
||||
environment:
|
||||
LEVEL: "MapName"
|
||||
ENABLE_COMMAND_BLOCK: "true"
|
||||
```
|
||||
|
||||
### Загрузка ресурспаков
|
||||
|
||||
Многие карты предоставляют свои ресурспаки. Игроки, конечно, могут сами загрузить ресурспак и выбрать его в настройках, но можно настроить автоматическую загрузку при входе на сервер. Для этого ресурспак должен быть доступен для скачивания по публичной ссылке.
|
||||
|
||||
=== "Терминал"
|
||||
|
||||
```sh
|
||||
sudo mkdir -p /var/www/minecraft/packs/
|
||||
sudo mv pack.zip /var/www/minecraft/packs/
|
||||
sudo chmod -R 755 /var/www/minecraft/
|
||||
|
||||
# Настройка nginx
|
||||
sudo nano /etc/nginx/sites-available/minecraft.tishenko.dev
|
||||
sudo ln -s /etc/nginx/sites-available/minecraft.tishenko.dev /etc/nginx/sites-enabled/
|
||||
sudo certbot --nginx -d minecraft.tishenko.dev -d www.minecraft.tishenko.dev
|
||||
```
|
||||
|
||||
=== "Пример конфига Nginx"
|
||||
|
||||
В этом примере ресурспаки будут доступны для скачивания по ссылке вида `https://minecraft.tishenko.dev/packs/pack.zip`. `https` будет работать после получения [SSL сертификата](../servers/nginx.md#ssl-сертификат-с-certbot).
|
||||
|
||||
```nginx
|
||||
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name minecraft.tishenko.dev www.minecraft.tishenko.dev;
|
||||
|
||||
location = /packs {
|
||||
return 301 /packs/;
|
||||
}
|
||||
|
||||
location /packs/ {
|
||||
alias /var/www/minecraft/packs/;
|
||||
autoindex on;
|
||||
limit_conn conn_limit 2;
|
||||
limit_rate_after 1m;
|
||||
limit_rate 2560k;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Название файла ресурспака нужно будет указать в переменной `RESOURCE_PACK` в файле `docker-compose.yml`. Опционально можно указать SHA1 хэш файла ресурспака в переменной `RESOURCE_PACK_SHA1`. Можно сделать загрузку ресурспака обязательной при подключении к серверу с помощью переменной `RESOURCE_PACK_ENFORCE`.
|
||||
|
||||
=== "Терминал"
|
||||
|
||||
```sh
|
||||
# Опционально
|
||||
# sha1sum /var/www/minecraft/packs/pack.zip
|
||||
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
=== "docker-compose.yml"
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
RESOURCE_PACK: "https://.../yourpack.zip"
|
||||
RESOURCE_PACK_SHA1: "0123abcd... (40 hex)"
|
||||
RESOURCE_PACK_ENFORCE: "true"
|
||||
```
|
||||
|
||||
@@ -17,6 +17,7 @@ nc -vz smtp.gmail.com 587
|
||||
Если порты закрыты, то можно обратиться в поддержку хостинг провайдера с запросом на открытие портов.
|
||||
|
||||
??? abstract "Пример обращения в поддержку"
|
||||
|
||||
```
|
||||
Добрый день!
|
||||
|
||||
@@ -27,6 +28,11 @@ nc -vz smtp.gmail.com 587
|
||||
Спасибо!
|
||||
```
|
||||
|
||||
??? question "Если нельзя открыть исходящие на 25/tcp?"
|
||||
|
||||
Не все хостинги позволяют открывать исходящие соединения на порт 25, даже через поддержку.
|
||||
В этом случае можно использовать SMTP Relay, например, [Cloud Postbox](https://yandex.cloud/ru/services/postbox). Инструкция по его настройке приведена [ниже](#smtp-relay).
|
||||
|
||||
## Настройка DNS
|
||||
|
||||
Настройка DNS на примере домена `tishenko.dev` (почта `@tishenko.dev`). Более подробное описание всех настроек можно прочитать в документации Docker Mailserver: [[1]](https://docker-mailserver.github.io/docker-mailserver/latest/usage/#minimal-dns-setup) и [[2]](https://docker-mailserver.github.io/docker-mailserver/latest/config/best-practices/dkim_dmarc_spf/).
|
||||
@@ -369,7 +375,7 @@ sudo certbot --nginx -d mail.tishenko.dev -d www.mail.tishenko.dev
|
||||
|
||||
### Конфиг
|
||||
|
||||
Некоторые настройки Roundcube нельзя задать через переменные окружения, они задаются в файле `config.inc.php`. Например, "название продукта", оно отображается в заголовке страницы, на странице входа и в других местах. По умолчанию это `Roundcube Webmail`. Его можно изменить в `config/config.inc.php`.
|
||||
Некоторые настройки Roundcube нельзя задать через переменные окружения, они задаются в файле `config.inc.php`. Например, "название продукта", оно отображается в заголовке страницы, на странице входа и в других местах. По умолчанию это `Roundcube Webmail`. Также по умолчанию в Roundcube очень короткое время сессии, всего 10 минут, после которых нужно логиниться заново. Эти параметры можно изменить в `config/config.inc.php`.
|
||||
|
||||
=== "Терминал"
|
||||
|
||||
@@ -382,8 +388,15 @@ sudo certbot --nginx -d mail.tishenko.dev -d www.mail.tishenko.dev
|
||||
```php
|
||||
<?php
|
||||
$config['product_name'] = 'Tish\'s Mail';
|
||||
$config['session_lifetime'] = 60 * 24;
|
||||
```
|
||||
|
||||
После изменения конфига нужно перезапустить Roundcube.
|
||||
|
||||
```sh
|
||||
docker compose restart roundcube
|
||||
```
|
||||
|
||||
### Настройки аккаунта
|
||||
|
||||
Настройки, относящиеся к конкретному аккаунту, можно задать через UI. Как минимум стоит установить отображаемое имя, иначе у получателей будет отображаться только адрес электронной почты: `Настройки` -> `Профили` -> `Отображаемое имя`. В разделе с профилями также можно указать подпись для писем.
|
||||
@@ -452,3 +465,32 @@ v=BIMI1; l=https://tishenko.dev/logo.svg;
|
||||
```
|
||||
|
||||
Однако в gmail и некоторых других почтовых клиентах он всё равно не будет отображаться, так как они требуют для этого платные VMC сертификаты.
|
||||
|
||||
## SMTP Relay
|
||||
|
||||
Не всегда есть возможность открыть исходящие соединения на порт 25. Для этого можно использовать SMTP Relay. Это отдельный сервис, у которого есть свои сервера с открытыми почтовыми портами. Бонусом является то, что при использовании подобных сервисов обычно требуется меньше настроек DNS, а также письма с IP адресов таких сервисов практически не попадают в спам. [Yandex Cloud Postbox](https://yandex.cloud/ru/services/postbox) это пример подобного сервиса. Вообще говоря, он предназначен для транзакционных рассылок, то есть сообщений с подтверждением разных действий, но его можно использовать и для отправки писем с личной почты.
|
||||
|
||||
1. После регистрации, нужно создать почтовый адрес для отправки писем. При создании нужно указать домен, например, `tishenko.dev` и выбрать простой вариант настройки DKIM.
|
||||
2. Подтверждаем принадлежность домена. Для этого нужно добавить две CNAME записи в DNS. Для каждого адреса генерируются уникальные ключи, ниже пример для домена `tishenko.dev`.
|
||||
```dns
|
||||
egt9mf1fnu9td07bs857-1._domainkey IN CNAME egt9mf1fnu9td07bs857-1.dkim.pstbx.ru.
|
||||
egt9mf1fnu9td07bs857-2._domainkey IN CNAME egt9mf1fnu9td07bs857-2.dkim.pstbx.ru.
|
||||
```
|
||||
Затем нужно подождать пока записи появятся в DNS, затем запустить проверку в Cloud Postbox. Посмотреть процесс распространения записей можно с помощью сайта [DNS Checker](egt9mf1fnu9td07bs857-1._domainkey.tishenko.dev).
|
||||
3. Добавляем TXT запись для домена `tishenko.dev`.
|
||||
```dns
|
||||
v=spf1 include:_spf.yandex.net -all
|
||||
```
|
||||
|
||||
Дальше настраиваем Docker Mailserver для работы с SMTP Relay. [Документация DMS](https://docker-mailserver.github.io/docker-mailserver/latest/config/advanced/mail-forwarding/relay-hosts) по настройке SMTP Relay и [документация Yandex Cloud Postbox](https://yandex.cloud/en/docs/tutorials/serverless/postfix-integration) в помощь. В `mailserver.env` нужно добавить следующие переменные:
|
||||
|
||||
```sh
|
||||
# Отправка всей исходящей почты через Postbox
|
||||
DEFAULT_RELAY_HOST=[postbox.cloud.yandex.net]:587
|
||||
|
||||
# SMTP-учётка Postbox:
|
||||
RELAY_USER=SMTP_USERNAME
|
||||
RELAY_PASSWORD=SMTP_PASSWORD
|
||||
```
|
||||
|
||||
Для получения паролей надо создать [сервисный аккаунт](https://yandex.cloud/ru/docs/iam/operations/sa/create), назначить ему роль [`postbox.sender`](https://yandex.cloud/ru/docs/tutorials/serverless/postfix-integration#infrastructure), а затем создать API-ключ с областью действия `yc.postbox.send`. Идентификатор ключа можно использовать как `RELAY_USER`, а сам секретный ключ как `RELAY_PASSWORD`.
|
||||
6
hooks.py
Normal file
6
hooks.py
Normal file
@@ -0,0 +1,6 @@
|
||||
# https://github.com/squidfunk/mkdocs-material/discussions/4969#discussioncomment-7290363
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
def on_config(config, **kwargs):
|
||||
config.copyright = config.copyright.format(year=datetime.now().year)
|
||||
10
mkdocs.yml
10
mkdocs.yml
@@ -1,9 +1,11 @@
|
||||
site_name: Tish Knowledge Base
|
||||
site_url: https://kb.tishenko.dev
|
||||
copyright: Copyright © 2025
|
||||
copyright: Copyright © {year}
|
||||
repo_url: https://github.com/Arity-T/knowledge-base
|
||||
repo_name: Arity-T/knowledge-base
|
||||
edit_uri: edit/main/docs/
|
||||
hooks:
|
||||
- hooks.py
|
||||
theme:
|
||||
name: material
|
||||
language: ru
|
||||
@@ -12,7 +14,7 @@ theme:
|
||||
|
||||
icon:
|
||||
repo: fontawesome/brands/github
|
||||
|
||||
|
||||
features:
|
||||
- navigation.indexes
|
||||
- navigation.instant
|
||||
@@ -39,7 +41,7 @@ theme:
|
||||
extra:
|
||||
# generator: false
|
||||
social:
|
||||
- icon: fontawesome/brands/github
|
||||
- icon: fontawesome/brands/github
|
||||
link: https://github.com/Arity-T
|
||||
|
||||
markdown_extensions:
|
||||
@@ -69,4 +71,4 @@ extra_css:
|
||||
- stylesheets/extra.css
|
||||
|
||||
plugins:
|
||||
- glightbox
|
||||
- glightbox
|
||||
|
||||
Reference in New Issue
Block a user