노트북 arch linux, proxmox 입문 3편 - 서버 컴퓨터로 스타듀벨리 멀티 돌려보기 (미완)

이번엔 docker를 이용해 stardew server 이미지를 빌드하면서 겪은 일들을 정리한다.
정확히는 아래 글의 후속작같은 느낌이다.

노트북 arch linux, proxmox 입문
오늘은 안쓰는 노트북이 새로 생겼다. 그래서 이 노트북에 내가 하고 싶은대로 해보기 위해서 Arch Linux를 설치해보기로 한다. 일단 계획은 아래와 같다. 계획 1. Arch Linux 기반은 Omarchy 배포판 설치 2. 드라이버 등 호환성 체크 및 테스트 3. docker 설치 4. 목적인 Stardew Valley 서버 돌려보기 Omarchy 설치 1. 부트 디스크

우선 LXC 컨테이너부터

LXC 컨테이너는 VM을 생성하는 것에 비해서 호스트 리소스를 정말 적게 차지한다.
이 점으로 인해, 리눅스 위에서 돌릴 게 있으면 VM 동안 LXC를 사용할 수 있으면 사용하는 것이 좋다고 생각한다. 그래서 LXC 컨테이너부터 만들어본다.

  1. 왼쪽 데이터센터의 local에서 CT 템플릿을 선택하면 아래와 같은 창이 나오는데, 여기에서 우분투 템플릿을 선택한다. 이름에 무조건 ubuntu 가 들어가 있을 것이다.
  1. CT 생성 버튼을 누르고, 호스트, 비밀번호를 입력한다.
  1. 템플릿에서는 아까 받은 우분투 템플릿을 선택한다.
  1. 가상 디스크의 크기를 정의한다. 필자는 30GB로 설정했다.
  1. CPU 코어를 설정한다. 필자는 2개로 하였다.
  1. 메모리를 설정한다. 필자는 두 개 값 모두 2GB로 설정했다.
  1. 네트워크와 DNS는 기본값을 사용하되, 네트워크 칸에서 고정 IP를 설정하는 케이스가 아니면 DHCP로 두는 것을 권장한다.
  1. 생성 후 시작에 체크하고, 종결을 클릭한다. 그렇게 하면 LXC 컨테이너가 생성되고 자동으로 시작될 것이다.

Docker를 설치하자!

이번엔 스타듀벨리가 구동되고 이 화면을 보여줄 VNC를 구동하는 컨테이너를 구동하기 위한(?)
Docker를 설치해야 한다.
아래 명령어를 차례로 입력하면 된다.

  1. 혹시 모르니 기존 Docker를 제거한다. (없으면 넘긴다.)
apt remove docker docker-engine docker.io containerd runc
  1. 패키지를 업데이트한다.
apt update
  1. 필수 패키지를 설치한다.
apt install apt-transport-https ca-certificates curl software-properties-common
  1. Docker의 공식 GPG 키를 추가한다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. Docker 저장소를 추가한다.
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. 다시 패키지를 업데이트한다.

apt update
  1. 이제 Docker 패키지를 설치한다.
apt install docker-ce docker-ce-cli containerd.io

Compose 소스 가져오기

이번엔 컨테이너를 만들기 위한 소스 파일을 가져와서 본인에 맞게 커스텀하고 구동해야한다.
https://github.com/DaanSelen/stardew-multiplayer/tree/main
이 리포지토리에 있는 소스를 사용하기로 한다.

  1. 일단 아래와 같은 패키지를 설치한다.
apt install vim, git
  1. 아래와 같은 명령어를 입력해 소스들을 가져온다.
git clone https://github.com/DaanSelen/stardew-multiplayer.git
  1. 아래와 같은 명령어를 입력해 작업 폴더를 이동한다.
cd stardew-multiplayer
  1. 아래와 같은 명령어를 입력해 compose.yaml 파일을 커스텀한다.
    1. 커스텀할 때, 명령어 아래 부분에 있는 코드에서 STEAM_USERSTEAM_PASS 부분의 주석을 없애고, 본인의 스팀 아이디와 비밀번호를 넣는다. 그리고 METHOD 부분을 "STEAM"으로 바꿔준다.
vim compose.yaml

명령어

services:
  stardew:
    restart: unless-stopped
    container_name: stardew-server
    # Make sure your tar'ed and zip'ed gamefiles are present as latest.tar.gz
    # Look here for a guide: https://github.com/DaanSelen/stardew-multiplayer/blob/main/guides/packaging.md
    # Status of the server host is viewable at https://<docker-host>:3001/ you can watch fps and cpu usage.
    build:
      context: .
      dockerfile: ./Dockerfile
      args:
          METHOD: "LOCAL"
