このスクリプトは、パブリックWebAppsのLetsencrypt CERTを使用してTraefik Reverse Proxyを構成します。私の例では、Dokuwiki(Markdown Wikiアプリを使用した優れたプレーンテキスト)を設定しました。これを行っている間、この結果を達成するための本当に簡単なガイドはないと感じました。
注:これは現在、Traefik V1で動作します。 V2へのサポートはまもなく登場します。
Namecheapを通じてドメインを購入しました。どんなドメインレジストラを経験しても、DNSレコードを適切にセットアップする必要があります。 Namecheapがどれほどシンプルであったかをお勧めしますが、それらはすべて同じです。プロバイダーがWildCard DNSレコードを許可している限り、行くのは良いはずです。 Namecheapの「Advanced DNS」タブでこれを追加するだけで、IP-Address値をサーバーのパブリックIPアドレスに変更します。
| タイプ | ホスト | 価値 | TTL |
|---|---|---|---|
| レコード | * | IPアドレス | 自動 |
レポをクローンする: 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アドレスに開いてください。各ルーターには異なる構成ページがあるため、これを行う方法を説明することはできませんが、ルーター +「ポート転送」をGoogleを検索するだけです。ここにいる間、サーバーに静的に割り当てられたプライベートIPがあることを確認してください。これにより、サーバーが再起動され、DHCPプールから新しいIPを割り当てた場合、大量の頭痛が節約されます。
動的DNSのセットアップは完全にオプションです。インターネットサービスプロバイダーは、通常、住宅ユーザーに静的なパブリックIPアドレスを割り当てません。いつかケーブルモデム/ルーターが何らかの理由でリセットされていることがわかります。モデム/ルーターがオンラインで戻ってきた後、ISPのDHCPによって新しいパブリックIPアドレスが割り当てられた可能性があります。この例では、2つのオプションがあります。
新しいパブリックIPアドレスを手動で見つけます(https://diagnostic.opendns.com/myipにアクセスしてください)、DNSの新しいIPアドレスをDNSプロバイダーのレコードと一致させるようにIPアドレスセクションを変更します。鉱山はNamecheapの基本的なDNSです。
動的DNS(DDN)をセットアップします。 DDNSは、ホームサーバー内から最小限のWebアプリケーションを実行し、現在使用しているIPアドレスの更新を定期的にDNSプロバイダーに送信します。 DNSプロバイダーによって割り当てられたPassKeyを介してDNSプロバイダーに認証され、IPアドレスが変更された場合、DNSプロバイダーはAレコードを自動的に更新します。 https://github.com/qdm12/ddns-updaterで、セットアップの手順に従うことをお勧めします
コンテナは、Namecheap、CloudFlare、GoDaddy、Duckdns、およびDreamHostをサポートしています。コンテナの所有者との指示に従って、スクリプトがそれらを要求するときに必要なすべてのパラメーターがあることを確認してください。 CloudFlareをセットアップする場合は、CloudFlare APIの私の要点をご覧ください。
これは完全にオプションです。 Traefikダッシュボードは、Webプロキシの背後にあるアプリケーションに関する情報を提供します。 Webダッシュボードの構成を自動化できる条件付きを追加しました。 「htpasswd」が必要になります。これには、以下のセクションを取得する方法に関するセクションが含まれています。 HTPassWDは、ハッシュされたパスワードを備えたユーザー名です。以下の「htpasswdを生成する」を参照してください。 Traefikダッシュボードが構成されている場合、 https://dash.YOUR-DOMAIN.TLDでポップアップするダイアログボックスにユーザー名とパスワードを入力する必要があります。
これは完全にオプションです。すべてのアプリに追加の保護層があるようにしたい場合は、traefik.tomlファイルでhtpasswdを構成できます。 HTPassWDは、ハッシュされたパスワードを備えたユーザー名です。スクリプトにこれを構成する条件付きを追加しました。必要なのは、スクリプトがそれを要求したときに入力する「htpasswd」だけです。 WebAppsの1つにアクセスする場合は、表示されるダイアログボックスに選択したユーザー名とパスワードを入力する必要があります。
htpasswd -nb user passwordを実行しますユーザーを目的のユーザー名に、パスワードを目的のパスワードに置き換えるようにします。または
http://www.htaccesstools.com/htpasswd-generator/目的のユーザー名とパスワードを入力してから、その文字列をコピーして、尋ねられたらスクリプトに入力します。
GitHubユーザーQDM12に、Dockerイメージを更新する軽量の動的DNSについて。 QDM12/DDNS-Updater
このスクリプトへの貢献については、GitHubユーザーSzepeviktorに。
Docker Hubで最高のDokuwiki DockerイメージのためにMiroslav Prasilに。