미니PC 홈서버 구축하기 (1) -(SER8, Ubuntu 24 세팅)

예진욱·2025년 1월 25일
post-thumbnail

1. 홈서버를 구축하게 된 이유


최근 퍼블릭 클라우드의 비용이 기하급수적으로 증가하면서,

개인 개발자들은 직접 서버를 운영하는 것이 경제적인 대안이 되고 있다.

특히, 개발자라면 개인적인 프로젝트를 실험하고 운영할 수 있는 환경이 필요하다.

요즘은 미니PC 가 대중화되면서 적은 비용, 전력과 공간만으로도 사무용 PC 혹은 홈서버를 구축할 수 있게 되었다.

그래서 미니PC 에 리눅스를 설치하고, 24시간 구동되는 홈서버로 사용하는 과정을 설명하고자 한다.






2. 준비물

미니 PC는 N100 과 같은 너무 낮은 사양 말고,

적어도 Kafka, Elasticsearch, MySQL 등을 안정적으로 구동할 수 있는 서버를 구동하고자

Ryzen 8745Hs CPU 베어본 + DDR5 5600 32GB * 2 + NVME SSD PCIE 4.0 1TB 스펙으로 구성하였다.

예산은 약 70만원 중반 정도가 소요됐다.

왜 8745HS 를 구매했는지

  • 2025.01 기준 현존하는 미니PC 중 저전력이면서 가장 높은 CPU는 8845HS 라고 할 수 있다.
  • 그 이상은 내 홈서버에 오버스펙일 뿐더러, 특히 나는 LPDDR5 은 무슨 DDR5 만으로도 충분하다.
    그리고 8코어를 넘어가는 CPU 를 24시간 구동하는데 전력 소모와 발열을 과연 미니PC 가 잘 잡을 수 있을지도 의문이다.
  • 그래서 8코어 이하의 CPU 중 8845HS 는 8745HS 에 비해 성능 차이가 거의 나지 않고, NPU 기능이 탑재되어있다.
  • 나는 현재의 NPU 기능은 거의 쓸모 없다고 판단해, 조금 더 저렴한 8745HS 로 구매했다.
  • 8745HS vs 8845HS 비교 : https://www.cpubenchmark.net/compare/6353vs6086/AMD-Ryzen-7-8745HS-vs-AMD-Ryzen-7-PRO-8845HS


