상현에 하루하루
블로거의 하루

마인크래프트 서버만들기 (내가 서버장이다!)

( 업데이트: )

docker, docker-compose를 이용해서 마인크래프트 서버만들기를 소개합니다. docker, docker-compose가 아닌 서버에서 직접 설치하는 방식은 digitalocean에서 잘 소개되어있습니다.

https://www.digitalocean.com/community/tutorials/how-to-create-a-minecraft-server-on-ubuntu-22-04

사전지식

마인크래프트 서버는 http통신이 아닙니다. 도메인을 간단하게 만들고 싶었지만 리버스프록시를 사용할 수 없군요.

마인크래프 서버 띄우기

version: "3.8"

services:
  mc:
    image: itzg/minecraft-server
    tty: true
    stdin_open: true
    ports:
      - "25565:25565"
    environment:
      EULA: "TRUE"
    volumes:
      # attach the relative directory 'data' to the container's /data path
      - ./data:/dataCode language: PHP (php)

위 설정으로 서버를 띄우고 25565 포트로 들어가면 아주 간단하게 마인크래프트 서버에 접속할 수 있습니다.

itzg/minecraft-server 모드 설정하기

여러개의 모드 설정을해봤지만 TYPE: FORGE를 이용한 모드 설치가 제일 손쉬웠습니다.

FORGE로 하기위해서 https://console.curseforge.com/ 에 가입하고 API 키를 만들어줍니다. CurseForge에서 로그인하고 API를 받는게 아닙니다

version: "3.8"

services:
  mc:
    image: itzg/minecraft-server
    tty: true
    stdin_open: true
    ports:
      - "25565:25565"
    env_file:
      - .env
    environment:
      UID: 0
      GID: 0
      EULA: "TRUE"
      VERSION: 1.19.4
      # General options
      MEMORY: 7G
      # Server
      TYPE: FORGE
      MODE: "creative"
      # CurseForge
      CF_API_KEY: ${CF_API_KEY}
      MODS_FILE: /extras/mods.txt
    volumes:
      - ./data:/data
      - ./mods.txt:/extras/mods.txt:roCode language: PHP (php)

REF – https://github.com/itzg/docker-minecraft-server/blob/master/examples/mods-file/docker-compose.yml

🤔 모드 다운로드받는 url은 어디서 가져오지?

https://mediafilez.forgecdn.net/files/4718/584/cgm-forge-1.19.4-1.3.7.jar
https://mediafilez.forgecdn.net/files/4718/249/framework-forge-1.19.4-0.6.16.jarCode language: JavaScript (javascript)

mod.txt에 들어가는 위 주소는 어떻게 얻는가? 여기서 정말 삽질을 많이했다 😇

CurseForge에서 모드 파일을 다운받을때 브라우저 개발자 도구에서 네트워크 탭에서 다운받는 링크를 가져왔다.

위 주소를 mod.txt 파일에 추가해서 마인크래프트 서버를 다시 실행하면 모드가 적용되는 것을 볼 수 있다.