From 9a4d28d9346791957e01bb910a51180af818a4dc Mon Sep 17 00:00:00 2001 From: HypoxiE Date: Mon, 25 Aug 2025 14:02:15 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=20=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC?= =?UTF-8?q?=20=D0=B8=D0=BD=D0=B8=D1=86=D0=B8=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 16 ---------------- init.py | 40 +++++++++------------------------------- 2 files changed, 9 insertions(+), 47 deletions(-) diff --git a/Dockerfile b/Dockerfile index 451bb8a..1c68f89 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,3 @@ -# FROM debian:stable-slim - -# # Установим утилиты для скачивания и распаковки -# RUN apt-get update && apt-get install -y wget tar ca-certificates \ -# && rm -rf /var/lib/apt/lists/* - -# WORKDIR /opt/x-ui - -# # Скачиваем и распаковываем конкретный релиз -# RUN wget https://github.com/MHSanaei/3x-ui/releases/download/v2.6.6/x-ui-linux-amd64.tar.gz \ -# && tar -xvf x-ui-linux-amd64.tar.gz --strip-components=1 \ -# && rm x-ui-linux-amd64.tar.gz \ -# && chmod +x x-ui - -# CMD ["./x-ui"] - FROM alpine:3.18 RUN apk add --no-cache bash curl tar ca-certificates diff --git a/init.py b/init.py index 75cf0c2..665f3ec 100644 --- a/init.py +++ b/init.py @@ -1,46 +1,24 @@ +# файл для инициализации docker-compose.yml + import os import random import sys with open("docker-compose.yml", "w+") as file: name = os.getlogin() - if "--ui_p" in sys.argv: - ui_port = sys.argv[sys.argv.index("--ui_p") + 1] - else: - ui_port = input("Укажите порт для ui: ") - - if "--client_p" in sys.argv: - inp_ports = sys.argv[sys.argv.index("--client_p") + 1] - else: - inp_ports = input("Укажите порты для проксирования через пробел в формате 'host_port:docker_port' или просто 'host_port'\n: ") - - f_list_ports = [] - list_ports: set[int] = {int(ui_port)} - for port in inp_ports.split(" "): - if ":" in port: - if list_ports & {int(port.split(":")[1])}: - raise ValueError(f"Некоторые порты в докере повторяются ({int(port.split(":")[1])})") - f_list_ports.append(f" - {port}") - list_ports.add(int(port.split(":")[1])) - else: - new_port = int(ui_port) - while new_port in list_ports: - new_port = random.randint(10_000, 65_536) - f_list_ports.append(f" - {port}:{new_port}") - list_ports.add(new_port) - - print("Готово! Теперь вы сможете использовать клиентов на следующих портах:", ", ".join(str(i) for i in list_ports ^ {int(ui_port)})) file.write(''' services: {name}-3x-ui: build: . container_name: {name}-3x-ui - ports: - - "{ui_port}:2053" # port for ui - # client ports -{clients_ports} volumes: - ./data:/opt/x-ui/db + networks: + - nginx_network_external restart: always -'''.format(name=name, ui_port=ui_port, clients_ports='\n'.join(f_list_ports))) \ No newline at end of file + +networks: + nginx_network_external: + external: true +'''.format(name=name)) \ No newline at end of file