준비물 및 가격

  • 미니PC (Beelink SER8): Beelink AMD Ryzen 8745HS Barebone
    TDP : 45W
    Clock : 3.8GHz
    Cache : L1 (512KB), L2 (8MB), L3 (16MB)
    가격 : 베어본 (SSD, RAM 없는) 기준 40만원에 해외직구
    구매 링크 : https://m.youchen.co.kr/goods/view?no=1008&NaPm=ct%3Dm6d8hyjk%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3Dnull%7Chk%3D760afd7f55c580e6dd9d7c12fac24896b19267f0
    SSD, RAM 을 끼워파는 경우 내가 원하는 1TB / 32GB * 2 스펙이 없을 뿐더러, 가격도 높고 제조사도 불분명하므로 따로 구매했다.
  • SSD: SK Hyniz P41 M.2 NVME 1TB (PCIE 4.0 규격)
    읽기 속도 : 7000MB /s
    쓰기 속도 : 6500MB /s
    가격 : 11만원 해외직구
    PCIE 3.0 과는 두 배이상의 읽기/쓰기 속도를 보여주는 대신 CPU, 메인보드 호환성 확인 필수.
    구매 링크 : https://smartstore.naver.com/youchen2019/products/10524997433?NaPm=ct%3Dm6d8hcot%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3Dnull%7Chk%3D495fa0f519be3d38f24953d322bf23e107d8fc59
  • RAM: SAMSUNG DDR5 5600MHz 32GB * 2 (SODIMM, 노트북 규격)
    가격 : 개당 10만원 (당근)
    RAM 은 잔고장이 잘 나지 않으므로 중고로 구매해도 무방하다. 현재 정가는 개당 15만원 정도 한다.
    24시간 구동되는 미니PC 이므로 오버클럭은 하지 않는다.
  • Power 어댑터 : Delta ADP-120RHBB 19V 6.32A 120W (외경 5.5mm)
    내가 구매한 베어본 제품은 중국 내수용 제품으로 110V 용 어댑터가 동봉되어있었다.
    돼지코를 이용할 수 있지만, 아무래도 24시간 돌아가므로 안정성과 호환성을 생각해 어댑터를 따로 구매했다.
    일반적으로는 ASUS 어댑터를 구매하지만, ASUS 는 가품이 워낙 많이 풀려 Delta 제품으로 구매했다.
    어댑터 구매를 고민한다면 제품과 호환되는 전압, 전류, 외경을 확인하고 구매하자.
    가격 : 3만원
    구매링크 : https://smartstore.naver.com/newsmartmall/products/10449924347?NaPm=ct%3Dm6d8j05x%7Cci%3Dcheckout%7Ctr%3Dppc%7Ctrx%3Dnull%7Chk%3D9b4a37e765733e805f64823c355506c35cac46db
  • 리눅스 설치용 USB 64GB
    Beelink 미니PC 는 기본적으로 해당 기기에서만 사용할 수 있는 Windows 11 설치용 USB 가 동봉되어 온다.
    물론 나는 리눅스를 설치할 것이기도하고,
    중국 소프트웨어는 믿지 못하므로 따로 USB 를 구매해 리눅스 ISO 파일을 넣어 설치했다.
    가격 : 5천원 (쿠팡)
    Ubuntu 24.04 LTS 를 설치하는 데 용량은 8GB 면 충분하다.


소프트웨어 및 기타

  • Ubuntu 24.04 LTS ISO 파일: 최신 LTS 버전 사용 추천
  • Rufus: 부팅 가능한 USB 제작을 위한 툴





3. 미니 PC 조립 및 Ubuntu 24.04.1 LTS 설치

3-1. SSD, RAM 장착

SER8 에 SSD, RAM 을 장착해보자.
RAM 은 아래 사진에는 없지만, SER8 은 노트북용 SODIMM 메모리 규격을 사용해야되는 것을 잊지 말자.

아래 사진은 SER8 의 하단을 분해해 SSD 와 RAM 을 부착한 모습이다.
참고로 SER8 모델은 SSD 부착하는 곳에 자동으로 방열판이 달려있다.
추가적으로 NVME SSD 슬롯 두 개와, SODIMM RAM 슬롯 두개임을 참고하자.


3-2. Ubuntu 부팅디스크 만들기

이제는 리눅스를 설치해보자.
먼저 리눅스를 설치할 USB 부팅디스크(8GB 이상)를 준비하고,
https://ubuntu.com/download/desktop 서 LTS 버전을 다운받는다.

2025.01 기준 24.04.1 이 최신 LTS 버전이다.

이제는 해당 파일을 Rufus 를 통해 부팅디스크로 만들어보자.
https://rufus.ie/ko/#google_vignette 에서
ISO 파일로 변환 작업을 하는 PC 의 시스템에 따라 적절한 것을 다운받는다.
일반적으로는 rufus-4.6.exe 를 받으면 된다. (x64)

rufus 를 실행하고 나서,
1. 장치에는 연결한 USB 를 선택한다.
2. 부팅 선택에는 다운받은 ISO 파일을 선택한다.
3. 이후 [시작] 버튼으로 진행한다.
참고로 해당 USB 는 자동 포맷 후 부팅디스크로 변환되니 참고하자.


3-3. SER8 에 우분투 설치

이제 SER8 에 부팅디스크로 만든 USB 를 연결하고 전원을 켜보자.
Beelink 로고가 보이는 순간 [Del] 키를 연타해 바이오스로 진입하자.

