Bu yazı Pangolin kurulumu ile ilgilidir. Önce Pangolin’in ne olduğundan bahsedelim.
Pangolin yazılımı Cloudflare Tunnels’e karşı açık kaynak iyi bir alternatiftir. Tersine Poxy’dir. (Reverse proxy)
Biz bu yazılımı hosting firmalarının yüksek depolama ücretleri sebebiyle kullanıyoruz. DeHost firmasından kiraladığımız küçük bir sunucuya Pangolin
kurduk, kendi cihazımıza da MinIO S3
yazılımını kurduk böylece (Mastodon temelli) Arslanşah Sosyal Medya’nın medya depolama kısmını kendi cihazımıza taşıyarak hosting firmalarının yüksek depolama maaliyetlerinden kurtulduk.
Döküman Pardus Server 23
sürümünde uygulamalı biçimde hazırlanmıştır.
Hazırlanış tarihi 23.09.2025
Kurulum Adımları
Ön Hazırlık
İlk olarak yazılımımızın bağımlı olduğu paketleri kurmamız gerekmekte.
sudo apt install apt-transport-https ca-certificates curl gpg
Ardından sunucumuza docker depolarını ekleyerek docker kurulumunu sağlayacağız.
Docker depoloarının GPG anahtarını sistemimize kaydedelimm.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Şimdi Pardus sürümümüze göre Docker depolarınını ekleeyelim.
Pardus 23 (Debian 12 / Bookworm) için:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Pardus 25 (Debian 13 / Trixie) için:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian trixie stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Deppoları sisteme ekleedikten sonra güncellemeleri alalım.
sudo apt update
İsteğe bağlı: Burada güncelleme varsa sistemi güncelleyip yeniden başlatabilirsiniz.
Docker Kurulumu
Docker paketlerini kuralım.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker’ın sağlıklı biçimde kurulup çalışıp çalışmadığını kontrol edelim.
systemctl is-active docker
Eğer burada active
değerini görüyorsanız docker kurulmuş ve çalışıyor demektir.
Pangolin Kurulumu
Pangolin kurulumunu kolaylaştırmak için gerekli bir script mevcut, bu scripti cihazımıza indirelim.
curl -fsSL https://digpangolin.com/get-installer.sh | bash
Çıktı:
[INFO] Installing latest version of installer…
[INFO] Fetching latest version from GitHub…
[INFO] Latest version: v1.10.2
[INFO] Detected platform: linux_amd64
[INFO] Install directory: /home/batuhan
[INFO] Downloading installer from https://github.com/fosrl/pangolin/releases/download/1.10.2/installer_linux_amd64
[INFO] Installer downloaded to /home/batuhan/installer
[INFO] Installation successful!
[INFO] Installer is ready to use!
Eğer çıktının sonunda başarılı
veya hazır
(ing. succesfull
, ready
) ibarelerini görüyorsanız bu script başarıyla çalışmıştır.
Kodu çalıştırdığınız yere installer
isimli bir dosya gelmiş olmalı.
(Bulunduğunuz konumun dosyalarını ls
komutu ile görebilirsiniz.)
bu dosyaya sudo chmod +x installer
diyerek çalışma izni vermemiz gerekli. Hemen ardından ise bu dosyayı sudo ./installer
komutu ile çalıştıracağız ve kuruluma başlayacağız. Kurulum sırasında sorular ve bilgiler sorulacak.
Bu soruları kendi isteğiniz, amaç ve kullanım durumunuza göre cevaplandırabilirsiniz. Bu makale en temel ve basit kurulumu baz alarak hazırlanmıştır.
=== Basic Configuration ===
-
Do you want to install Pangolin as a cloud-managed (beta) node? (yes/no): sorusuna cevabımız
no
olmalıdır. -
Enter your base domain (no subdomain e.g. example.com): sorusuna ana alan adımızı girmeliyiz. (alt alan adı olmadan) örnek:
pangolin.test
-
Enter the domain for the Pangolin dashboard (default: pangolin.pangolin.test): bu tercih meselesidir. Burada pangolin arayüzünün nerede çalışacağını belirliyorsunuz. biz varsayılan biçimde kurulumu gerçekleştirmek için direkt
enter
tuşuna basarak bu kısmı geçtik. Yani Pangolin arayüzünepangolin.pangolin.test
alt alan adından erişeceğiz. -
Enter email for Let’s Encrypt certificates: SSL sertifikası oluşturmak için bir email adresi istiyor. Herhangi bir email adresi girebilirsiniz. örnek:
ornek@vuhuv.com
-
Do you want to use Gerbil to allow tunneled connections (yes/no) (default: yes): bunu varsayılan olan
yes
olarak seçtik. Bu sebeple hiçbir şey yazmadanenter
tuşuna basarak geçtik.
=== Email Configuration ===
- Enable email functionality (SMTP) (yes/no) (default: no): biz email yapılandırmak istemedik, bu sebeple varsayılan değer olan
no
uygulansın diyeenter
tuşuna bastık.
Bazı kişiler burayı yapmak isteyecektir. Yazılıma herhangi bir email bağlamak istiyorsanız burayayes
yazabilirsiniz.
=== Advanced Configuration ===
Is your server IPv6 capable? (yes/no) (default: yes): buraya no
cevabını veriyoruz. (Sunucudan sunucuya göre değişim gösterebilir ancak genellikle no
denmesi gerekir.)
Bu adımlardan sonra şu yazıyı görüyorsanız bu kısımlar başarıyla sonuçlanmış demektir.
=== Generating Configuration Files ===
Configuration files created successfully!
Ancak henüz bitmedi, soracağı dört soru daha var. İkisi kurulum öncesi, ikisi kurulum sonrasında.
=== Starting installation ===
-
Would you like to install and start the containers? (yes/no) (default: yes): cevabımız varsayılan cevap olan
yes
olacağı için hiçbir şey yazmadanenter
tuşuna basıp geçtik. -
Would you like to run Pangolin as Docker or Podman containers? (default: docker): kurulumda
docker
kullanacağımız için herhangi bir cevap yazmadanenter
tuşuna basıp geçtik.
Ardından şöyle bir kurulum aşaması başlayacaktır:
Pulling the container images…
[+] Pulling 27/27
traefik Pulled 91.9s
9824c27679d3 Pull complete 6.9s
bb80887cf619 Pull complete 7.1s
bacb9cc999f7 Pull complete 88.3s
06eb2b935e74 Pull complete 88.4s
pangolin Pulled 250.1s
6a088b2daae0 Pull complete 95.5s
52719e552fdf Pull complete 95.7s
016c0e952111 Pull complete 95.7s
f101252d8a7d Pull complete 95.8s
82915740be99 Pull complete 95.9s
54d9c996622e Pull complete 96.0s
7d64e80ae6c0 Pull complete 244.6s
8d17b5cb2625 Pull complete 245.7s
a2c245d2e1a5 Pull complete 245.8s
1a6c12b67926 Pull complete 246.0s
7d4eeb9181e7 Pull complete 246.1s
0053a96b4383 Pull complete 246.2s
05928576c7a7 Pull complete 246.3s
874d2ba43900 Pull complete 246.3s
a8e7f939c3a6 Pull complete 246.5s
gerbil Pulled 84.5s
b71466b94f26 Pull complete 80.5s
62f3b3d0017a Pull complete 80.7s
9d48c30d4eaf Pull complete 80.8s
c433e2c89bbd Pull complete 80.9s
7a3cad4e25a5 Pull complete 80.9s
Starting containers…
[+] Running 5/5
Network pangolin Created 0.3s
Volume pangolin_pangolin-data Created 0.0s
Container pangolin Healthy 14.0s
Container gerbil Started 12.2s
Container traefik Started 12.8s
Çıktı böyle bir şey ise kurulum başarılı olmuştur. Şimdi bize CrowdSec
ile ilgili iki tane soru soracak.
=== CrowdSec Install ===
-
Would you like to install CrowdSec? (yes/no) (default: no):
CrowdSec
kurulumunun yapılmasını istediğimiz için bu soruya varsayılanın aksineyes
cevabı veriyoruz. -
Ardından şöyle bir metin belirecek ve ardından CrowdSec yönetimi ile ilgili son bir soru soracak.
This installer constitutes a minimal viable CrowdSec deployment. CrowdSec will add extra complexity to your Pangolin installation and may not work to the best of its abilities out of the box. Users are expected to implement configuration adjustments on their own to achieve the best security posture. Consult the CrowdSec documentation for detailed configuration instructions.
- Are you willing to manage CrowdSec? (yes/no) (default: no): bu soruya varsayılan cevap olan
no
cevabını vereceğiz. Bu sebeple hiç bir şey yazmadanenter
tuşuna basıyoruz.
Her şey tamam ise şöyle bir çıktıı sizi karşılayacaktır. Terminali kapatmayın. Buradaki Setup token
e ihtiyacımız var.
=== Setup Token ===
Waiting for Pangolin to generate setup token…
Setup token: inm3s748ox4nd9avguehmxmmu1mrxsoeThis token is required to register the first admin account in the web UI at:
https://pangolin.pangolin.test/auth/initial-setupSave this token securely. It will be invalid after the first admin is created.
Installation complete!
To complete the initial setup, please visit:
https://pangolin.pangolin.test/auth/initial-setup
Eğer Installation complete!
yazısını ve url görüyorsanız kurulum başarılı olmuş demektir. URL’ye basıp hesabımızı açalım. URL’ye griiş yaptıktan sonra sizi şöyle bir ekran karşılayacaktır.
Az önceki çıktıdaki Setup token
i alana kopyalayalım ve yönetici hesabımızı oluşturalım. Bu adımdan sonraki adımda sizden organisazyon oluşturmanızı isteyecek. Bu standart bir adım ancak burada bir husus var onu göstermem gerekli.
Burada Organization Name
ve Organization ID
’i istediğiniz ismi vereebilirsiniz.
Bizim yaptığımız gibi
Ancak alttaki subnet’e kendi ip adresinizi girmeniz daha iyi olabilir. (en azından biz öyle yaptık, aksini denemedik)
İp adresinizi öğrenmeniz gerekli. Bunun içinse uçbirime ip address
yazmanız gerekli. Oradan ip adresinizi bulmanız gerek.
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:87:c6:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.170/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
valid_lft 2938sec preferred_lft 2938sec
inet6 fe80::5054:ff:fe87:c646/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Benim ip adresim 192.168.122.170/24
olduğu için netsub kısmına ben bunu yazdım. Bunun yerine başka bir şey yazsaydım çalışır mı diye denemedim. Bu bilgi de yazının sonunda kalsın