SimpleLogin
Ini adalah konfigurasi docker-compose self-hosted untuk SimpleLogin.
Prasyarat
- server Linux (bisa berupa VM atau server fisik). Dokumen ini menunjukkan pengaturan untuk Ubuntu 18.04 LTS tetapi langkah-langkahnya dapat disesuaikan untuk distribusi Linux populer lainnya. Karena sebagian besar komponen berjalan sebagai container Docker dan Docker bisa cukup berat, disarankan memiliki minimal 2 GB RAM. Server harus memiliki port 25 (email), 80, 443 (untuk webapp), 22 (supaya Anda bisa ssh ke dalamnya) terbuka.
- sebuah domain yang dapat Anda konfigurasikan DNS-nya. Ini bisa berupa sub-domain. Dalam dokumen ini, misalkan domainnya adalah
mydomain.comuntuk email danapp.mydomain.comuntuk webapp SimpleLogin. Pastikan untuk mengganti nilai ini dengan nama domain dan subdomain Anda setiap kali muncul di dokumen. Trik yang biasa kami gunakan adalah mengunduh file README ini ke komputer Anda dan mengganti semua kemunculanmydomain.comdanapp.mydomain.comdengan domain Anda.
bash (atau shell yang kompatibel dengan bash seperti zsh) sebagai shell. Jika Anda menggunakan “shell” lain seperti fish, pastikan untuk menyesuaikan perintahnya.- Beberapa paket utilitas yang digunakan untuk memverifikasi pengaturan. Instal dengan:
sudo apt update \
&& sudo apt install -y net-tools dnsutilsKonfigurasi DNS
_Lihat dokumentasi referensi untuk detail lebih lanjut_
Harap diperhatikan bahwa perubahan DNS dapat memerlukan waktu hingga 24 jam untuk tersebar. Namun, dalam praktiknya biasanya jauh lebih cepat (~1 menit dalam pengujian kami). Dalam pengaturan DNS, kita biasanya menggunakan domain dengan tanda titik (.) di akhir untuk memaksa penggunaan domain absolut.Anda perlu mengatur catatan DNS berikut:
- A: Memetakan domain Anda ke alamat IPv4 server Anda.
- AAAA: Memetakan domain Anda ke alamat IPv6 server Anda.
- MX: Mengarahkan email masuk ke server email Anda (termasuk wildcard
*). - PTR: Memetakan alamat IP server Anda kembali ke nama domain Anda.
- DKIM: Menandatangani email keluar secara digital untuk memverifikasi keasliannya.
- DMARC: Mendefinisikan bagaimana penerima email harus menangani pesan yang gagal otentikasi.
- SPF: Memberikan otorisasi kepada server email tertentu untuk mengirim email dari domain Anda.
- CAA: Menentukan otoritas sertifikat mana yang diizinkan untuk menerbitkan sertifikat SSL untuk domain Anda.
- MTA-STS: Memastikan koneksi yang aman dan terenkripsi antar server email.
- TLS-RPT: Melaporkan kegagalan koneksi TLS untuk meningkatkan keamanan pengiriman email.
Docker
Jika Anda belum menginstal Docker di server Anda, silakan ikuti langkah-langkah pada Docker CE untuk Ubuntu untuk menginstal Docker.
Anda juga dapat menginstal Docker menggunakan skrip docker-install yang
curl -fsSL https://get.docker.com | shAktifkan IPv6 untuk jaringan bridge default
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64",
"experimental": true,
"ip6tables": true
}Prosedur ini akan memandu Anda menjalankan seluruh stack menggunakan kontainer Docker. Ini mencakup:
- traefik
- Kontainer SimpleLogin app
- postfix
- Clone repository ini ke
/opt/simplelogin - Salin
.env.exampleke.envdan atur nilai yang sesuai. - setel variabel
DOMAINke domain Anda. - setel variabel
SUBDOMAINke domain Anda. Nilai default adalahapp. - setel variabel
POSTGRES_USERagar sesuai dengan kredensial postgres (jika memulai dari awal, gunakansimplelogin). - setel
POSTGRES_PASSWORDagar sesuai dengan kredensial postgres (jika memulai dari awal, tetapkan ke kunci acak). - setel
FLASK_SECRETke kunci rahasia sembarang.
Postgres SQL
Repository ini menjalankan postgres SQL di dalam kontainer Docker.
Peringatan: versi sebelumnya dari repository ini menjalankan versi 12.1.
Silakan merujuk ke dokumentasi referensi untuk detail lebih lanjut dan
instruksi upgrade.
Menjalankan aplikasi
Jalankan aplikasi menggunakan perintah berikut:
docker compose up --detach --remove-orphans --build && docker compose logs -fAnda mungkin ingin mengatur Certificate Authority Authorization (CAA) pada tahap ini.
Langkah selanjutnya
Jika semua langkah di atas berhasil, buka
Secara default, akun baru bukan premium sehingga tidak memiliki alias tanpa batas. Untuk menjadikan akun Anda premium, silakan masuk ke database, tabel "users" dan setel kolom "lifetime" menjadi "1" atau "TRUE":
docker compose exec -it postgres psql -U myuser simplelogin
UPDATE users SET lifetime = TRUE;
\q
Setelah Anda membuat semua akun login yang diinginkan, tambahkan baris ini ke .env untuk menonaktifkan pendaftaran lebih lanjut:
DISABLE_REGISTRATION=1
DISABLE_ONBOARDING=true
Kemudian, untuk memulai ulang aplikasi web, terapkan: docker compose restart appLain-lain
Konfigurasi Postfix - Spamhaus
Proyek Spamhaus memelihara daftar alamat IP yang dikenal sebagai sumber SPAM. Anda dapat memeriksa apakah alamat IP tertentu ada dalam daftar tersebut dengan mengirimkan query ke infrastruktur DNS.
Karena Spamhaus memblokir query yang berasal dari DNS-Resolver publik (open) (lihat:
Tempelkan kunci ini sebagai SPAMHAUS_DQS_KEY dalam .env Anda
Jika tidak ada kunci DQS yang diberikan, kontainer postfix Anda akan memeriksa apakah mirror publik Spamhaus menerima query-nya dan menggunakannya sebagai gantinya. Jika Spamhaus menolak query dari kontainer postfix Anda ke mirror publik, maka akan dinonaktifkan sepenuhnya.
Konfigurasi Postfix - Alias virtual
Konfigurasi postfix mendukung alias virtual menggunakan file postfix/conf.d/virtual dan postfix/conf.d/virtual-regexp.
File-file tersebut secara otomatis dibuat saat startup berdasarkan postfix/templates/virtual.tpl
dan file template postfix/templates/virtual-regexp.tpl.
Konfigurasi default adalah sebagai berikut:
#### virtual.tpl
File virtual mendukung pengaturan virtual_alias_maps pada postfix.
File ini mencakup aturan yang memetakan unknown@mydomain.com ke contact@mydomain.com untuk mendemonstrasikan penerimaan
dan email dari alamat tertentu yang tidak sesuai dengan alias yang ada, ke alamat lain yang memang ada.
``postfix-conf
unknown@mydomain.com contact@mydomain.com
#### virtual-regexp.tpl
File virtual-regexp mendukung pengaturan postfix virtual_alias_maps.
File ini mencakup aturan yang mengubah email yang ditujukan ke subdomain sembarang, yang tidak sesuai
dengan alias yang ada, menjadi alias baru yang termasuk dalam direktori yang namanya diambil dari subdomain tersebut.
Alias tersebut dapat dibuat secara otomatis jika belum ada.
postfix-conf
/^([^@]+)@([^.]+)\.mydomain.com/ $2/$1@mydomain.com
`
Misalnya, email yang dikirim ke someone@directory.mydomain.com akan diarahkan ke directory/someone@mydomain.com` oleh postfix.
Cara Upgrade dari 3.4.0
_Bagian ini telah dipindahkan ke dokumentasi referensi_
Cara Upgrade dari pengaturan berbasis NGinx sebelumnya
_Bagian ini telah dipindahkan ke dokumentasi referensi_
--- Tranlated By Open Ai Tx | Last indexed: 2026-03-15 ---