그러면 키보드로 상단 바를 좌우로 넘기면서 [Boot] 탭에 진입하면 아래와 같은 화면이 출력된다.

여기서 Boot Option #1 (부팅 옵션 1순위)에 부팅디스크 USB 를 선택하고,

다시 상단 메뉴바의 [SAVE & Exit] 탭으로 넘어가 [Save Changes and Exit] 으로 설정을 저장 후 나간다.

그러면 재부팅이 될텐데, 이때 아래와 같은 화면이 출력된다.
여기서 Ubuntu 를 설치한다는 첫번째 옵션으로 선택후 Enter 를 입력하자.

그러면 몇 분의 로딩 후 Ubuntu가 설치된다.
부팅디스크 USB 는 제거하지말고, 설치가 완료되고 나서 부팅디스크를 제거하라는 문구가 나올때까지 기다렸다가 제거하면 된다.

완전히 Ubuntu 가 설치된 후 부팅이 완료되면 Ubuntu 첫 세팅 가이드가 나오는데, 이것까지 스크린샷을 찍어두었지만 실수로 백업을 하지 않는 바람에 삭제됐다..

별 내용은 없지만 Ubuntu 첫 부팅 시 나오는 세팅 가이드는 다른 글에서 참고하자.






4. Ubuntu 기본 사용법

나의 경우엔 Linux 를 SSH 로만 사용해봤지 실제 OS 를 구축해 GUI 상에서 구동시켜 본 적이 없어 기본적인 것은 짚고 넘어간다.

Window 키를 누르면 기본적으로 메뉴 진입창에 들어온다.

  • Terminal, Setting 등 키워드로 메뉴 진입에 유용하다.
  • 참고로 Terminal 단축키는 Ctrl + Alt + T
  • 어차피 리눅스를 쓰는 사람들은 웬만한 작업을 모두 Terminal 에서 진행하니 터미널 진입 단축키만 알아도 무방하다.

참고로 Windows 의 파일 탐색기와 같은 Terminal 명령어는 아래와 같다.

# 뒤에는 디렉토리 경로 및 파일 경로를 적는다.
xdg-open ./

<Window 키 진입 시>

<Terminal 과 같은 메뉴 진입시 키워드 입력으로 가능>

기본적인 스크린샷은 printscreen 단축키로 가능하다.

  • printscreen : 스크린샷 도구 진입
  • alt + printscreen : 현재 활성 창 캡처 + 클립보드 복사
  • shift + printscreen : 전체화면 캡처 + 클립보드 복사

우분투 다크모드 적용법

Settings > Apperance 에서 Dark 로 적용.






5. 스펙/성능 확인

5-1. CPU 스펙 확인

lscpu

현재 1개의 CPU 소켓이 있고,
그 1개의 소켓에는 8개의 물리 CPU 코어가 있고,
하이퍼쓰레딩으로 인해 8 * 2 = 16 개의 논리 CPU가 존재함을 볼 수 있다.
그래서 CPU : 16 으로 출력된다.


5-2. 메모리 확인

free -h

total, used, free 를 확인한다.
여기에는 부팅을 위해 하드웨어가 기본적으로 사용하는 메모리는 제외되므로, 64GB 전체가 표시되지 않을 수 있음에 참고하자.


5-3. 디스크 확인

sudo fdisk -l

여러 파티션들이 나오는데, 제일 용량이 높은 것이 1TB 임을 확인한다.


5-4. Geekbench 성능 확인

가장 대중성과 신뢰성이 높은 Geekbench 로 테스트해보자.
CPU 에 다양한 백그라운드 프로세스로 부하를 주어
Single / Multi Core 점수를 매기는 툴이다.

아래처럼 설치 후 실행해보자.
약 5분정도가 소요되니 손톱이나 깎으면서 기다리자.

다른 프로세스는 모두 종료하고 터미널만 열린 상태에서 수행하자.

