Tim LinuxServer.io menghadirkan rilis kontainer lain yang menampilkan:
Temukan kami di:
SWAG - Gerbang Aplikasi Web Aman (sebelumnya dikenal sebagai letsencrypt, tidak ada hubungannya dengan Let's Encrypt™) menyiapkan server web Nginx dan membalikkan proxy dengan dukungan php dan klien certbot bawaan yang mengotomatiskan proses pembuatan dan pembaruan sertifikat server SSL gratis (Let's Encrypt dan ZeroSSL). Ini juga berisi fail2ban untuk pencegahan intrusi.
Kami memanfaatkan manifes buruh pelabuhan untuk kesadaran multi-platform. Informasi lebih lanjut tersedia dari buruh pelabuhan di sini dan pengumuman kami di sini.
Cukup menarik lscr.io/linuxserver/swag:latest
akan mengambil gambar yang benar untuk lengkungan Anda, namun Anda juga dapat menarik gambar lengkungan tertentu melalui tag.
Arsitektur yang didukung oleh gambar ini adalah:
Arsitektur | Tersedia | Menandai |
---|---|---|
x86-64 | ✅ | amd64-<tag versi> |
lengan64 | ✅ | arm64v8-<tag versi> |
armhf |
URL
subdomain yoursubdomain.duckdns.org
dan SUBDOMAINS
dapat berupa www,ftp,cloud
dengan validasi http, atau wildcard
dengan validasi dns. Anda dapat menggunakan gambar duckdns kami untuk memperbarui IP Anda di duckdns.org.http
, port 80 di sisi internet router harus diteruskan ke port 80 container inidns
, pastikan untuk memasukkan kredensial Anda ke file ini (atau json untuk beberapa plugin) yang sesuai di bawah /config/dns-conf
yoursubdomain.duckdns.org
, biarkan variabel SUBDOMAINS
kosong)*.yoursubdomain.duckdns.org
, setel variabel SUBDOMAINS
ke wildcard
)--cap-add=NET_ADMIN
diperlukan agar fail2ban dapat mengubah iptableshttps://yourdomain.url
untuk mengakses beranda default (akses http melalui port 80 dinonaktifkan secara default, Anda dapat mengaktifkannya dengan mengedit konfigurasi situs default di /config/nginx/site-confs/default.conf
)./config/log/letsencrypt
untuk melihat mengapa pembaruan gagal. Disarankan untuk memasukkan email Anda di parameter buruh pelabuhan sehingga Anda menerima pemberitahuan kedaluwarsa dari Let's Encrypt dalam keadaan seperti itu.SWAG menyertakan banyak plugin Certbot, tetapi tidak semua plugin dapat disertakan. Jika Anda memerlukan plugin yang tidak disertakan, cara tercepat untuk menyediakan plugin tersebut adalah dengan menggunakan Universal Package Install Docker Mod kami.
Tetapkan variabel lingkungan berikut pada penampung Anda:
DOCKER_MODS=linuxserver/mods:universal-package-install
INSTALL_PIP_PACKAGES=certbot-dns-<plugin>
Tetapkan kredensial yang diperlukan (biasanya ditemukan dalam dokumentasi plugin) di /config/dns-conf/<plugin>.ini
. Disarankan untuk mencoba mendapatkan sertifikat dengan STAGING=true
terlebih dahulu untuk memastikan plugin berfungsi seperti yang diharapkan.
dhparams.pem
.docker exec -it swag htpasswd -c /config/nginx/.htpasswd <username>
.htpasswd
. Untuk pengguna pertama, gunakan perintah di atas, untuk pengguna lain, gunakan perintah di atas tanpa tanda -c
, karena ini akan memaksa penghapusan .htpasswd
yang ada dan pembuatan yang baru/config/nginx/site-confs/default.conf
. Jangan ragu untuk memodifikasi file ini, dan Anda dapat menambahkan file conf lainnya ke direktori ini. Namun, jika Anda menghapus file default
, file default baru akan dibuat saat container dimulai.README.md
di bawah /config/nginx/proxy_confs
untuk petunjuk tentang cara mengaktifkannya. Konfigurasi preset berada dan diimpor dari repo ini.add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";
Ini akan meminta Google dkk untuk tidak mengindeks dan mencantumkan situs Anda. Berhati-hatilah dengan hal ini, karena pada akhirnya Anda akan dihapus dari daftar jika Anda meninggalkan baris ini di situs yang ingin Anda tampilkan di mesin pencari-v /path-to-swag-config:/swag-ssl
) dan di penampung lain, gunakan lokasi sertifikat /swag-ssl/keys/letsencrypt/
etc
yang berada di bawah /config
di wadah lain (mis. -v /path-to-swag-config/etc:/swag-ssl
) dan di wadah lain, gunakan lokasi sertifikat /swag-ssl/letsencrypt/live/<your.domain.url>/
(Ini lebih aman karena metode pertama membagikan seluruh folder konfigurasi SWAG dengan container lain, termasuk file www, sedangkan metode kedua hanya membagikan sertifikat SSL)cert.pem
, chain.pem
, fullchain.pem
dan privkey.pem
, yang dihasilkan oleh Certbot dan digunakan oleh nginx dan berbagai aplikasi lainnyaprivkey.pfx
, format yang didukung oleh Microsoft dan umum digunakan oleh aplikasi dotnet seperti Emby Server (tanpa kata sandi)priv-fullchain-bundle.pem
, sertifikat pem yang menggabungkan kunci pribadi dan rantai penuh, digunakan oleh aplikasi seperti ZNC/config/fail2ban/jail.local
.conf
, buatlah file .local
dengan nama yang sama dan edit file tersebut karena file .conf akan ditimpa ketika tindakan dan filter diperbarui. File .local
akan menambahkan apa pun yang ada di file .conf
(mis. nginx-http-auth.conf
--> nginx-http-auth.local
)docker exec -it swag fail2ban-client status
docker exec -it swag fail2ban-client status <jail name>
docker exec -it swag fail2ban-client set <jail name> unbanip <IP>
linuxserver/letsencrypt
lamaSilakan ikuti petunjuk pada postingan blog ini.
Untuk membantu Anda mulai membuat container dari gambar ini, Anda dapat menggunakan docker-compose atau docker cli.
---
services :
swag :
image : lscr.io/linuxserver/swag:latest
container_name : swag
cap_add :
- NET_ADMIN
environment :
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- URL=yourdomain.url
- VALIDATION=http
- SUBDOMAINS=www, # optional
- CERTPROVIDER= # optional
- DNSPLUGIN=cloudflare # optional
- PROPAGATION= # optional
- EMAIL= # optional
- ONLY_SUBDOMAINS=false # optional
- EXTRA_DOMAINS= # optional
- STAGING=false # optional
volumes :
- /path/to/swag/config:/config
ports :
- 443:443
- 80:80 # optional
restart : unless-stopped
docker run -d
--name=swag
--cap-add=NET_ADMIN
-e PUID=1000
-e PGID=1000
-e TZ=Etc/UTC
-e URL=yourdomain.url
-e VALIDATION=http
-e SUBDOMAINS=www, ` # optional `
-e CERTPROVIDER= ` # optional `
-e DNSPLUGIN=cloudflare ` # optional `
-e PROPAGATION= ` # optional `
-e EMAIL= ` # optional `
-e ONLY_SUBDOMAINS=false ` # optional `
-e EXTRA_DOMAINS= ` # optional `
-e STAGING=false ` # optional `
-p 443:443
-p 80:80 ` # optional `
-v /path/to/swag/config:/config
--restart unless-stopped
lscr.io/linuxserver/swag:latest
Kontainer dikonfigurasi menggunakan parameter yang diteruskan saat runtime (seperti di atas). Parameter ini dipisahkan oleh titik dua dan masing-masing menunjukkan <external>:<internal>
. Misalnya, -p 8080:80
akan mengekspos port 80
dari dalam container agar dapat diakses dari IP host pada port 8080
di luar container.
Parameter | Fungsi |
---|---|
-p 443 | Pelabuhan HTTPS |
-p 80 | Port Http (diperlukan untuk validasi http dan http -> pengalihan https) |
-e PUID=1000 | untuk UserID - lihat di bawah untuk penjelasannya |
-e PGID=1000 | untuk GroupID - lihat penjelasan di bawah |
-e TZ=Etc/UTC | tentukan zona waktu yang akan digunakan, lihat daftar ini. |
-e URL=yourdomain.url | Url teratas yang Anda kendalikan ( customdomain.com jika Anda pemiliknya, atau customsubdomain.ddnsprovider.com jika dns dinamis). |
-e VALIDATION=http | Metode validasi Certbot yang digunakan, pilihannya adalah http atau dns (metode dns juga memerlukan kumpulan variabel DNSPLUGIN ). |
-e SUBDOMAINS=www, | Subdomain yang ingin dicakup oleh sertifikat (dipisahkan koma, tanpa spasi) yaitu. www,ftp,cloud . Untuk sertifikat wildcard, setel ini persis ke wildcard (sertifikat wildcard hanya tersedia melalui validasi dns ) |
-e CERTPROVIDER= | Secara opsional tentukan penyedia sertifikat. Setel ke zerossl untuk sertifikat ZeroSSL (memerlukan akun ZeroSSL yang ada dan alamat email yang dimasukkan dalam EMAIL env var). Kalau tidak, defaultnya adalah Let's Encrypt. |
-e DNSPLUGIN=cloudflare | Diperlukan jika VALIDATION diatur ke dns . Pilihannya adalah acmedns , aliyun , azure , bunny , cloudflare , cpanel , desec , digitalocean , directadmin , dnsimple , dnsmadeeasy , dnspod , do , domeneshop , dreamhost , duckdns , dynu , freedns , gandi , gehirn , glesys , godaddy , google , he , hetzner , infomaniak , inwx , ionos , linode , loopia , luadns , namecheap , netcup , njalla , nsone , ovh , porkbun , rfc2136 , route53 , sakuracloud , standalone , transip , dan vultr . Juga perlu memasukkan kredensial ke dalam file ini (atau json untuk beberapa plugin) yang sesuai di bawah /config/dns-conf . |
-e PROPAGATION= | Secara opsional, ganti (dalam hitungan detik) waktu propagasi default untuk plugin dns. |
-e EMAIL= | Alamat email opsional yang digunakan untuk pemberitahuan kedaluwarsa sertifikat (Diperlukan untuk ZeroSSL). |
-e ONLY_SUBDOMAINS=false | Jika Anda ingin mendapatkan sertifikat hanya untuk subdomain tertentu, namun bukan domain utama (domain utama mungkin dihosting di komputer lain dan tidak dapat divalidasi), setel ke true |
-e EXTRA_DOMAINS= | Nama domain tambahan yang sepenuhnya memenuhi syarat (dipisahkan koma, tanpa spasi) mis. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org |
-e STAGING=false | Setel ke true untuk mengambil sertifikat dalam mode pementasan. Batasan nilai akan jauh lebih tinggi, namun sertifikat yang dihasilkan tidak akan lulus uji keamanan browser. Hanya untuk digunakan untuk tujuan pengujian. |
-v /config | File konfigurasi persisten |
Gambar ini menggunakan cap_add
atau sysctl
agar berfungsi dengan baik. Ini tidak diterapkan dengan benar di beberapa versi Portainer, sehingga gambar ini mungkin tidak berfungsi jika diterapkan melalui Portainer.
Anda dapat mengatur variabel lingkungan apa pun dari file dengan menggunakan tambahan khusus FILE__
.
Sebagai contoh:
-e FILE__MYVAR=/run/secrets/mysecretvariable
Akan mengatur variabel lingkungan MYVAR
berdasarkan isi file /run/secrets/mysecretvariable
.
Untuk semua gambar kami, kami menyediakan kemampuan untuk mengganti pengaturan umask default untuk layanan yang dimulai dalam kontainer menggunakan pengaturan opsional -e UMASK=022
. Ingatlah bahwa umask bukan chmod, ia mengurangi izin berdasarkan nilainya, ia tidak menambahkan. Silakan baca di sini sebelum meminta dukungan.
Saat menggunakan volume ( -v
flags), masalah izin dapat muncul antara OS host dan penampung, kami menghindari masalah ini dengan mengizinkan Anda menentukan PUID
pengguna dan PGID
grup.
Pastikan direktori volume apa pun di host dimiliki oleh pengguna yang sama yang Anda tentukan dan masalah izin apa pun akan hilang secara ajaib.
Dalam hal ini PUID=1000
dan PGID=1000
, untuk menemukan milik Anda gunakan id your_user
seperti di bawah ini:
id your_user
Contoh keluaran:
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
Kami menerbitkan berbagai Mod Docker untuk mengaktifkan fungsionalitas tambahan di dalam container. Daftar Mod yang tersedia untuk gambar ini (jika ada) serta mod universal yang dapat diterapkan pada salah satu gambar kami dapat diakses melalui lencana dinamis di atas.
Akses shell saat container sedang berjalan:
docker exec -it swag /bin/bash
Untuk memantau log kontainer secara realtime:
docker logs -f swag
Nomor versi kontainer:
docker inspect -f ' {{ index .Config.Labels "build_version" }} ' swag
Nomor versi gambar:
docker inspect -f ' {{ index .Config.Labels "build_version" }} ' lscr.io/linuxserver/swag:latest
Sebagian besar gambar kami bersifat statis, berversi, dan memerlukan pembaruan gambar serta pembuatan ulang container untuk memperbarui aplikasi di dalamnya. Dengan beberapa pengecualian (dicatat di readme.md yang relevan), kami tidak menyarankan atau mendukung pembaruan aplikasi di dalam penampung. Silakan lihat bagian Pengaturan Aplikasi di atas untuk melihat apakah gambar tersebut direkomendasikan.
Berikut adalah petunjuk untuk memperbarui kontainer:
Perbarui gambar:
Semua gambar:
docker-compose pull
Gambar tunggal:
docker-compose pull swag
Perbarui kontainer:
Semua kontainer:
docker-compose up -d
Kontainer tunggal:
docker-compose up -d swag
Anda juga dapat menghapus gambar lama yang menggantung:
docker image prune
Perbarui gambar:
docker pull lscr.io/linuxserver/swag:latest
Hentikan container yang sedang berjalan:
docker stop swag
Hapus wadah:
docker rm swag
Buat ulang container baru dengan parameter proses buruh pelabuhan yang sama seperti yang diinstruksikan di atas (jika dipetakan dengan benar ke folder host, folder dan pengaturan /config
Anda akan dipertahankan)
Anda juga dapat menghapus gambar lama yang menggantung:
docker image prune
Tip
Kami merekomendasikan Diun untuk pemberitahuan pembaruan. Alat lain yang secara otomatis memperbarui kontainer tanpa pengawasan tidak disarankan atau didukung.
Jika Anda ingin membuat modifikasi lokal pada gambar ini untuk tujuan pengembangan atau hanya untuk menyesuaikan logika:
git clone https://github.com/linuxserver/docker-swag.git
cd docker-swag
docker build
--no-cache
--pull
-t lscr.io/linuxserver/swag:latest .
Varian ARM dapat dibangun pada perangkat keras x86_64 dan sebaliknya menggunakan lscr.io/linuxserver/qemu-static
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
Setelah terdaftar, Anda dapat menentukan dockerfile yang akan digunakan -f Dockerfile.aarch64
.
priv-fullchain-bundle.pem
yang dihasilkan.certbot-dns-dynudns
.stream.conf
di dalam wadah untuk memungkinkan pengguna memasukkan blok mereka sendiri di nginx.conf
.google-domains
.STAGING=true
, dan kegagalan dalam pencabutan.ssl.conf
.SUBDOMAINS
var sebagai opsional.resolver.conf
dan patch untuk CVE-2021-32637
.dhparams.pem
sesuai RFC7919. worker_processes.conf
, yang menetapkan jumlah pekerja nginx, dan resolver.conf
, yang menetapkan Resolver DNS. Kedua file conf dibuat secara otomatis hanya pada permulaan pertama dan dapat dimodifikasi oleh pengguna nanti.CERTPROVIDER
env var. Perbarui plugin aliyun, domeneshop, inwx dan transip dns dengan nama plugin baru. Sembunyikan donoteditthisfile.conf
karena pengguna mengeditnya meskipun namanya. Menekan kesalahan yang tidak berbahaya ketika tidak ada konfigurasi proxy yang diaktifkan.