rachkovii68 commited on
Commit
1e1c8d3
·
1 Parent(s): 629dbc0

Create Helpme.md

Browse files
Files changed (1) hide show
  1. Helpme.md +293 -0
Helpme.md ADDED
@@ -0,0 +1,293 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Полная инструкция по развертыванию x-ui с использованием Hugging Face, VDS1, Nginx и Chisel
2
+ Эта инструкция описывает полный процесс развертывания x-ui панели, доступной через Hugging Face Space, с использованием VDS1 в качестве прокси и Chisel для туннелирования трафика.
3
+
4
+ 1. Настройка VDS1 (vds1.iri1968.dpdns.org)
5
+ 1.1. Установка Nginx
6
+ sudo apt update
7
+ sudo apt install nginx -y
8
+ sudo systemctl enable nginx
9
+ sudo systemctl start nginx
10
+ 1.2. Настройка Nginx для проксирования
11
+ Создайте файл /etc/nginx/sites-available/x-ui.conf со следующим содержимым:
12
+
13
+ server {
14
+ listen 80;
15
+ server_name vds1.iri1968.dpdns.org; # Замените на ваш домен
16
+
17
+ # Перенаправление HTTP на HTTPS
18
+ return 301 https://$host$request_uri;
19
+
20
+ # Certbot challenge
21
+ location /.well-known/acme-challenge/ {
22
+ root /var/www/certbot;
23
+ }
24
+ }
25
+
26
+ server {
27
+ listen 443 ssl;
28
+ server_name vds1.iri1968.dpdns.org; # Замените на ваш домен
29
+
30
+ ssl_certificate /etc/letsencrypt/live/vds1.iri1968.dpdns.org/fullchain.pem; # Укажите правильный путь
31
+ ssl_certificate_key /etc/letsencrypt/live/vds1.iri1968.dpdns.org/privkey.pem; # Укажите правильный путь
32
+
33
+ # Certbot challenge
34
+ location /.well-known/acme-challenge/ {
35
+ root /var/www/certbot;
36
+ }
37
+
38
+ # Расположение по умолчанию - Nginx только для Certbot.
39
+ # Здесь не должно быть проксирования к Chisel.
40
+ location / {
41
+ try_files $uri $uri/ =404;
42
+ }
43
+ }
44
+ Затем включите сайт и перезапустите Nginx:
45
+
46
+ sudo ln -s /etc/nginx/sites-available/x-ui.conf /etc/nginx/sites-enabled/
47
+ sudo nginx -t
48
+ sudo systemctl restart nginx
49
+ 1.3. Установка Certbot и получение SSL-сертификатов (Let's Encrypt)
50
+ sudo apt install certbot python3-certbot-nginx -y
51
+ sudo certbot --nginx -d vds1.iri1968.dpdns.org # Замените на ваш домен и следуйте инструкциям
52
+ 1.4. Настройка Chisel Server
53
+ # Установите chisel на VDS1 (если еще не установлен)
54
+ # Загрузите последнюю версию chisel с https://github.com/jpillora/chisel/releases
55
+ # Пример для v1.10.1:
56
+ CHISEL_VERSION=1.10.1
57
+ wget https://github.com/jpillora/chisel/releases/download/v${CHISEL_VERSION}/chisel_${CHISEL_VERSION}_linux_amd64.gz -O /tmp/chisel.gz
58
+ gunzip /tmp/chisel.gz
59
+ mv /tmp/chisel /usr/local/bin/chisel
60
+ chmod +x /usr/local/bin/chisel
61
+
62
+ # Запустите Chisel сервер в фоновом режиме
63
+ # Он должен слушать на порту 80. Nginx будет проксировать к нему.
64
+ # Флаг --reverse важен для обратных туннелей.
65
+ # Для mTLS серверу необходимо верифицировать сертификат клиента.
66
+ # Предполагается, что client.crt, client.key, ca.crt присутствуют на VDS1.
67
+ nohup /usr/local/bin/chisel server --port 443 --reverse --tls-cert /etc/letsencrypt/live/vds1.iri1968.dpdns.org/fullchain.pem --tls-key /etc/letsencrypt/live/vds1.iri1968.dpdns.org/privkey.pem --tls-ca /home/igor04091968/ca.crt > /dev/null 2>&1 &
68
+ # Примечание: --tls-ca используется для проверки сертификата клиента. Предполагается, что /home/igor04091968/ca.crt является корневым CA, подписавшим client.crt.
69
+ 2. Настройка Hugging Face Space
70
+ 2.1. Подготовка Dockerfile
71
+ Создайте файл Dockerfile в директории huggingface-x-ui-final/ со следующим содержимым:
72
+
73
+ FROM debian:bullseye-slim
74
+
75
+ # Install necessary packages and clean up
76
+ RUN apt-get update && apt-get install -y \
77
+ dos2unix \
78
+ wget \
79
+ curl \
80
+ tar \
81
+ bash \
82
+ ca-certificates \
83
+ --no-install-recommends && \
84
+ rm -rf /var/lib/apt/lists/*
85
+
86
+ SHELL ["/bin/bash", "-c"]
87
+
88
+ # Install chisel
89
+ ARG CHISEL_VERSION=1.10.1
90
+ RUN wget https://github.com/jpillora/chisel/releases/download/v${CHISEL_VERSION}/chisel_${CHISEL_VERSION}_linux_amd64.gz -O /tmp/chisel.gz && \
91
+ gunzip /tmp/chisel.gz && \
92
+ mv /tmp/chisel /usr/local/bin/chisel && \
93
+ chmod +x /usr/local/bin/chisel
94
+
95
+ # Download and extract 3x-ui
96
+ RUN ARCH=$(uname -m) && \
97
+ if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi && \
98
+ if [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
99
+ wget -O /usr/local/x-ui-linux-${ARCH}.tar.gz \
100
+ "https://github.com/MHSanaei/3x-ui/releases/latest/download/x-ui-linux-${ARCH}.tar.gz" && \
101
+ mkdir -p /usr/local/x-ui/ && \
102
+ tar -zxvf /usr/local/x-ui-linux-*.tar.gz -C /usr/local/x-ui/ --strip-components=1 && \
103
+ rm /usr/local/x-ui-linux-*.tar.gz && \
104
+ chmod +x /usr/local/x-ui/x-ui && \
105
+ cp /usr/local/x-ui/x-ui.sh /usr/bin/x-ui
106
+
107
+ # Create directory for chisel certs and copy them
108
+ RUN mkdir -p /etc/chisel
109
+ COPY client.crt /etc/chisel/client.crt
110
+ COPY client.key /etc/chisel/client.key
111
+ COPY ca.crt /etc/chisel/ca.crt
112
+
113
+ # Copy the startup script
114
+ COPY start.sh /usr/local/bin/start.sh
115
+
116
+ # Make the script executable
117
+ RUN chmod +x /usr/local/bin/start.sh
118
+
119
+ # Expose the x-ui port
120
+ EXPOSE 2023
121
+
122
+ # Set the entrypoint to our startup script
123
+ RUN chmod -R 777 /usr/local/x-ui/
124
+ ENTRYPOINT ["/bin/bash", "-c", "/usr/local/bin/start.sh"]
125
+ 2.2. Подготовка start.sh скрипта
126
+ Создайте файл start.sh в директории huggingface-x-ui-final/ со следующим содержимым:
127
+
128
+ #!/bin/bash
129
+
130
+ # Set a writable directory for the x-ui database
131
+ export XUI_DB_FOLDER=/tmp
132
+
133
+ # Function to run chisel client in a loop
134
+ run_chisel() {
135
+ while true; do
136
+ echo "Starting chisel client with mTLS..."
137
+ /usr/local/bin/chisel client -v --auth "cloud:2025" --tls-cert /etc/chisel/client.crt --tls-key /etc/chisel/client.key --tls-ca /etc/chisel/ca.crt https://vds1.iri1968.dpdns.org:443 R:2023:127.0.0.1:2023
138
+ echo "Chisel client exited. Restarting in 5 seconds..."
139
+ sleep 5
140
+ ne
141
+ }
142
+
143
+ # Start chisel in the background
144
+ run_chisel &
145
+
146
+ # Wait a moment for the background process to start
147
+ sleep 2
148
+
149
+ # Set x-ui port
150
+ /usr/local/x-ui/x-ui setting -port 2023
151
+
152
+ # Set webBasePath
153
+ /usr/local/x-ui/x-ui setting -webBasePath /
154
+
155
+ # Reset x-ui admin credentials
156
+ /usr/local/x-ui/x-ui setting -username prog10 -password 04091968
157
+
158
+ # Start x-ui in the foreground
159
+ echo "Starting x-ui panel..."
160
+ cd /usr/local/x-ui
161
+ ./x-ui
162
+ 2.3. Развертывание на Hugging Face
163
+ Создайте новый Hugging Face Space:
164
+
165
+ Перейдите на Hugging Face Spaces.
166
+ Нажмите "Create new Space".
167
+ Выберите "Docker" в качестве SDK.
168
+ Укажите имя Space, например, your-username/x-ui-tunnel.
169
+ Выберите аппаратное обеспечение (например, CPU Basic).
170
+ Нажмите "Create Space".
171
+ Загрузите файлы в ваш Space:
172
+
173
+ Клонируйте ваш новый Space локально:
174
+ git clone https://huggingface.co/spaces/your-username/x-ui-tunnel cd x-ui-tunnel
175
+
176
+ * Скопируйте `Dockerfile`, `start.sh`, `client.crt`, `client.key`, `ca.crt` из вашей локальной директории `cloud-google-marzban-settings-repo/huggingface-x-ui-final/` в клонированную директорию Space.
177
+ * Создайте файл `README.md` в корневой директории Space со следующим содержимым:
178
+ ```markdown
179
+ ---
180
+ license: mit
181
+ title: x-ui-tunnel
182
+ sdk: docker
183
+ emoji: 🚀
184
+ colorFrom: gray
185
+ colorTo: indigo
186
+ pinned: true
187
+ app_port: 2023 # This is the port that x-ui is listening on inside the Docker container
188
+ persistent_storage: true
189
+ ---
190
+ # x-ui Tunnel
191
+
192
+ This Hugging Face Space runs an x-ui panel accessible via a Chisel reverse tunnel.
193
+ **Примечание:** `app_port` в `README.md` должен соответствовать удаленному порту обратного туннеля, который равен `8000` в нашем `start.sh` (`R:8000:127.0.0.1:2023`). Это порт, который будет открыт Hugging Face.
194
+ Отправьте изменения в Hugging Face:
195
+ git add . git commit -m "Initial x-ui tunnel setup" git push
196
+
197
+ Hugging Face автоматически начнет сборку Docker образа и развертывание вашего Space. Вы можете отслеживать прогресс на странице вашего Space.
198
+
199
+ ## 3. Дополнительные настройки и устранение неполадок
200
+
201
+ ### 3.1. Настройка DNS
202
+
203
+ Убедитесь, что DNS запись для вашего домена (например, `vds1.iri1968.dpdns.org`) указывает на IP-адрес вашего VDS1.
204
+
205
+ ### 3.2. Проверка и отладка
206
+
207
+ * **Проверка Nginx:**
208
+ ```bash
209
+ sudo nginx -t
210
+ sudo systemctl status nginx
211
+ Проверка Chisel Server на VDS1:
212
+ ps aux | grep chisel sudo ss -tulnp | grep 80 # Проверьте, слушает ли chisel на порту 80
213
+
214
+ * **Проверка Hugging Face Space logs:**
215
+ На странице вашего Hugging Face Space перейдите во вкладку "Logs" для просмотра логов Docker контейнера. Это поможет отладить проблемы с запуском `chisel client` или `x-ui`.
216
+ * **Проверка доступности x-ui:**
217
+ Попробуйте получить доступ к вашей x-ui панели через домен `https://vds1.iri1968.dpdns.org`.
218
+
219
+ ## 4. Настройка Git для Hugging Face
220
+
221
+ Для эффективной работы с репозиториями Hugging Face (Spaces, Models) необходимо правильно настроить Git, особенно для работы с большими файлами через Git LFS.
222
+
223
+ ### 4.1. Установка и настройка Git LFS
224
+
225
+ Git Large File Storage (LFS) — это расширение Git, которое позволяет версионировать большие файлы, такие как наборы данных, модели и видео, не сохраняя их непосредственно в репозитории Git.
226
+
227
+ 1. **Установите Git LFS:**
228
+ * **Debian/Ubuntu:**
229
+ ```bash
230
+ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
231
+ sudo apt-get install git-lfs
232
+ ```
233
+ * **macOS (с Homebrew):**
234
+ ```bash
235
+ brew install git-lfs
236
+ ```
237
+ * **Windows (с Chocolatey):**
238
+ ```bash
239
+ choco install git-lfs
240
+ ```
241
+ * **Другие ОС:** См. [официальную документацию Git LFS](https://git-lfs.com/).
242
+
243
+ 2. **Инициализируйте Git LFS для вашего пользователя:**
244
+ ```bash
245
+ git lfs install
246
+ Эту команду нужно выполнить один раз для вашей системы.
247
+ Настройте Git LFS для отслеживания больших файлов в вашем репозитории: Перейдите в корневую директорию вашего репозитория Hugging Face (например, your-username/x-ui-tunnel) и укажите, какие типы файлов должны отслеживаться Git LFS. Например, для отслеживания всех файлов .bin и .safetensors:
248
+ git lfs track ".bin" git lfs track ".safetensors"
249
+
250
+ Добавьте другие типы файлов по необходимости, например:
251
+ git lfs track "*.zip"
252
+ git lfs track "*.tar.gz"
253
+ Эти команды создадут или обновят файл `.gitattributes` в вашем репозитории. Убедитесь, что вы закоммитили этот файл:
254
+ ```bash
255
+ git add .gitattributes
256
+ git commit -m "Add Git LFS tracking for large files"
257
+ 4.2. Аутентификация с Hugging Face (использование токена)
258
+ Для взаимодействия с репозиториями Hugging Face вам потребуется токен доступа.
259
+
260
+ Получите ваш токен доступа:
261
+
262
+ Перейдите на Hugging Face Settings -> Access Tokens.
263
+ Создайте новый токен с правами "write" (для загрузки файлов) или используйте существующий. Скопируйте его.
264
+ Настройте Git для использования токена: Вы можете использовать huggingface-cli login (если у вас установлен пакет huggingface_hub для Python) или настроить Git вручную.
265
+
266
+ Использование huggingface-cli (рекомендуется):
267
+ pip install huggingface_hub huggingface-cli login
268
+
269
+ Введите ваш токен, когда будет предложено
270
+ Это сохранит ваш токен в безопасном месте и настроит Git для его использования.
271
+
272
+ * **Ручная настройка Git (менее безопасно для токена):**
273
+ Вы можете добавить токен непосредственно в URL репозитория при клонировании или настроить Git credential helper.
274
+ Пример клонирования с токеном (не рекомендуется для постоянного использования):
275
+ ```bash
276
+ git clone https://oauth-token-goes-here@huggingface.co/your-username/your-repo
277
+ Лучше использовать `huggingface-cli login` или настроить Git credential helper.
278
+ 4.3. Клонирование и отправка изменений
279
+ После настройки Git LFS и аутентификации вы можете работать с репозиториями Hugging Face как с обычными Git-репозиториями.
280
+
281
+ Клонирование репозитория:
282
+ git clone https://huggingface.co/spaces/your-username/your-space-name
283
+
284
+ или для моделей:
285
+ git clone https://huggingface.co/your-username/your-model-name
286
+
287
+ 2. **Внесение изменений и отправка:**
288
+ ```bash
289
+ # Внесите изменения в файлы
290
+ git add .
291
+ git commit -m "Your commit message"
292
+ git push
293
+ Git LFS автоматически обработает большие файлы при `git push`.