wget https://cdn.geekbench.com/Geekbench-6.2.1-Linux.tar.gz
tar -xvf Geekbench-6.2.1-Linux.tar.gz
cd Geekbench-6.2.1-Linux
./geekbench6

아래 결과를 보면 https://browser.geekbench.com/v6/cpu/10155002 에 내 점수가 기록되었다고 출력된다.

Single 코어 점수 : 2550
Multi 코어 점수 : 13489
점이다.

내가 정말 괜찮은 제품을 뽑았는지는 절대적인 점수만 봐서는 모르니까,
다른 사람들과의 점수를 비교해보자.
Google 에 CPU 명 + Geekbench 를 검색하자.
나의 경우엔 8745HS 여서 아래에서 다른 사람들의 점수를 확인 가능한데,
https://browser.geekbench.com/search?q=8745HS

다른 사람들에 비해 나쁘지 않은 점수가 나온 것을 알 수 있다.

멀티코어 점수가 10% ~ 20% 가량 더 높은 것이 보이는데,
일반적으로 SER8 에는 32GB 램이 부착되어 나오지만 나는 64GB 으로 세팅해 조금 더 여유있는 환경이라 그러지 않았을까 추측한다.

혹시 몰라서 다시 한 번 수행해보았다.
https://browser.geekbench.com/v6/cpu/10155127

Single 코어 점수 : 2626
Multi 코어 점수 : 13583
으로 이전보다 살짝 더 높게 나왔다.
평균치보다 더 높게 나오니, 특히 멀티 코어 점수가 8845HS 에 비빌만한 점수가 나와 기분이 살짝 좋긴 하네






6. Linux 세팅


6-1. root 계정 설정

Linux 최초 설정 시 root 계정부터 세팅해야 한다.

sudo passwd root
... 암호 설정

# root 권한 잘 수행되는지 확인 및 최신 패키지 설치
su
exit
sudo apt update

6-2. Pinta 스크린샷 도구 설치 및 자동화 (선택)

블로그 포스팅을 위해 스크린샷을 편하게 찍고, 여러가지 편집할 도구가 필요하다.
Linux 에서도 동작하는 pinta 오픈소스를 설치해보자.

ubuntu 24 에서는 apt respoitory 안에 pinta 가 없어 snap 으로 설치한다.

sudo snap install pinta

# pinta 버전 확인
pinta --version

이제 명령어로 스크린샷을 찍을 수 있게 해보자.
기본 단축키인 prtsrc 조합으로 가능하지만, 그때마다 일일이 pinta 를 열기도 귀찮으므로 우선 명령어로 조금이나마 자동화를 해보자.

# 단축키 입력 시 스크린샷을 찍게 해주는 명령어를 위한 gnome 설치
sudo apt install gnome-screenshot

# 스크린샷 테스트
# -a : 선택한 영억
# -w : 활성창
# 위 옵션이 없으면 기본적으로 전체화면 캡처
# -f : 해당 위치에 해당 이름으로 저장
gnome-screenshot -a -f ~/Pictures/Screenshots/test.png

# 명령어 수행 확인 (스크린샷이 저장된 디렉토리 또는 스크린샷 파일 열기)
xdg-open ~/Pictures/Screenshots/
xdg-open ~/Pictures/Screenshots/test.png

gnome-screenshot 명령어가 잘 수행된다면, 캡처 후 pinta 를 자동으로 여는 스크립트를 만들어보자.

# script 전용 디렉토리 생성
mkdir ~/scripts
cd ~/scripts
vi screenshot_pinta.sh

# 이제 vi 편집창에서 아래 스크립트 입력 후 저장
# gnome-screenshot 앞서 설명한 -a -w -f 옵션 중 본인이 원하는 옵션으로 설정한다.
#!/bin/bash
SCREENSHOT_PATH="$HOME/Pictures/Screenshots/screenshot_$(date +%Y%m%d%H%M%S).png"
gnome-screenshot -w -f "$SCREENSHOT_PATH"
pinta "$SCREENSHOT_PATH" &

