설치 가이드 · 4 min read · Oct 26, 2025

Debian 12에 Cachet 상태 페이지 시스템 설치하는 방법

Cachet는 PHP로 작성된 오픈 소스 상태 페이지 시스템입니다. 인프라의 다운타임과 시스템 실패를 모니터링할 수 있습니다. Cachet는 JSO API, 보고서, 메트릭, 여러 알림 방법 및 이중 인증을 제공합니다.

다음 튜토리얼에서는 Debian 12 서버에 Cachet 상태 페이지를 설치하는 방법을 보여줍니다. PostgreSQL 데이터베이스와 Nginx 웹 서버를 사용하여 Docker 컨테이너로 Cachet를 실행합니다.

전제 조건

이동하기 전에 다음 사항을 확인하세요:

  • Debian 12 서버.
  • sudo 권한이 있는 비루트 사용자.
  • UFW가 설치되고 구성되어 있어야 합니다.
  • 서버 IP 주소를 가리키는 도메인 이름.

Docker 엔진 설치

이 예제에서는 Docker를 통해 Cachet를 컨테이너로 설치합니다. 따라서 Debian 시스템에 Docker 엔진을 설치해야 합니다. 이 예제에서는 공식 Docker 엔진 패키지를 사용할 것입니다.

먼저, curl 및 ca-certificates 패키지를 설치하기 위해 아래 명령어를 실행합니다.

sudo apt install ca-certificates curl -y

이제 다음 명령어를 실행하여 Docker 저장소의 GPG 키를 추가합니다.

sudo install -m 0755 -d /etc/apt/keyrings  
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc  
sudo chmod a+r /etc/apt/keyrings/docker.asc

다음으로, 아래 명령어를 사용하여 Debian 시스템에 Docker 엔진 저장소를 추가합니다.

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

Docker 저장소가 추가되면 아래 명령어로 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

add repo

이제 다음 명령어로 시스템에 Docker 엔진을 설치합니다. 설치를 확인하려면 Y를 입력하세요.

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

install docker

설치가 완료되면 Docker 서비스가 자동으로 실행되어야 합니다. 아래 명령어로 Docker 서비스 상태를 확인하세요.

sudo systemctl status docker

다음과 같은 출력이 표시됩니다:

check docker

사용자가 컨테이너를 실행할 수 있도록 하려면 아래 명령어로 docker 그룹에 추가해야 합니다.

sudo usermod -aG sudo alice

마지막으로, 사용자로 로그인하고 아래 docker 명령어를 실행하여 hello-world 컨테이너를 실행합니다.

su - alice  
docker run hello-world

구성이 성공적이라면 다음과 같은 ‘Hello Docker’ 출력이 표시됩니다:

docker hello-world

Docker 및 PostgreSQL 데이터베이스로 Cachet 실행

Docker를 설치한 후 Cachet 프로젝트를 다운로드하고 설치를 구성해야 합니다. 이 경우 비루트 사용자로 Docker 컨테이너에서 Cachet를 설치하고 실행합니다.

Cachet 프로젝트를 cachet-docker 디렉토리에 다운로드하고 해당 디렉토리로 이동합니다.

git clone https://github.com/cachethq/Docker.git cachet-docker  
cd cachet-docker

다음 nano 편집기 명령어를 사용하여 docker-compose.yml 파일을 엽니다.

nano docker-compose.yml

기본 호스트 포트를 8000으로 변경합니다. 데이터베이스 세부정보를 사용자 정보로 사용자 지정하고 기본 Cachet 버전은 현재 2.4로 두세요.

 ports:  
 - 8000:8000

파일을 저장하고 종료합니다.

이제 다음 Docker 명령어를 실행하여 Cachet 이미지를 빌드하고 Cachet 및 PostgreSQL용 컨테이너를 실행합니다.

docker compose build  
docker compose up

아래는 Cachet용 Docker 이미지를 빌드할 때의 스크린샷입니다.

docker byuild

아래는 Cachet 및 PostgreSQL용 컨테이너/서비스를 실행할 때의 스크린샷입니다.

container running

Cachet 컨테이너의 자세한 로그에서 APP_KEY 구성에 대한 오류를 찾을 수 있습니다. 생성된 APP_KEY를 복사하고 Ctrl+c를 눌러 컨테이너를 종료합니다.

다음으로, nano 편집기를 사용하여 docker-compose.yml 파일을 다시 엽니다.

nano docker-compose.yml

기본 APP_KEY 매개변수를 다음과 같이 변경합니다. base64 문자열을 포함해야 합니다.

APP_KEY=base64:WfKUhY0wAOyr5hkxoctZUSWPGdXbBUWFvNLCoI7kTU8=

파일을 저장하고 종료합니다.

이제 아래 Docker 명령어를 실행하여 Cachet 및 PostgreSQL용 컨테이너를 종료한 후 다시 시작합니다.

docker compose down  
docker compose up -d

컨테이너가 시작되면 아래 명령어를 사용하여 실행 중인 컨테이너 목록을 확인합니다.

docker compose ps

아래와 같이 Cachet 및 PostgreSQL 컨테이너가 모두 실행 중입니다. Cachet 컨테이너는 포트 8000에서 실행되고 있습니다.

