self-hosted

집에서 서비스를 오픈 해보자 (2) | 서버 세팅하기

pepega 2024. 7. 7. 17:09

집에서 서비스를 오픈 해보자 (1) | 개요

집에서 서비스를 오픈 해보자 (2) | 서버 세팅하기

집에서 서비스를 오픈 해보자 (3) | dns 연결하기

 

이전 포스팅에서는

간단한 개요에 대해 적었습니다.

 

이번 포스팅에서는

Docker와 NPM(Nginx Proxy Manger)를 설치하여

아래 다이어그램 중 Raspberry Pi(우측 파랑색부분) 부분을 세팅할 예정입니다.

 

Raspberry Pi가 아니어도 되고

linux 기반의 서버면 충분합니다.

 

 

1. Docker 설치

https://docs.docker.com/engine/install/ubuntu/

요 사이트에 접속해서 가이드 대로 설치를 해도 됩니다.

 

여기 작성한 글은 위 링크를 간단하게 정리한 내용입니다.

 

1-1. 충돌이 날 수 있는 패키지 제거 (사전 작업)

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

 

 

1-2. docker의 apt 저장소를 설정합니다.

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

 

1-3. docker package를 설치합니다.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

1-4. 설치 완료 테스트

sudo docker run hello-world

 

명령어를 수행하여 docker가 정상 설치되었는지 확인합니다.

 

귀찮아

설치가 완료되었으나

매번 sudo를 치기는 귀찮습니다.

 

1-5. docker를 실행 시킬 수 있는 group 생성하기

 

그룹 생성

sudo groupadd docker

 

 

현재 사용자를 그룹에 추가

sudo usermod -aG docker $USER

 

 

그룹 변경사항 활성화

newgrp docker

 

 

 

테스트를 해봅니다.

docker run hello-world

 

 

 

2. NPM(Nginx Proxy Manager) 설치

https://nginxproxymanager.com/guide/

요 링크의 내용을 간략하게 정리한 내용입니다.

 

NPM은 web에서 nginx 설정을 할 수 있는 서비스입니다.

 

docker-compose.yaml 파일을 사용하여 설치할 계획입니다.

https://nginxproxymanager.com/setup/

 

 

서버에 파일을 세팅하고

아래 명령어를 수행합니다.

 

docker compose up -d

 

 

이제 localhost:81에 접속하면

NPM 에 접속 할 수 있습니다.

 

초기 세팅은 아래와 같습니다.

 

Email:    admin@example.com
Password: changeme

 

 

 

설치가 완료되었습니다.

다음에는 let's encrypt, free dns를 사용하여

서비스 -> nginx로 reverse proxy를 거는

npm 세팅을 진행하겠습니다.