[Часть III] Установка панели Pterodactyl 1.X.X (настройка панели и демона)

Эта статья из подборки Pterodactyl

Zkiffy

Участник
Сообщения
547
Реакции
192
В параметры запуска:
-autoupdate -steam_dir steamcmd -steamcmd_script update.txt
В корень с названием update.txt
update.txt:
@ShutdownOnFailedCommand 1 //Установить на 0 если упд несколько серверов
@NoPromptForPassword 1
login anonymous
force_install_dir ../
app_update 740
quit
Должно быть так:



Попробуйте сделать роутинг с 127.0.0.1:3306 на 172.18.0.1:3306
Способ актуален ? Сегодня вышло обновление, сервера по прежнему приходится обновлять вручную. (в параметры запуска прописал нужные параметры и создал файлик update.txt с необходимым содержанием). Права на файл: 644
 

hirowatch

Живет ХЛмод`ом
Сообщения
2,722
Реакции
1,634
Способ актуален ? Сегодня вышло обновление, сервера по прежнему приходится обновлять вручную. (в параметры запуска прописал нужные параметры и создал файлик update.txt с необходимым содержанием)
А я в строке запуска ничего не вписывал и сервер автоматически обновился 0_0
 

smoke96

Участник
Сообщения
1,134
Реакции
175
А я в строке запуска ничего не вписывал и сервер автоматически обновился 0_0
Ну у тебя наверное рестарт сервера запланирован ночью. При рестарте панель чекает обновление и если есть оно , то перед запуском сервера обновляет его.
 

hirowatch

Живет ХЛмод`ом
Сообщения
2,722
Реакции
1,634
Ну у тебя наверное рестарт сервера запланирован ночью. При рестарте панель чекает обновление и если есть оно , то перед запуском сервера обновляет его.
Выключил вечером и утром запустил. ( но у меня все в локали для тестов запущено ) поэтому возможно.
 

infirmitive

Участник
Сообщения
93
Реакции
33
а кто-то пробовал использовать mounts? а то под каждый сервер 40 гигов как-то расточительно, можно же часть файлов и папок использовать только для чтения остальными серверами
 

ykpon

Владыка
Сообщения
675
Реакции
399
а кто-то пробовал использовать mounts? а то под каждый сервер 40 гигов как-то расточительно, можно же часть файлов и папок использовать только для чтения остальными серверами
Можно. Маунтишь директорию с файлами в контейнере и файлы, которые не хочешь дублировать, заменяешь хардлинками на оригинальные файлы в примаунченной директории.
 

infirmitive

Участник
Сообщения
93
Реакции
33
Можно. Маунтишь директорию с файлами в контейнере и файлы, которые не хочешь дублировать, заменяешь хардлинками на оригинальные файлы в примаунченной директории.
а разве можно и файлы маунтить? там по папкам пару гигов только наберется, которые можно линковать, а вот vpk файлов прилично
 

ykpon

Владыка
Сообщения
675
Реакции
399
а разве можно и файлы маунтить? там по папкам пару гигов только наберется, которые можно линковать, а вот vpk файлов прилично
Маунтишь директорию и создаешь в ней нужную структуру файлов.
 

Junkes

Участник
Сообщения
494
Реакции
242
Маунтишь директорию и создаешь в ней нужную структуру файлов.
Решил попробовать, создал отдельную папку с .vpk файлами, замаунтил её и чет не работает.

Причем мне логика маунтов неясна, они идут по пути /var/lib/docker/overlay2/CONTAINERID/merged/, а сервера у меня в /srv/daemon-data
1674844433891.png
 

ykpon

Владыка
Сообщения
675
Реакции
399
Решил попробовать, создал отдельную папку с .vpk файлами, замаунтил её и чет не работает.

Причем мне логика маунтов неясна, они идут по пути /var/lib/docker/overlay2/CONTAINERID/merged/, а сервера у меня в /srv/daemon-data
Ты маунтишь директорию с ноды в качестве директории в контейнере.
На ноде эту директорию создаешь, туда заливаешь, например, чистый образ ксго из стимцмд, маунтишь куда угодно в контейнере и внутри контейнера вместо имеющихся файлов в директории с сервером создаешь хардлинки на файлы в директории, которую ты примаунтил.
Можно сделать скрипт, который будет создавать линки, и автоматом запускать при старте контейнера, например, или при создании.
 

Junkes