#          STEAM_USER: "<your-steam-username>"
#          STEAM_PASS: "<your-steam-password>"
    environment:
      - TZ=Europe/Amsterdam
      - CUSTOM_USER=stardew
      - PASSWORD=stardew
      - TITLE=Stardew Valley Game Server
    ports:
      - 3000:3000/tcp # Real VNC
      - 3001:3001/tcp # Web VNC
      - 24642:24642/udp # Stardew Valley Game Server
    volumes:
      - ./config:/config/modconfs
      - ./saved_games:/config/.config/StardewValley/Saves

이전 코드

services:
  stardew:
    restart: unless-stopped
    container_name: stardew-server
    # Make sure your tar'ed and zip'ed gamefiles are present as latest.tar.gz
    # Look here for a guide: https://github.com/DaanSelen/stardew-multiplayer/blob/main/guides/packaging.md
    # Status of the server host is viewable at https://<docker-host>:3001/ you can watch fps and cpu usage.
    build:
      context: .
      dockerfile: ./Dockerfile
      args:
          METHOD: "STEAM"
          STEAM_USER: "<본인의 스팀 아이디>"
          STEAM_PASS: "<본인의 스팀 비밀번호>"
    environment:
      - TZ=Europe/Amsterdam # 이 부분의 본인의 시간대에 맞게 고쳐도 된다.
      - CUSTOM_USER=stardew # 이 부분은 VNC 로그인 아이디
      - PASSWORD=stardew # 이 부분은 VNC 로그인 비밀번호
      - TITLE=Stardew Valley Game Server
    ports:
      - 3000:3000/tcp # Real VNC
      - 3001:3001/tcp # Web VNC
      - 24642:24642/udp # Stardew Valley Game Server
    volumes:
      - ./config:/config/modconfs
      - ./saved_games:/config/.config/StardewValley/Saves

고친 후의 코드

  1. 아래와 같은 명령어를 입력해 컨테이너를 구동한다.
docker compose up -d
  1. 만약 계정에 스팀 가드와 같은 2차 인증이 걸려 있으면 허용한다.
  2. 이제 인터넷의 웹 브라우저에서 주소에 이 VNC의 아이피:3001 를 입력하면 아이디와 비밀번호를 요구한다. CUSTOM_USERPASSWORD 부분의 값을 입력하면 된다.

문제 시리즈

왜 저장소를 못 가져오니

이번엔 이런 에러를 봤다.

에러 내용을 보아하니
Alpine 컨테이너 안에서 DNS가 깨져서
dl-cdn.alpinelinux.org에 접속하지 못했고 →
APKINDEX를 못 받아서 →
bash, curl이 “no such package”로 보인다.

그래서 일단 docker의 DNS를 변경해본다.
/etc/docker/daemon.json 파일을 다음과 같이 변형한다.

{
  "dns": ["8.8.8.8", "1.1.1.1"]
}

그래도 네트워크 연결에 문제가 있어서, 그냥 lxc 컨테이너를 다시 만들고, 네트워크 설정을 다시 했다.


NULL은 가만히 있어...

아직까지 해결책을 찾지 못한 문제인데, 서버를 만들고 오두막을 어떻게든 지어서 자리를 만든 후에, 서버에 아이피를 입력하고 들어가려하면...

아....?

위와 같이 클라이언트는 검은 화면에서 진행이 되지 않는다.
서버는 멈추지 않는데, 로그에는 다음과 같은 부분이 나온다.

그냥 보기엔 작을거라서 클릭해서 확대해서 보세요.

내 생각엔 SMAPI 모드와 게임 사이에서 생긴 오류같은데, 어디서 시작됐는지 알 수도 없다.
어쩌면 스타듀밸리 게임 버전, SMAPI 버전을 내려야 할 가능성도 검토하고 있다.

Read more

원격 오버클럭 셋팅 만들기 - One-KVM with Proxmox

오버클럭을 취미로 즐기는 나에게는 한 가지 고민이 있었다. 안정화시키는 데에는 시간이 너무 오래 걸리는데, 밖에서도 원격으로 오버클럭 설정을 조절하고, 안정화 프로그램을 열게할 수는 없을까? 이미 필자는 메인 컴퓨터와 다른 컴퓨터, 스마트폰 사이에 Apollo, Sunshine, Artemis, Moonlight 조합으로 원격 구성을 완료했다. 구성도는 대충 아래와 같다. 그런데 이 셋팅은 바이오스 화면과 같은

By MinePacu

노트북 arch linux, proxmox 입문 2편 - 절전 모드, 성능 설정

이번엔 노트북에 proxmox 를 설치하기로 헀다. 일단 임시로 100Mbps의 c to LAN을 사용하지만 나중에 기가비트로 업그레이드할 생각이다. 설치 후 로그인 일단 다음과 같은 화면이 나오면 root 와 설치 과정에서 입력한 비밀번호를 이용해서 로그인한다. 로그인을 완료하면 다음과 같은 화면이 나온다. 난 화면을 덮어도 계속 쓰고 싶다 이제 노트북 화면을 덮어도 화면만

By MinePacu