🎉
Macbook Pro 16인치 구매 기념
나의 첫 Mac이자
이제는 고인이 된 맥북 R.I.P.
Macbook Pro (Retina, 13-inch, Late 2013)
Why?
작년 이맘때쯤 M1 맥미니 기본형을 구입했다.
M1 맛보기용 & 16인치 Macbook Pro 출시까지 버티기용
M1칩셋의 저발열, 저전력, 저소음의 강점을 이용해 개인프로젝트 서버용으로 활용해보기로했다.
Docker 컨테이너 실행
독립된 환경을 위해 우분투 이미지를 이용해 컨테이너화
docker run \
--name macmini-server -it \
-p 443:443 \
-v ~/Workspace/MyApp:/app ubuntu:20.04
Let's Encrypt 무료인증서 발급
certbot 으로 발급진행
apt install certbot
certbot certonly --standalone -d [도메인]
웹서버(nginx) 설정
nginx 설치
apt update
apt install nginx
certbot으로 발급받은 인증서 경로를 추가
https(443) 요청시 nodejs(3000) 웹서버로 접근하도록 설정
server {
listen 443 ssl;
server_name [도메인];
ssl_certificate /etc/letsencrypt/live/[도메인]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[도메인]/privkey.pem;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3000/;
proxy_redirect off;
}
}
nodejs 서버
index.js
const http = require("http");
http.createServer((req, res) => res.end("Hello World!")).listen(3000);
nodejs 서버 실행
$ node /app/index.js
공유기 Router 설정
맥미니의 내부포트를 공유기 외부포트로 포워딩

후기
NestJS 웹앱과 mysql 컨테이너를 추가로 올려
사이드 프로젝트의 API 서버로 사용하였다
성능은 개인프로젝트로 사용하기에 차고 넘치는 사양이었고
한달간 중단없이 돌렸으나 전기세 역시 크게 체감되지 않았다
소규모 서비스 또는 개인용으로 사용하기에 매우 괜찮은듯 👍🏻
