add Valheim

pull/6/head
thest1tch 2 years ago
parent 1d3639d345
commit 1f5285af50

@ -0,0 +1,169 @@
# Запуск своего сервера игры Valheim
![Valheim](https://raw.githubusercontent.com/lloesche/valheim-server-docker/main/misc/Logo_valheim.png)
!!! note
Для запуска используем docker образ от [lloesche](https://github.com/lloesche). Полная информация по запуску, доступна на [Github](https://github.com/lloesche/valheim-server-docker).
Запуск сервера будем производить на Ubuntu, по ссылке выше на Github, можно найти инструкцию, как запустить на других системах.
Запустить сервер можно 2 путями: через **консоль** (базовое) или через **docker-compose**
## Требования к серверу
Без игроков сервер потребляет в среднем 3Гб RAM и 30% одного ядра CPU на процессоре Intel Xeon E5-2620 v3 (частота 2,4ГГц)
При подключении игроков, нагрузка на CPU возрастает на 15% за хаждого игрока.
| | Минимальные | Рекомендуемые |
|----------|----------|-------|
| CPU | 2 Core | 4 Core, 2.8+Ghz |
| RAM | 4 Gb | 8 Gb |
Большая тактовая частота ЦПУ лучше, чем большее количество ядер.
## Запуск через docker-compose
Я рекомендую именно этот способ
Скопируйте и вставьте следующее в консоль
```
mkdir -p $HOME/valheim-server/config $HOME/valheim-server/data
cd $HOME/valheim-server/
cat > $HOME/valheim-server/.env << EOF
SERVER_NAME=My Server
WORLD_NAME=Dedicated
SERVER_PASS=secret
SERVER_PUBLIC=true
PUID=1000
PGID=1000
UPDATE_IF_IDLE=true
UPDATE_CRON="30 5 * * *"
BEPINEX=true
EOF
```
Далее создадим сам docker-compose файл:
```
nano docker-compose.yml
```
и заполним его
```yaml
version: '3.7'
services:
valheim:
image: ghcr.io/lloesche/valheim-server:latest
container_name: valheim-server
cap_add:
- sys_nice
volumes:
- $HOME/valheim-server/config:/config
- $HOME/valheim-server/data:/opt/valheim
ports:
- "2456-2458:2456-2458/udp"
- "9001:9001/tcp"
env_file:
- $HOME/valheim-server/valheim.env
restart: always
stop_grace_period: 2m
```
Запуск через
```
docker-compose up
```
## Базовое использование (консоль)
Имя образа Docker — `ghcr.io/lloesche/valheim-server`.
Каталог монтирования конфигурации сервера `/config` в контейнере Docker.
Если у вас есть существующий мир в системе Windows, вы можете скопировать его, например:
`C:\Users\Lukas\AppData\LocalLow\IronGate\Valheim\worlds_local` в
`$HOME/valheim-server/config/worlds_local` , и запустить образ с `$HOME/valheim-server/configтомом`, смонтированным `/config` внутри контейнера.
Каталог контейнера `/opt/valheim` содержит загруженный сервер. При желании его можно смонтировать в томе, чтобы не загружать сервер при каждом новом запуске.
```
$ mkdir -p $HOME/valheim-server/config/worlds_local $HOME/valheim-server/data
# copy existing world
$ docker run -d \
--name valheim-server \
--cap-add=sys_nice \
--stop-timeout 120 \
-p 2456-2457:2456-2457/udp \
-v $HOME/valheim-server/config:/config \
-v $HOME/valheim-server/data:/opt/valheim \
-e SERVER_NAME="My Server" \
-e WORLD_NAME="Neotopia" \
-e SERVER_PASS="secret" \
ghcr.io/lloesche/valheim-server
```
!!! warning
`SERVER_PASS` должен быть не менее 5 символов. Иначе `valheim_server.x86_64` откажется запускаться!
Новый запуск займет несколько минут в зависимости от скорости вашего интернет-соединения, поскольку контейнер загрузит выделенный сервер Valheim из Steam (~ 1 ГБ).
Не забудьте изменить `WORLD_NAME`, чтобы отразить название вашего мира! Для существующих миров это имя файла в `worlds_local/` папке без `.db/.fwl` расширения.
!!! note
Если вы хотите играть с друзьями через Интернет и находитесь за NAT, убедитесь, что порты UDP 2456-2457 перенаправлены на хост-контейнер.
**Кроссплей:** чтобы включить кроссплей между разными платформами, добавьте `-crossplay` в `SERVER_ARGS`:
```
-e SERVER_ARGS="-crossplay"
```
Более подробная информация находится в разделе [Как найти свой сервер](https://github.com/lloesche/valheim-server-docker#finding-your-server) .
Информацию об игре только по локальной сети см. в разделе [Избранные сервера Steam и LAN](https://github.com/lloesche/valheim-server-docker#steam-server-favorites--lan-play).
Предоставление `CAP_SYS_NICE` контейнеру не является обязательным. Это позволяет библиотеке Steam, которую использует Valheim, увеличить количество циклов процессора. Без него вы увидите сообщение `Warning: failed to set thread priority` в журнале запуска.
### Значения переменных
Я не буду описывать значения всех переменных, используемых к образе. Я опишу лишь те. что использовал на своем сервере. По [ссылке](https://github.com/lloesche/valheim-server-docker#environment-variables) можно найти другие.
!!! note
Все имена и значения переменных чувствительны к регистру!
| Name | Default | Purpose |
|----------|----------|-------|
| `SERVER_NAME` | `My Server` | Имя сервера, отображаемое в браузере серверов |
| `WORLD_NAME` | `Dedicated` | Имя мира без `.db/.fwl` |
| `SERVER_PASS` | `secret` | Пароль для входа на сервер, минимум **5 символов!** |
| `SERVER_PUBLIC` | `true` | Отображение сервера в браузере серверов (`true`) или нет (`false`) |
| `UPDATE_CRON` | `*/15 * * * *` | [Cron расписание](https://en.wikipedia.org/wiki/Cron#Overview) для проверки обновлений (отключено, если задана пустая строка или установлен `UPDATE_INTERVAL`) |
| `UPDATE_IF_IDLE` | `true` | Запуск проверки обновлений, когда на сервере пусто (`true` или `false`) |
| `BEPINEX` | `false` | Должен быть загружен мод [BepInExPack Valheim](https://valheim.thunderstore.io/package/denikson/BepInExPack_Valheim/) (конфиг в `/config/bepinex`, плагины в `/config/bepinex/plugins`). Не использовать вместе с `VALHEIM_PLUS`. |
| `PUID` | `0` | UID для запуска valheim-сервера как |
| `PGID` | `0` | GID для запуска valheim-сервера как |
### Развертывание
Создайте файл конфигурации `/etc/sysconfig/valheim-server`
```
SERVER_NAME=My Server
SERVER_PORT=2456
WORLD_NAME=Dedicated
SERVER_PASS=secret
SERVER_PUBLIC=true
```
Затем включите контейнер Docker при загрузке системы.
```
$ sudo mkdir -p /etc/valheim /opt/valheim
$ sudo curl -o /etc/systemd/system/valheim.service https://raw.githubusercontent.com/lloesche/valheim-server-docker/main/valheim.service
$ sudo systemctl daemon-reload
$ sudo systemctl enable valheim.service
$ sudo systemctl start valheim.service
```
## Обновления
По умолчанию контейнер будет проверять наличие обновлений сервера Valheim каждые 15 минут, если в данный момент к серверу не подключены игроки. Если обновление найдено, оно загружается, и сервер перезапускается. Это расписание обновлений можно изменить с помощью `UPDATE_CRON` переменной.
В перменных выше, указана чистота проверки обновлений "30 5 * * *" - это означает, что сервер будет првоерять обновления раз в сутки, в 5:30. Чтобы было проще указывать параметры cron, я советую использовать [crontab.guru](https://crontab.guru/)
[Github](https://github.com/lloesche/valheim-server-docker){ .md-button .md-button--primary }

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

@ -26,6 +26,8 @@ nav:
- docker/nextcloud/index.md
- During Scan: docker/nextcloud/during-scan.md
- PHP imagick: docker/nextcloud/php-imagick.md
- Игровые сервера:
- Valheim: docker/games/valheim.md
- Ubuntu 22:
- HPE:
- Management Component Pack: ubuntu/hpe/hpe-mcp.md

Loading…
Cancel
Save