r3v3rs3'ü iki volume ile tek container'da çalıştırın

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:

OptionNedeni
-v r3v3rs3-config:/root/.config/r3v3rs3Hesaplar, proxy'ler, sertifikalar ve ACME kayıtları. Bu olmadan yeni bir container boş başlar.
-v r3v3rs3-data:/root/.local/share/r3v3rs3Audit log'u tutan log.db.
-p 80:80 -p 443:443Proxy'lerinizin kullandığı portlar. Panelde eklediğiniz her portu yayınlayın.
-p 127.0.0.1:46492:46492Yalnı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 SIGINTr3v3rs3 SIGINT ile düzgün kapanır. Bu olmadan docker stop on saniye bekler, sonra process'i öldürür.
--restart unless-stoppedContainer 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.

  1. Panelde bir port ekleyin, örneğin HTTP protokolü ile 0.0.0.0:80.
  2. Adım 1'deki -p 80:80 option'ı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:

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

Sonraki adımlar