Docker ile kurulum
r3v3rs3'ü tek bir container çalıştırır. İki volume config'i ve veriyi saklar, böylece yükseltme yalnız image'ı değiştirir.
Image ghcr.io/kilimcininkoroglu/r3v3rs3 adresindedir. Distroless bir image'dır: içinde r3v3rs3 binary'si vardır, shell yoktur. Bu yüzden docker exec yalnız r3v3rs3 komutunu çalıştırır, başka program çalıştırmaz.
Adım 1: Container'ı başlatın
$ docker run -d \
-v r3v3rs3-config:/root/.config/r3v3rs3 \
-v r3v3rs3-data:/root/.local/share/r3v3rs3 \
-p 80:80 \
-p 443:443 \
-p 127.0.0.1:46492:46492 \
--restart unless-stopped \
--stop-signal SIGINT \
--name r3v3rs3 \
ghcr.io/kilimcininkoroglu/r3v3rs3:latest
Her option'ın tek bir işi vardır:
| Option | Nedeni |
|---|---|
-v r3v3rs3-config:/root/.config/r3v3rs3 | Hesaplar, proxy'ler, sertifikalar ve ACME kayıtları. Bu olmadan yeni bir container boş başlar. |
-v r3v3rs3-data:/root/.local/share/r3v3rs3 | Audit log'u tutan log.db. |
-p 80:80 -p 443:443 | Proxy'lerinizin kullandığı portlar. Panelde eklediğiniz her portu yayınlayın. |
-p 127.0.0.1:46492:46492 | Yalnız host'ta açılan admin paneli. Image --webui 0.0.0.0:46492 ile başlar, yani container bütün interface'lerde dinler; bu binding onu sınırlar. |
--stop-signal SIGINT | r3v3rs3 SIGINT ile düzgün kapanır. Bu olmadan docker stop on saniye bekler, sonra process'i öldürür. |
--restart unless-stopped | Container reboot'tan sonra yeniden başlar. |
Adım 2: Admin hesabını oluşturun
$ docker exec -t -i r3v3rs3 r3v3rs3 add-user admin
password?: ******
Parola en az 8 karakter olmalıdır. http://localhost:46492/ adresini açın ve giriş yapın.
Uzak bir host'ta panelin portunu açmak yerine SSH ile ulaşın:
$ ssh -L 46492:127.0.0.1:46492 kullanici@sunucunuz
Adım 3: Port ekleyin
Bir proxy porta ihtiyaç duyar, container'ın da o portu yayınlaması gerekir.
- Panelde bir port ekleyin, örneğin HTTP protokolü ile
0.0.0.0:80. - Adım 1'deki
-p 80:80option'ının o portu yayınladığını kontrol edin.
Container'ın yayınlamadığı bir port yalnız container içinde dinler. Docker çalışan bir container'a yayınlanan port ekleyemez, bu yüzden docker rm yapın ve yeni -p option'ı ile docker run komutunu tekrar çalıştırın. Volume'lar her şeyi korur.
Başlangıç rehberi ilk proxy ile devam eder.
Docker Compose
Depoda host networking kullanan bir docker-compose.yml vardır:
$ curl -fsSLO https://raw.githubusercontent.com/KilimcininKorOglu/r3v3rs3/main/docker-compose.yml
$ docker compose up -d
$ docker compose exec r3v3rs3 r3v3rs3 add-user admin
Host networking hiçbir port yayınlamaz, panelde eklediğiniz her port host'ta hemen dinler. Yalnız Linux Docker host'unda çalışır. Dosyanın yanındaki bir .env dosyasındaki iki değişken kurulumu değiştirir:
R3V3RS3_WEBUI: admin paneli adresi. Varsayılan127.0.0.1:46492değeridir.R3V3RS3_VERSION: image tag'i. Varsayılanlatestdeğeridir.
Yükseltme
$ docker pull ghcr.io/kilimcininkoroglu/r3v3rs3:latest
$ docker rm -f r3v3rs3
$ docker run -d ... # Adım 1'deki aynı komut
Compose ile:
$ docker compose pull
$ docker compose up -d
Volume'lar config'i ve hesapları korur, yani hiçbir hesap yeniden oluşturulmaz. Birkaç host'u adım adım yükseltirken sürümü tag ile sabitleyin, örneğin :1.0.1.
Restart ne yapar
- Hesaplar, portlar, proxy'ler ve sertifikalar config volume'ünden geri gelir.
- Session'lar gelmez. r3v3rs3 onları memory'de tutar, bu yüzden her client yeniden giriş yapar.
- Cache'lenen response'lar ve rate limit sayaçları da memory'dedir ve boş başlar.
Sonraki adımlar
- Başlangıç: ilk port ve ilk proxy.
- Docker'dan proxy'ler: diğer container'larınız proxy'lerini label ile tanımlasın.
- Linux sunucuya kurulum: Docker'sız systemd kurulumu.