이 스크립트는 공개 웹 앱을 위해 letsencrypt certs를 사용하여 Traefik 리버스 프록시를 구성합니다. 내 예에서, 나는 Dokuwiki (Markdown Wiki App으로 우수한 일반 텍스트)를 설정했습니다.이 작업을 수행하는 동안 나는이 결과를 달성하기위한 간단한 가이드가 없다고 생각했으며 다른 사람들에게는 약간 혼란 스러울 수 있습니다.
참고 : 이것은 현재 Traefik V1과 함께 작동합니다. 곧 출시 될 V2가 지원됩니다.
Namecheap을 통해 도메인을 구입했습니다. 어떤 도메인 레지스트라를 통과하든 DNS 레코드를 제대로 설정해야합니다. 나는 그것이 얼마나 간단했는지 나 메체 테를 추천하지만, 그것들은 모두 동일합니다. 공급자가 와일드 카드 DNS 레코드를 허용하는 한, 가야합니다. Namecheap의 "Advanced DNS"탭에서만 추가하고 IP-Address 값을 서버의 공개 IP 주소로 변경합니다.
| 유형 | 주인 | 값 | TTL |
|---|---|---|---|
| 기록 | * | IP-Address | 오토매틱 |
레포를 복제하십시오 : git clone https://github.com/Starttoaster/docker-traefik.git
디렉토리 변경 : cd docker-traefik
스크립트를 실행하십시오 : ./docker-traefik.sh
디렉토리 변경 : cd /opt/traefik
몇 가지 질문에 대답하면 스크립트가 완료되어야합니다. VPS (Cloud Server)에서 실행중인 경우 docker-compose up -d 실행하고 앱을 가져올 준비가되어 있어야합니다. 집에서 자조 주최하는 경우 홈 네트워크의 다음 섹션으로 이동하십시오. Docker-Compose 파일에 더 많은 앱 또는 기타 앱을 추가하려면 각 서비스에 레이블 섹션을 추가하고 하위 도메인을 URL을 원하는 것으로 변경하면됩니다.
개인 IP 주소 (일부 라우터 뒤)를 사용하여 서버 에서이 안내서를 수행 한 경우 라우터의 구성 페이지와 전진 포트 80 및 443을 서버의 개인 IP 주소로 열어야합니다. 각 라우터에는 다른 구성 페이지가 있기 때문에이 작업을 수행하는 방법에 대해서는 지시 할 수 없지만 Router + "포트 전달"을 검색하기 만하면됩니다. 여기있는 동안 서버에 정적으로 할당 된 개인 IP가 있는지 확인하십시오. 이렇게하면 서버가 DHCP 풀에서 새 IP를 재부팅하고 새 IP를 할당하면 많은 두통이 절약됩니다.
동적 DNS 설정은 전적으로 선택 사항입니다. 인터넷 서비스 제공 업체는 일반적으로 주택 홈 사용자에게 정적 공개 IP 주소를 할당하지 않습니다. 어떤 이유로 케이블 모뎀/라우터가 재설정되었음을 알 수 있습니다. 모뎀/라우터가 온라인으로 돌아온 후 ISP의 DHCP에 의해 새로운 공개 IP 주소가 할당되었습니다. 이 경우에는 두 가지 옵션이 있습니다.
새 공개 IP 주소 (https://diagnostic.opendns.com/myip로 이동)를 수동으로 찾아 DNS의 새로운 IP 주소를 DNS 제공 업체와 함께 레코드에 맞도록 IP-Address 섹션을 변경하십시오. Mine은 Namecheap의 기본 DN입니다.
동적 DNS (DDNS)를 설정합니다. DDNS는 홈 서버 내에서 최소한의 웹 응용 프로그램을 실행하여 현재 사용중인 IP 주소에 대한 업데이트를 주기적으로 DNS 제공 업체에 보냅니다. DNS 제공 업체가 할당 한 PassKey (S)를 통해 DNS 제공 업체에 인증되며 IP 주소가 변경되면 DNS 제공 업체가 A를 자동으로 업데이트합니다. https://github.com/qdm12/ddns-updater를 참조하십시오
컨테이너는 Namecheap, Cloudflare, Godaddy, Duckdns 및 Dreamhost를 지원합니다. 스크립트가 컨테이너 소유자와의 지침에 따라 스크립트가 요청할 때 필요한 모든 매개 변수가 있는지 확인하십시오. CloudFlare를 설정하는 경우 CloudFlare API 호출에서 내 GIST를 참조하십시오.
이것은 전적으로 선택 사항입니다. Traefik 대시 보드는 웹 프록시 뒤의 응용 프로그램에 대한 정보를 제공합니다. 웹 대시 보드의 구성을 자동화 할 수있는 조건부를 추가했습니다. 아래에있는 섹션을 포함한 'htpasswd'가 필요합니다. HTPasswd는 해시 비밀번호가있는 사용자 이름 일뿐입니다. 아래의 'htpasswd를 생성하려면'을 참조하십시오. Traefik 대시 보드가 구성되면 https://dash.YOUR-DOMAIN.TLD 에서 팝업되는 대화 상자에 사용자 이름과 비밀번호를 입력하면됩니다.
이것은 전적으로 선택 사항입니다. 모든 앱에 추가 보호 계층을 갖기를 원한다면 Traefik.toml 파일에서 htpasswd를 구성 할 수 있습니다. HTPasswd는 해시 비밀번호가있는 사용자 이름 일뿐입니다. 스크립트에 조건부를 추가하여이를 구성 할 조건부를 추가했습니다. 스크립트가 요청할 때 입력하는 "htpasswd"만 있으면됩니다. WebApp 중 하나를 방문하려면 대화 상자에서 선택한 사용자 이름과 비밀번호를 입력해야합니다.
htpasswd -nb user password사용자를 원하는 사용자 이름으로 바꾸고 암호를 원하는 비밀번호로 교체하십시오. 또는
http://www.htaccesstools.com/htpasswd-generator/원하는 사용자 이름과 암호를 입력 한 다음 해당 문자열을 복사하여 요청할 때 스크립트에 입력하십시오.
Docker Image 업데이트 가벼운 동적 DNS에 대해 GitHub 사용자 QDM12. QDM12/DDNS-Updater
이 스크립트에 대한 기여는 Github 사용자 Szepeviktor에게
Docker Hub에서 최고의 Dokuwiki Docker 이미지를 위해 Miroslav Prasil에게.