소개
Plausible Analytics는 간단함과 개인 정보 보호에 중점을 둔 오픈 소스, 자체 호스팅형 웹 분석 애플리케이션으로, Elixir로 작성되었습니다. PostgreSQL 및 ClickHouse 데이터베이스에 웹 사이트 방문자에 대한 데이터를 저장합니다.
이 튜토리얼에서는 Docker Compose를 사용하여 Plausible을 설치한 다음, Nginx를 설치하여 Plausible 앱의 역방향 프록시로 사용합니다. 마지막으로, Let’s Encrypt 인증 기관에서 SSL 인증서를 다운로드하고 구성하기 위해 Certbot를 사용하여 안전한 HTTPS 연결을 활성화합니다.
전제 조건
이 튜토리얼을 완료하려면 먼저 다음이 필요합니다:
- UFW 방화벽이 활성화된 Ubuntu 22.04 서버. 이러한 요구 사항을 설정하는 방법에 대한 자세한 내용은 Ubuntu 22.04에서 초기 서버 설정을 참조하십시오.
- 도커가 설치되었습니다. 이를 완료하려면 스텝 1 을 참고하세요. Ubuntu 22.04에 도커 설치 및 사용 방법 . 선택적으로, 비 루트 사용자도
sudo
를 사용하지 않고docker
명령을 실행할 수 있도록하려면 해당 자습서의 스텝 2를 따를 수 있습니다 - 도커 컴포즈가 설치되었습니다. 이 소프트웨어를 설치하려면 스텝 1 를 따르세요. Ubuntu 22.04에 도커 컴포즈 설치 및 사용 방법
참고:이러한 선행 단계는 DigitalOcean의 원 클릭 도커 이미지 를 사용하는 경우 건너 뛸 수 있습니다. 이 이미지에는 도커, 도커 컴포즈 및 UFW가 이미 설치되어 구성되어 있습니다.
선택한 지역에 새로운 도커 이미지를 시작한 다음 루트 사용자로 로그인하고 자습서를 진행하십시오. 선택적으로 모든 명령의 sudo
부분을 생략할 수도 있지만 필수는 아닙니다.
마지막으로 SSL을 활성화하려면 서버의 공용 IP 주소를 가리키는 도메인 이름이 필요합니다. 예를 들어 example.com
또는 plausible.example.com
과 같아야합니다. DigitalOcean을 사용하는 경우 도메인 리소스를 만드는 방법에 대한 정보는 DNS 퀵스타트 를 참조하십시오. 제어판에서.
모든 전제 조건을 충족한 경우 단계 1로 진행하여 Plausible 소프트웨어를 다운로드하고 시작합니다.
단계 1 – Docker Compose를 사용하여 Plausible Analytics 설치
Plausible은 소프트웨어를 자체 호스팅하기 위해 필요한 모든 구성 파일이 포함된 Git 저장소를 생성했습니다. 첫 번째 단계는 이 저장소를 서버에 복제하고 두 개의 구성 파일을 업데이트한 다음 Plausible 앱과 데이터베이스 컨테이너를 시작하는 것입니다.
지금 서버에 로그인하세요.
먼저 cd
명령을 사용하여 /opt
디렉토리로 이동하십시오:
그런 다음 git
명령을 사용하여 GitHub에서 저장소를 복제하여 /opt
내의 새 디렉토리인 plausible
에 저장하십시오:
이렇게 하면 모든 필요한 구성 파일이 /opt/plausible
로 복제됩니다. 새로 생성된 디렉토리로 이동하세요:
첫 번째로 편집해야 할 파일은 몇 가지 구성 변수를 설정해야 하는 plausible-conf.env
파일입니다.
파일을 편집하기 전에 새로운 랜덤 해시를 생성하세요:
이는 openssl
명령을 사용하여 64개의 랜덤 문자를 생성하고 base64
명령을 사용하여 이를 base64로 인코딩합니다. 출력을 클립보드에 복사한 다음 구성 파일을 엽니다:
파일에는 채워야 할 다섯 가지 변수가 포함되어 있습니다.
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here
이메일, 사용자 이름, 암호, 기본 URL을 입력한 다음 openssl
으로 생성한 임의의 문자열을 붙여넣으십시오.
참고: 여기서 지정한 암호는 최소 여섯 자 이상이어야 합니다. 도메인 이름이 아닌 벌거벗은 IP 주소를 사용하는 경우 http://
를 앞에 추가해야 합니다.
파일을 저장하려면 (nano
에서 CTRL+O
를 누르고 ENTER
를 누릅니다) 편집기를 닫습니다 (CTRL+X
).
이 파일에 추가할 수 있는 더 많은 구성 옵션이 있지만, 이 최소한의 설정만으로도 작동할 수 있습니다. plausible-conf.env
를 통한 Plausible 구성에 대한 자세한 정보는 공식 Plausible Analytics 자체 호스팅 문서에서 확인할 수 있습니다.
이제 docker-compose.yml
파일을 업데이트해야 합니다. 이 파일은 docker-compose
명령이 여러 Docker 컨테이너를 구성하고 시작하는 데 사용합니다. 이 파일에서 하나의 옵션을 변경해야 합니다: Plausible이 바인딩하는 IP입니다.
Plausible 컨테이너를 정의하는 섹션을 찾으십시오. 이 섹션은 plausible:
로 시작합니다. 해당 섹션에서 ports:
정의를 찾아 다음과 같이 업데이트하십시오:
ports:
- 127.0.0.1:8000:8000
이렇게하면 Plausible이 로컬호스트 인터페이스에서만 수신하도록되며 공개적으로 이용할 수 없습니다. UFW 방화벽을 설정했더라도 Docker 네트워킹이 작동하는 방식에 따라 이 단계를 거치지 않으면 Plausible 컨테이너가 공개적으로 8000 포트에서 접근 가능합니다. 다음 단계에서 설정할 Nginx 프록시를 통해서만 접근 가능하도록합니다.
docker-compose.yml
파일을 저장하고 닫은 다음 docker-compose
를 사용하여 컨테이너를 다운로드, 구성 및 시작하십시오.
--detach
플래그는 docker-compose
에게 컨테이너를 백그라운드에서 우리 터미널 세션과 분리된 상태로 생성하도록합니다.
Output. . .
Starting plausible_plausible_events_db_1 ... done
Starting plausible_plausible_db_1 ... done
Starting plausible_mail_1 ... done
Starting plausible_plausible_1 ... done
앱 컨테이너와 그에 따르는 모든 메일 및 데이터베이스 컨테이너가 이제 실행 중입니다. 새로운 Plausible 컨테이너가 localhost에서 실행 중임을 확인하기 위해 curl
명령을 사용할 수 있습니다.
Output<html><body>You are being <a href="/login">redirected</a>.</body></html>
터미널에 HTML이 출력되면 서버가 실행 중임을 알 수 있습니다.
다음으로, Nginx를 설정하여 Plausible을 localhost:8000
에서 공개적으로 노출시킵니다.
단계 2 — Nginx 설치 및 구성
웹 서버인 Nginx를 Elixir 서버 앞에 두면 캐싱, 압축 및 정적 파일 서빙을 더 효율적인 프로세스로 오프로드하여 성능을 향상시킬 수 있습니다. 우리는 Nginx를 설치하고 이를 Plausible에 대한 역방향 프록시로 구성할 것입니다. 이것은 사용자의 요청을 Plausible로 전달하고 다시 반환하는 것을 처리할 것입니다.
먼저 패키지 목록을 새로고침하고, 그런 다음 apt
를 사용하여 Nginx를 설치하세요:
“Nginx Full” UFW 애플리케이션 프로필을 사용하여 포트 80
및 443
(HTTP 및 HTTPS)에 대한 공개 트래픽을 허용하세요:
OutputRule added
Rule added (v6)
다음으로, /etc/nginx/sites-available
디렉토리에 새로운 Nginx 구성 파일을 엽니다. 우리는 이를 plausible.conf
라고 하지만 다른 이름을 사용할 수 있습니다:
다음을 새로운 구성 파일에 붙여 넣고, your_domain_here
을(를) 설정한 도메인으로 대체하세요. 이것은 예를 들어 plausible.example.com
과 같은 것이어야 합니다:
server {
listen 80;
listen [::]:80;
server_name your_domain_here;
access_log /var/log/nginx/plausible.access.log;
error_log /var/log/nginx/plausible.error.log;
location / {
proxy_pass http://localhost:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
현재 이 구성은 HTTP 전용입니다. 다음 단계에서 Certbot이 SSL을 구성하도록 할 것입니다. 나머지 구성은 로깅 위치를 설정하고 모든 트래픽을 http://localhost:8000
으로 전달합니다. 이는 이전 단계에서 시작한 Plausible 인스턴스입니다:
파일을 저장하고 닫은 다음, 이를 /etc/nginx/sites-enabled/
로 링크하여 구성을 활성화하세요:
구성 파일 구문이 올바른지 확인하려면 nginx -t
를 사용하세요:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
마지막으로, 새 구성을 적용하도록 nginx
서비스를 다시로드하세요:
당신의 Plausible 사이트는 이제 일반 HTTP에서 사용 가능해야 합니다. http://당신의_도메인_여기에_입력
을 로드하면 다음과 같이 보일 것입니다:
이제 HTTP로 사이트를 작동시켰으므로 Certbot과 Let’s Encrypt 인증서로 연결을 안전하게 보호할 시간입니다.
단계 3 – Certbot 설치 및 SSL 인증서 설정
Certbot과 Let’s Encrypt 무료 인증 기관을 통해 Plausible 앱에 SSL 암호화를 추가하는 것은 단 두 개의 명령만으로 이루어질 것입니다.
먼저 Certbot과 그의 Nginx 플러그인을 설치하세요:
다음으로, --nginx
모드에서 certbot
을 실행하고 Nginx server_name
구성에서 사용한 동일한 도메인을 지정하세요:
Let’s Encrypt 서비스 약관에 동의하고 이메일 주소를 입력하라는 메시지가 표시됩니다.
이후, 모든 HTTP 트래픽을 HTTPS로 리디렉션할지 여부를 묻는 메시지가 표시됩니다. 선택은 당신에게 달려 있지만, 일반적으로 권장되며 안전합니다.
이후, Let’s Encrypt이 요청을 확인하고 Certbot이 인증서를 다운로드할 것입니다:
OutputCongratulations! You have successfully enabled https://plausible.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/plausible.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/plausible.example.com/privkey.pem
Your cert will expire on 2022-12-05. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Certbot은 새로운 구성 및 인증서를 사용하기 위해 Nginx를 자동으로 다시로드합니다. 사이트를 다시 로드하면 리디렉션 옵션을 선택한 경우 자동으로 HTTPS로 전환될 것입니다.
당신의 사이트는 이제 안전하며 단계 1에서 설정한 기본 사용자 세부 정보로 로그인하는 것이 안전합니다. 그런 다음 등록을 확인하라는 프롬프트가 표시되며, 확인 코드가 구성한 주소로 이메일로 전송됩니다.
기본적으로 이 이메일은 서버에서 직접 보내지며, 다양한 스팸 방지 조치로 인해 문제가 발생할 수 있습니다. 이메일을 받지 못한 경우 스팸 폴더를 확인하십시오. 그곳에도 없는 경우 plausible-conf.env
파일에서 더 적합한 SMTP 세부 정보를 설정해야 할 수 있습니다. 메일 구성에 대한 자세한 내용은 공식 Plausible 자체 호스팅 문서를 참조하십시오.
로그인에 성공하면 첫 번째 웹 사이트를 Plausible로 설정하라는 프롬프트가 표시됩니다:
당신은 Plausible 분석 소프트웨어를 성공적으로 설치하고 안전하게 보호했습니다.
결론
이 튜토리얼에서는 Docker Compose를 사용하여 Plausible Analytics 앱과 해당 보조 컨테이너를 시작하고 Nginx 역방향 프록시를 설정하고 Let’s Encrypt SSL 인증서를 사용하여 보호했습니다.
이제 웹 사이트를 설정하고 Plausible Analytics 추적 스크립트를 추가할 준비가되었습니다. 소프트웨어 사용 및 사이트 설정에 대한 자세한 내용은 공식 Plausible Analytics 문서를 참조하십시오.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-plausible-analytics-on-ubuntu-22-04