# 스크립트 수행 확인
./screenshot_pinta.sh

아래와 같이 정상적으로 열리는 모습을 보인다.

이제 Ctrl + Shift + S 키보드 조합을 캡처 후 pinta 편집 창을 열게 해보자.

우선 Settings > Keyboard > View and Customize Shortcuts 으로 키보드 단축키 설정에 진입한다.

이후 Custom Shortcuts 에 진입한다.

Add Shortcut 을 진입해 새로운 단축키를 만든다.
나는 pinta Screenshot 이라는 이름의 단축키에
/home/${username}/scripts/screenshot_gimp.sh 라는 명령어를 수행하도록 했다.
단축키는 Shift + Ctrl + S 으로 지정했다.

~/ 와 같은 유저별 상대경로는 안되는 것으로 확인되어 절대경로로 지정해야 한다.

간단한 사용법은 아래와 같다.

  • 특정 영역 제거
    S -> 마우스 좌클릭 드래그 -> Delete
  • 사각형 그리기
    O 두번 -> 마우스 좌클릭 드래그 -> 최하단 색상 선택
  • 텍스트 생성
    텍스트 한 번 생성 후 수정 안됨.. 말이되나
    다른 이미지 편집 툴을 사용할까도 해봤는데 Gimp 처럼 너무 기능이 많아 불편하거나 기능이 없는 경우도 있어 그냥 pinta 를 택함.

6-3. 한글 입력 설정

https://andrewpage.tistory.com/390

Ubuntu 24 에 들어오면서 한글 입력을 위해선 Korean > Korean 이 아닌,
Korean > Hangul 로 적용해야 된다.

Settings > Region & Language 탭에 진입한다.

이후 Manage Installed Languages 에 진입한다.

Install/Remove Languages 에 진입한다.

Korean 을 선택한다.

Download 가 완료되면 [한국어] 가 추가되었는지 후 Close 한다.

이후 우분투 OS 자체를 Reboot 해주어야 한다.
GUI 상으로 우측 상단에 있는 것으로 reboot 가능하지만,
터미널에 익숙해져보자.

sudo reboot

reboot 이 완료되었다면 ibus-setup 에 진입하자.

ibus-setup

[Input Method] 탭에 Add 에 진입하자. 나는 이미 Hangul 이 적용되어 있지만, 없다고 가정하고 진행해보자.

Korean 을 입력해 진입하면,

아래와 같이 Hangul 이 나온다.

Hangul 이 나오지 않으면 reboot 을 하지 않았거나 Korean 이 제대로 설치되지 않은 것이므로 위 설치 단계로 다시 넘어가자.
그리고 Ubuntu 24 부터는 Hangul 로 해야만 적용되므로 참고하자.


아직 작업을 추가로 해주어야 한다.

Settings > keyboard > Add Input Source 에 진입한다.
나는 이미 Korean (Hangul) 로 적용되어 있지만, 세팅이 안된 사람이라면 English (US) 으로 써있을 것이다.

그러면 Korean 을 진입해

Hangul 을 추가해보자.

그 이후에는 기존에 있던 English (US) 를 삭제해야 한다.

그러면 우측 상단에 [한] 클릭 시 Korean(Hangul) 이 나오면 된 것이다.


이제는 한/영키로 변환할 수 있게 해보자.

기본 설정은 Shift + Space 으로 변환되게 설정되어있다.
이를 수정하기 위해 이전의 화면에서 메뉴버튼의 Preferences 에 진입한다.

Add 버튼을 누르고,

일반적인 키보드의 한/영키를 입력하면 아래와 같이 Alt_R 로 인식되고,
OK 를 누르면 이제 한/영키 전환이 잘 될것이다.


선택) 한/영키 + space 누를 시 window menu 나오는 현상 수정

