Pterodactyl 구축(찍먹)하기
Pterodactyl 이란 Docker 엔진을 활용한 게임서버 구동기 입니다. 도커 가상화를 사용하기에 거의 모든 게임 백엔드가 지원이 되고 각종 Environmet 이미지를 제공합니다 그런데 파이썬은 없어서 하나 만들어야 했음
크게 2파트로 나뉘는데
- PHP+MySql 프론트엔드와
- Wing을 사용한 도커 백엔드
두개를 배워야 합니다
1. 필요한 환경 설치
- Web 프론트엔드 : Debian 12 / aaPanel+LNMP : 2 core 4GB
- Wing 도커 백엔드 : Clear Linux* 41840 : 20 core 48 GB
1.1 Web 환경
공식문서에는 직접 하나하나 받아서 구축하라고 하지만 터미널 싫어하고 귀찮은 사람은 그냥 aaPanel을 사용합시다.
만능 aaPanel 설치 명령어
1 |
|
설치 해야되는 것들
- PHP
8.1
- MySQL
5.7.22 +
nginx
LNMP 환경이 설치가 다 되었다면 php 설정에서 다음 기능을 활성화 해야합니다
putenv
exec
proc_open
shell_exec
그리고 확장 프로그램 fileinfo
이랑 redis
설치를 해줘용
1.2 웹사이트 세팅
- pterodactyl 깃허브에서 소스코드를 다운한 다음 755권환을 주고 압축해제 해서 폴더에 넣습니다.
1 |
|
그런다음, .env.example
파일을 .env
로 rename합니다
- 이제 Composer 를 설치해야 하는데 뭐하는건지는 잘 모르겠지만 아무튼 aaPanel 기능으로 간편히 설치가 가능합니다
1 |
|
- 설치 완료 후 php로 사이트가 열리게 laravel5로 rewrite 설정을 해야합니다 안그러면 이상한 에러 뜸
1 |
|
사이트 실행 다렉토리를 /public로 변경해줍니다
1.3 APP Key 및 DB 랑 유저 생성하기
1 |
|
1 |
|
드라이버 모드는 아무거나 해도 되는데 aaPanel에서 레디스 설치하고 recommended 되어있으니 redis
로 지정해요
- 설정을 데베로 이동하기
1 |
|
이렇게 하면 성공입니다 (99%)
1.4 유저 생성
1 |
|
일단 어드민 유저를 하나 생성합니다
1.5 cron 및 서비스 등록
cron : 매 1분마다 php /www/wwwroot/panel/artisan schedule:run >> /dev/null 2>&1
실행
php쓰는 오픈소스들 특징인거 같은데 이걸 안하면 사이트가 죽습니다
주의 : 자신의 다렉토리 주소로 변경하세요
다 했으면
service : /etc/systemd/system
폴더 안에 pteroq.service
파일 생성 후 다음과 같이 작성합니다
1 |
|
작성 후 systemctl로 실행해요
1 |
|
2. 테스트
3. 백엔드 Wing 설치
찍먹테스트 돌릴 환경은 Clear* Linux 를 사용하기 때문에 다음 명령어로 도커엔진을 설치합니다 (25.1.4 업데이트: 클리어리눅스 난이도가 무슨 alpine급이라서 버리고 데비안으로 갈아탐)
1 |
|
Wings를 설치하기 위해서 먼저 디렉토리 하나를 만들어 줘야해용 그런 다음 필요한 파일을 다운해주고 사용하기 위해 알맞은 권한을 부여합니다
1 |
|
님이 만약에 로컬을 제대로 설정했다면 wings
명령어로 바로 실행이 가능해집니다
그치만 아직 멀었고 경고문이 말하듯이 config.yml
파일을 세팅해줘야 합니다. 그러니 패널에서 노드를 추가해줘서 자동으로 config 파일 생성하게 해요
생성된 설정을 그냥 복붙 해주고 난 다음 certbot으로 ssl 인증서를 받아오면 됩니다.
하지만 저는 그냥 aaPanel을 이용해서 하나 발급했습니다 (사실 내부망이라 80포트 없어서 dns challenge 해야하는데 귀찮아서)
세팅 완료 후, 서비스로 등록을 해주면 끝 이빈다
1 |
|
1 |
|
1 |
|