Script ini mengkonfigurasi proxy terbalik Traefik dengan LetSencrypt untuk webapp publik Anda. Dalam contoh saya, saya membuat Dokuwiki (teks polos yang sangat baik dengan aplikasi wiki Markdown.) Saat melakukan ini, saya merasa tidak ada panduan yang benar -benar sederhana untuk mencapai hasil ini, dan mungkin sedikit membingungkan bagi orang lain, jadi ini dia.
Catatan: Ini saat ini bekerja dengan Traefik V1. Dukungan untuk V2 akan segera datang.
Saya membeli domain saya melalui namecheap. Apa pun pendaftar domain yang Anda lalui, Anda harus membuat catatan DNS dengan benar melalui mereka. Saya merekomendasikan Namecheap karena betapa sederhananya itu, tetapi semuanya hampir sama. Selama penyedia memungkinkan catatan Wildcard DNS Anda harus baik untuk pergi. Di tab "Advanced DNS" Namecheap saya hanya menambahkan ini, ubah nilai IP-Address ke alamat IP publik server Anda:
| Jenis | Tuan rumah | Nilai | Ttl |
|---|---|---|---|
| Catatan | * | IP-TEPATKAN | Otomatis |
Kloning Repo: git clone https://github.com/Starttoaster/docker-traefik.git
Ubah Direktori: cd docker-traefik
Jalankan skrip: ./docker-traefik.sh
Ubah Direktori: cd /opt/traefik
Setelah Anda menjawab beberapa pertanyaan, skrip harus diselesaikan. Jika Anda berjalan di VPS (Cloud Server), Anda harus siap untuk menjalankan docker-compose up -d dan memunculkan aplikasi Anda. Jika Anda melakukan tuan rumah dari rumah, maka beralihlah ke bagian berikutnya untuk jaringan rumah. Jika Anda ingin menambahkan lebih banyak atau aplikasi lain ke file Docker-Compose, Anda hanya perlu menambahkan bagian Label ke setiap layanan dan cukup ubah subdomain ke apa yang Anda inginkan URL.
Jika Anda telah melakukan panduan ini di server menggunakan alamat IP pribadi (di belakang beberapa jenis router), pastikan untuk juga membuka halaman konfigurasi router Anda dan meneruskan port 80 dan 443 ke alamat IP pribadi server Anda. Saya tidak dapat menginstruksikan cara melakukan ini karena setiap router memiliki halaman konfigurasi yang berbeda, tetapi cukup cari Google untuk router + "penerusan port" Anda. Saat Anda di sini, pastikan server Anda memiliki IP pribadi yang ditugaskan secara statis. Ini akan menyimpan banyak sakit kepala jika server Anda pernah di -reboot dan ditugaskan IP baru dari kumpulan DHCP Anda.
Menyiapkan DNS dinamis sepenuhnya opsional. Penyedia layanan internet biasanya tidak menetapkan alamat IP publik statis untuk pengguna rumah perumahan. Anda mungkin menemukan suatu hari bahwa modem/router kabel Anda diatur ulang untuk beberapa alasan. Setelah modem/router kembali online, itu berpotensi diberikan alamat IP publik baru oleh DHCP ISP Anda. Dalam hal ini Anda memiliki dua opsi:
Temukan alamat IP publik baru Anda secara manual, (kunjungi: https://diagnostic.opendns.com/myip), dan ubah bagian IP-Address untuk mencocokkan alamat IP baru Anda di DNS Anda catatan dengan siapa pun penyedia DNS Anda. Milik saya menjadi DNS Dasar Namecheap.
Mengatur DNS Dynamic (DDNS). DDNS menjalankan aplikasi web minimal dari dalam server rumah Anda yang secara berkala mengirimkan pembaruan alamat IP apa yang saat ini Anda gunakan untuk penyedia DNS Anda. Ini mengautentikasi ke penyedia DNS melalui passkey yang ditetapkan oleh penyedia DNS, dan jika alamat IP Anda pernah berubah, penyedia DNS akan memperbarui catatan A mereka secara otomatis. Saya sarankan mengikuti instruksi pengaturan di sini: https://github.com/qdm12/ddns-prdater
Wadah ini mendukung Namecheap, Cloudflare, GoDaddy, Duckdns, dan Dreamhost. Pastikan Anda memiliki semua parameter yang diperlukan untuk ketika skrip meminta mereka dengan mengikuti instruksi dengan pemilik wadah. Jika menyiapkan CloudFlare, silakan lihat inti saya di CloudFlare API panggilan di sini.
Ini sepenuhnya opsional. Dasbor Traefik menawarkan beberapa informasi tentang aplikasi di balik proxy web Anda. Saya telah menambahkan kondisional yang memungkinkan Anda mengotomatiskan konfigurasi dasbor web. Anda akan memerlukan 'htpasswd' yang telah saya sertakan bagian di bawah ini tentang cara mendapatkannya. HTPASSWD hanyalah nama pengguna dengan kata sandi hash. Lihat 'untuk menghasilkan htpasswd' di bawah ini. Saat dasbor Traefik dikonfigurasi, Anda hanya perlu memasukkan nama pengguna dan kata sandi Anda di kotak dialog yang muncul di https://dash.YOUR-DOMAIN.TLD
Ini sepenuhnya opsional. Jika Anda ingin semua aplikasi Anda memiliki lapisan perlindungan tambahan maka Anda dapat mengonfigurasi htpasswd di file traefik.toml. HTPASSWD hanyalah nama pengguna dengan kata sandi hash. Saya telah menambahkan kondisional dalam skrip yang akan mengkonfigurasi ini untuk Anda. Yang Anda butuhkan hanyalah "htpasswd" untuk dimasukkan ketika skrip memintanya. Ketika Anda ingin mengunjungi salah satu Webapps Anda, Anda harus memasukkan nama pengguna dan kata sandi yang Anda pilih di kotak dialog yang muncul.
htpasswd -nb user passwordMemastikan untuk menggantikan pengguna dengan nama pengguna yang diinginkan, dan kata sandi dengan kata sandi yang diinginkan; atau
http://www.htaccesstools.com/htpasswd-generator/Cukup masukkan nama pengguna dan kata sandi yang Anda inginkan, lalu salin string itu dan masukkan dalam skrip saat diminta.
Kepada pengguna GitHub QDM12 untuk DNS Dinamis DNS yang ringan. Gambar Docker. QDM12/DDNS-UPDATER
Kepada pengguna GitHub Szepeviktor atas kontribusi mereka pada skrip ini.
Untuk Miroslav Prasil untuk gambar Docker Docker terbaik di Docker Hub.