Ubuntu 는 기본적으로 ALT + Space 를 입력하면 Window Menu 가 나오는게 매우 불편하므로.. 변경해보자.
특히 나는 블로그를 쓰면서 한/영 전환을 매우 자주하므로 불편하다.

Settings > Keyboard > View and Customize Shortcuts 에 진입한다.

Windows 에 진입한다.

Activate the window menu 를 Alt + Space 가 아닌 다른 단축키로 설정한다.


6-4. vi/vim 설정, curl / git / 터미널 테마 / tree 설치

vi 는 리눅스에서 가장 많이 쓰이는 에디터이지만, 기본적으로 방향키 등도 B, C, D 와 같은 문자열로 입력되는 현상을 수정해보자.

cd ~
# vi로 .exrc 파일 생성
vi .exrc

# 아래 내용 입력 후 저장
set bs=2
set nocp

# 위 설정을 저장
source .exrc

참고 : 터미널에서 복사/붙여넣기 단축키는 Shift + Ctrl + C, Shift + Ctrl + V 이다.

vim 설치 (선택)
vim 은 vi 에서 조금 더 진화된 에디터이다.
특정 키워드의 색상을 다르게 하거나, 화살표로 커서를 이동하는 것들을 기본적으로 지원한다.

sudo apt install vim

# 검색어 강조 설정
echo "set hlsearch" >> ~/.vimrc
echo "set incsearch" >> ~/.vimrc

curl 설치

curl(Client URL) 이란 의미로 Client에서 URL을 사용해 서버와 데이터를 송수신하는 명령어 툴이다.

특히 Linux 환경에서 HTTP, HTTPS, SMTP, TELNET, FTP, LDAP 등 다양한 프로토콜을 지원하여 자주 쓰이는 명령어라 설치해두자.

sudo apt install curl -y

git 설치

git은 소스코드 관리나 여러 repository 들을 직접 불러올 때 쓸모가 많으므로 무조건 설치하자.

# git 설치
sudo apt install git -y
# 설치 확인
git --version

# git 사용자 정보 적용 (선택)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# config 정보 확인
git config --list

프롬프트 테마 설치

대중적으로 사용되는 터미널 입력창의 테마가 있다.
Powerline 을 설치해보자.

# powerline 설치
sudo apt install powerline fonts-powerline

# powerline 적용
echo 'if [ -f /usr/share/powerline/bindings/bash/powerline.sh ]; then' >> ~/.bashrc
echo '    source /usr/share/powerline/bindings/bash/powerline.sh' >> ~/.bashrc
echo 'fi' >> ~/.bashrc
source ~/.bashrc

적용이 잘 된 모습

만약 powerline 폰트가 깨지는 경우

터미널 우측 상단의 메뉴 > Preferences

좌측의 Unnamed > Text > Custom font 체크 후 폰트 선택

Monospace 선택

폰트 캐시 삭제

sudo fc-cache -f -v

이후 터미널 재실행

tree 설치

리눅스에서 현재 디렉토리와 하위 디렉토리 구조를 표현할 때 tree 구조보다 가시성이 좋은 것은 없다.
누군가에게 설명할 일이 있거나 파일 구조를 터미널에서 쉽게 보고자 한다면 설치해보자.

sudo apt install tree

6-5. docker 설치

Ubuntu 24.04에서는 apt-key 명령어가 더 이상 권장되지 않으며, 대신 GPG 키를 /etc/apt/keyrings/ 디렉토리에 저장하는 방식으로 변경해야 한다.

# 저장소 추가
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 패키지 목록 업데이트
sudo apt update

# Docker 패키지 설치
sudo apt install docker-ce docker-ce-cli containerd.io

# Docker 설치 확인
sudo docker --version
sudo docker run hello-world

# 현재 유저에 docker 명령어 실행 권한 주기
sudo usermod -aG docker $USER
newgrp docker

# docker-compose 설치
sudo apt-get install docker.io docker-compose

profile
Spring 백엔드 개발자

0개의 댓글