Участник
Сообщения
494
Реакции
242
Ты маунтишь директорию с ноды в качестве директории в контейнере.
На ноде эту директорию создаешь, туда заливаешь, например, чистый образ ксго из стимцмд, маунтишь куда угодно в контейнере и внутри контейнера вместо имеющихся файлов в директории с сервером создаешь хардлинки на файлы в директории, которую ты примаунтил.
Можно сделать скрипт, который будет создавать линки, и автоматом запускать при старте контейнера, например, или при создании.
Хорошо, но у меня сама папка с ноды в контейнер маунтится, но в ней файлов нет, что симлинкать?
Права на папке и .vpk файлах - 777

1674900467452.png

1674900443480.png
 

ykpon

Владыка
Сообщения
675
Реакции
399
Хорошо, но у меня сама папка с ноды в контейнер маунтится, но в ней файлов нет, что симлинкать?
Права на папке и .vpk файлах - 777

У тебя нода, на которой запускаются контейнеры. Создай на ней директорию и установки туда csgo либо для начала положи только .vpk файлы.
Примонтируй эту директорию к контейнеру. В контейнере ты должен в этой директории видеть .vpk файлы, которые положил на ноде.
Теперь из директории с игрой удали все .vpk, и создай хардлинки с теми же именами на файлы в примонтированной директории.
Ну типа
PATH_TO_VPK - путь, где лежат VPK. Тот каталог, который ты примонтировал к контейнеру.
PATH_TO_CSGO - путь до каталога с сервером, где ты хочешь создать хардлинки.
Bash:
PATH_TO_VPK=/var/lib/pterodactyl/mount/csgo/
PATH_TO_CSGO=/csgo/hlmod/csgo/
for i in $(ls $PATH_TO_FILES | grep .vpk); do
  ln $PATH_TO_FILES$i $PATH_TO_CSGO$i
done
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #55
certbot certonly --standalone --post-hook "systemctl restart wings"
При первичном выпуске сертификата для Вингса, можно использовать такую команду.
Суть в том, что Сертбот после выпуска сертификата будет перезапускать Wings сам.

Если сертификат был выпущен ранее без этого параметра - не беда. Его можно дописать руками. В /etc/letsencrypt/renewal/ДОМЕН.conf дописать в секции [renewalparams] post_hook = systemctl restart wings

Получится так:
/etc/letsencrypt/renewal/amd-r7950x-1.myarena.example.ru.conf:
# renew_before_expiry = 30 days
version = 1.21.0
archive_dir = /etc/letsencrypt/archive/amd-r7950x-1.myarena.example.ru
cert = /etc/letsencrypt/live/amd-r7950x-1.myarena.example.ru/cert.pem
privkey = /etc/letsencrypt/live/amd-r7950x-1.myarena.example.ru/privkey.pem
chain = /etc/letsencrypt/live/amd-r7950x-1.myarena.example.ru/chain.pem
fullchain = /etc/letsencrypt/live/amd-r7950x-1.myarena.example.ru/fullchain.pem

# Options used in the renewal process
[renewalparams]
account = XXXXXXXXXXXXXXXXXXXXXXXX
post_hook = systemctl restart wings
authenticator = standalone
server = https://acme-v02.api.letsencrypt.org/directory
 

lifan

Участник
Сообщения
57
Реакции
19
Подскажите пожалуйста что нужно тут изменить?
network:
interface: 172.18.0.1
dns:
- 1.1.1.1
- 1.0.0.1
name: pterodactyl_nw
ispn: false
driver: bridge
network_mode: pterodactyl_nw
is_internal: false
enable_icc: true
network_mtu: 1500
interfaces:
v4:
subnet: 172.18.0.0/16
gateway: 172.18.0.1
v6:
subnet: fdba:17c8:6c94::/64
gateway: fdba:17c8:6c94::1011
Что только не пробывал все равно сервер крошиться когда я добавляю в строку запуска +ip
NET_CloseAllSockets
WARNING: NET_OpenSocket: bind: Cannot assign requested address
Couldn't allocate any server IP port, tried 1 addresses 185.133.40.36
 

БлагоЯр