Nginx를 리버스 프록시로 설정

이제 Cachet가 포트 8000에서 컨테이너로 실행되고 있으므로 Nginx를 Cachet의 리버스 프록시로 설치하고 구성합니다.

아래 명령어를 사용하여 Debian 서버에 Nginx를 설치합니다.

sudo apt install nginx -y

install nginx

설치가 완료되면 nano 편집기 명령어를 사용하여 새로운 Nginx 서버 블록 구성 /etc/nginx/sites-available/cachet를 생성합니다.

sudo nano /etc/nginx/sites-available/cachet

아래 구성을 삽입하고 server_name 매개변수를 도메인 이름으로 변경해야 합니다.

server {  
 listen 80;  
 server_name status.howtoforge.local;  
 location / {  
 proxy_pass http://127.0.0.1:8000;  
 proxy_set_header Host $host;  
 proxy_set_header X-Real-IP $remote_addr;  
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
 proxy_set_header X-Forwarded-Proto $scheme;  
 }  
}

파일을 저장하고 편집기를 종료합니다.

다음으로, 아래 Nginx 명령어를 실행하여 Cachet 서버 블록을 활성화하고 Nginx 구문을 확인합니다. 올바른 구문이 있으면 ‘syntax is ok‘라는 출력을 얻어야 합니다.

sudo ln -s /etc/nginx/sites-available/cachet /etc/nginx/sites-enabled/  
sudo nginx -t

마지막으로, Cachet 서버 블록 구성을 적용하기 위해 Nginx 웹 서버를 재시작하고 Nginx 서비스가 실행 중인지 확인합니다.

sudo systemctl restart nginx  
sudo systemctl status nginx

Nginx가 실행 중이면 ‘active(running)‘이라는 출력을 얻어야 합니다.

check nginx

UFW(간단한 방화벽) 설정

Cachet에 접근하기 전에 HTTP 및 HTTPS 포트가 허용되어 있는지 확인해야 합니다. Ubuntu에서는 UFW(간단한 방화벽)를 통해 HTTP 및 HTTPS로의 트래픽을 허용합니다.

UFW가 활성화되어 있는지 확인하고, 아래 명령어를 실행하여 UFW에서 ‘Nginx Full‘ 프로필을 활성화합니다. 이렇게 하면 HTTP 및 HTTPS 프로토콜에 대한 트래픽이 Nginx 웹 서버로 허용됩니다.

sudo ufw allow 'Nginx Full'

이제 아래 명령어로 UFW에서 활성화된 규칙 목록을 확인합니다.

sudo ufw status

‘UFW에서 ‘Nginx Full‘ 프로필이 활성화되어 있는 것을 볼 수 있습니다.

setup ufw

HTTPS로 Cachet 보안 설정

이 시점에서 Cachet는 Nginx를 통해 접근할 수 있어야 합니다. 설치를 보안하기 위해 SSL을 통해 Cachet에 대한 HTTPS를 활성화합니다.

아래 명령어를 실행하여 Certbot 및 Certbot Nginx 플러그인을 설치합니다. 설치를 확인하려면 Y를 입력하세요.

sudo apt install certbot python3-nginx-certbot

설치가 완료되면 아래 certbot 명령어를 실행하여 Cachet 설치를 위한 SSL/TLS 인증서를 생성합니다. 도메인 이름 및 이메일 주소 세부정보를 사용자 정보로 변경해야 합니다.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d status.howtoforge.local

모든 것이 완료되면 SSL/TLS 인증서는 /etc/lestencrypt/live/status.howtoforge.local 디렉토리에 저장됩니다. 또한 Cachet는 HTTPS를 통해 보안됩니다.

Cachet 설치

선호하는 웹 브라우저를 열고 Cachet 설치 페이지 https://status.howtoforge.local/에 방문합니다. 설치가 성공적이라면 다음 페이지가 표시됩니다.

기본 Cache Driver, Queue Driver, 및 Session DriverDatabase로 선택합니다. 그런 다음 메일 서버의 세부정보를 입력합니다.

Next를 클릭하여 계속합니다.

setup cachet

이제 상태 페이지 이름, 기본 시간대 및 기본 언어를 설정합니다. 그런 다음 다시 Next를 클릭합니다.

setup language

이제 사용자 이름, 이메일 및 비밀번호를 입력하여 Cachet의 새 관리자 사용자를 생성합니다. 그런 다음 Complete Setup을 클릭하여 확인합니다.

setup admin

완료되면 다음과 같은 화면이 표시됩니다 - Go to the dashboard를 클릭합니다.

complete installation

사용자 이름과 비밀번호로 Cachet에 로그인한 후 Login을 클릭합니다.

login

설치가 성공적이라면 다음과 같은 Cachet 대시보드를 얻을 수 있습니다:

dashboard

결론

축하합니다! 이제 Docker를 사용하여 Debian 12 서버에 Cachet 상태 페이지를 설치했습니다. PostgreSQL 데이터베이스와 Nginx 웹 서버로 Cachet 설치가 실행되고 있습니다. 이제 Cachet를 사용하여 사이트를 모니터링할 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.