Участник
Сообщения
898
Реакции
86
Подскажите пожалуйста что нужно тут изменить?
network:
interface: 172.18.0.1
dns:
- 1.1.1.1
- 1.0.0.1
name: pterodactyl_nw
ispn: false
driver: bridge
network_mode: pterodactyl_nw
is_internal: false
enable_icc: true
network_mtu: 1500
interfaces:
v4:
subnet: 172.18.0.0/16
gateway: 172.18.0.1
v6:
subnet: fdba:17c8:6c94::/64
gateway: fdba:17c8:6c94::1011
Что только не пробывал все равно сервер крошиться когда я добавляю в строку запуска +ip
NET_CloseAllSockets
WARNING: NET_OpenSocket: bind: Cannot assign requested address
Couldn't allocate any server IP port, tried 1 addresses 185.133.40.36
Чёт странный у тебя конфиг, вот мой, делал через Auto-Deploy
C-подобный:
debug: false
app_name: Pterodactyl
uuid: 303ffs0a3-ee53-4830-a3ea-8f33fffac43c
token_id: 9THpHVndvdhKaBJ
token: ZYJ6PuZsok9oBb6ps34lkjn5434u3KG4nvG0LHuvMiMy9n5t99kvY65iiA7XA
api:
  host: 0.0.0.0
  port: 8443
  ssl:
    enabled: true
    cert: /var/www/httpd-cert/www-root/CloudFlare Origin Certificate_custom_1.crt
    key: /var/www/httpd-cert/www-root/CloudFlare Origin Certificate_custom_1.key
  disable_remote_download: false
  upload_limit: 200
  trusted_proxies: []
system:
  root_directory: /srv/pter/
  log_directory: /var/log/pterodactyl
  data: /srv/pter/volumes
  archive_directory: /srv/pter/archives
  backup_directory: /srv/pter/backups
  tmp_directory: /tmp/pterodactyl
  username: pterodactyl
  timezone: Europe/Moscow
  user:
    rootless:
      enabled: false
      container_uid: 0
      container_gid: 0
    uid: 998
    gid: 997
  disk_check_interval: 150
  activity_send_interval: 60
  activity_send_count: 100
  check_permissions_on_boot: true
  enable_log_rotate: true
  websocket_log_count: 150
  sftp:
    bind_address: 0.0.0.0
    bind_port: 2022
    read_only: false
  crash_detection:
    enabled: true
    detect_clean_exit_as_crash: true
    timeout: 60
  backups:
    write_limit: 0
    compression_level: best_speed
  transfers:
    download_limit: 0
docker:
  network:
    interface: 172.18.0.1
    dns:
    - 1.1.1.1
    - 1.0.0.1
    name: pterodactyl_nw
    ispn: false
    driver: bridge
    network_mode: pterodactyl_nw
    is_internal: false
    enable_icc: true
    network_mtu: 1500
    interfaces:
      v4:
        subnet: 172.18.0.0/16
        gateway: 172.18.0.1
      v6:
        subnet: fdba:17c8:6c94::/64
        gateway: fdba:17c8:6c94::1011
  domainname: ""
  registries: {}
  tmpfs_size: 100
  container_pid_limit: 512
  installer_limits:
    memory: 1024
    cpu: 100
  overhead:
    override: false
    default_multiplier: 1.05
    multipliers: {}
  use_performant_inspect: true
  userns_mode: ""
  log_config:
    type: local
    config:
      compress: "false"
      max-file: "1"
      max-size: 5m
      mode: non-blocking
throttles:
  enabled: true
  lines: 2000
  line_reset_interval: 100
remote: https://mysite.com
remote_query:
  timeout: 30
  boot_servers_per_page: 50
allowed_mounts: []
allowed_origins: []
allow_cors_private_network: false
ignore_panel_config_updates: false

А вот так предлагается вручную
C-подобный:
debug: false
uuid: 303ffs0a3-ee53-4830-a3ea-8f33fffac43c
token_id: 9THpHVndvdhKaBJ
token: ZYJ6PuZsok9oBb6ps34lkjn5434u3KG4nvG0LHuvMiMy9n5t99kvY65iiA7XA
api:
  host: 0.0.0.0
  port: 8443
  ssl:
    enabled: true
    cert: /etc/letsencrypt/live/pter.moscow-battle.com/fullchain.pem
    key: /etc/letsencrypt/live/pter.moscow-battle.com/privkey.pem
  upload_limit: 200
system:
  data: /var/lib/pterodactyl/volumes
  sftp:
    bind_port: 2022
allowed_mounts: []
remote: 'https://mysite.com'
 
Сверху Снизу