Initial import from PC
22
2. Проекты/Adguard/1. Установка.md
Normal file
@@ -0,0 +1,22 @@
|
||||
1) Отключение системного резолвера
|
||||
```
|
||||
sudo systemctl stop systemd-resolved
|
||||
sudo systemctl disable systemd-resolved
|
||||
```
|
||||
|
||||
2) Установка временного dns
|
||||
```
|
||||
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
|
||||
```
|
||||
|
||||
>[!Warning] Установка Docker и nginx
|
||||
>`sudo apt update`
|
||||
>`sudo apt install docker.io docker-compose nginx certbot python3-certbot-nginx -y`
|
||||
>**Включаем автозапуск**
|
||||
>`sudo systemctl enable docker`
|
||||
>`sudo systemctl enable nginx`
|
||||
>
|
||||
>
|
||||
|
||||
>[!BUG] Переход в раздел [[2. Настройка AdGuard Home]]
|
||||
|
||||
47
2. Проекты/Adguard/2. Настройка AdGuard Home.md
Normal file
@@ -0,0 +1,47 @@
|
||||
**Создаем папки:**
|
||||
```
|
||||
mkdir -p /opt/adguardhome
|
||||
cd /opt/adguardhome
|
||||
```
|
||||
|
||||
**Создаем `docker-compose.yml`**
|
||||
```
|
||||
mkdir -p /opt/adguardhome
|
||||
cd /opt/adguardhome
|
||||
```
|
||||
|
||||
**Создаем `docker-compose.yml`:**
|
||||
```
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
```
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
adguardhome:
|
||||
image: adguard/adguardhome
|
||||
container_name: adguardhome
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "53:53/tcp" # DNS
|
||||
- "53:53/udp" # DNS
|
||||
- "8480:80/tcp" # Веб-интерфейс (снаружи 8480 -> внутри 80)
|
||||
- "3000:3000/tcp" # Порт первоначальной настройки
|
||||
- "853:853/tcp" # DNS-over-TLS (если нужен)
|
||||
volumes:
|
||||
- ./workdir:/opt/adguardhome/work
|
||||
- ./confdir:/opt/adguardhome/conf
|
||||
# Пробрасываем сертификаты (на случай, если понадобятся для DNS-over-TLS)
|
||||
- /etc/letsencrypt:/opt/adguardhome/certs:ro
|
||||
|
||||
```
|
||||
_Сохранить: `Ctrl+O`, `Enter`. Выйти: `Ctrl+X`._
|
||||
|
||||
**Запускаем контейнер:**
|
||||
```
|
||||
sudo docker-compose up -d
|
||||
```
|
||||
|
||||
>[!Bug] Переход в [[3. Первичная настройка AdGuard]]
|
||||
|
||||
16
2. Проекты/Adguard/3. Первичная настройка AdGuard.md
Normal file
@@ -0,0 +1,16 @@
|
||||
Пока Nginx не настроен, зайдем напрямую через порт 3000.
|
||||
|
||||
1. Откройте в браузере: `http://IP-ВАШЕГО-СЕРВЕРА:3000`.
|
||||
2. Нажмите "Начать".
|
||||
3. **Важно на этапе "Веб-интерфейс":**
|
||||
|
||||
- Сетевой интерфейс: `Все интерфейсы`
|
||||
|
||||
- Порт: **80** (Оставьте как есть! Docker сам перенаправит с 8480 на 80).
|
||||
|
||||
4. **На этапе "DNS-сервер":**
|
||||
|
||||
- Порт: **53**.
|
||||
|
||||
5. Создайте логин/пароль и завершите настройку.
|
||||
>[!Bug] Переход в [[4. Получение SSL-сертификатов]]
|
||||
39
2. Проекты/Adguard/4. Получение SSL-сертификатов.md
Normal file
@@ -0,0 +1,39 @@
|
||||
Сначала настроим "заглушку" в Nginx, чтобы Certbot мог подтвердить домен.
|
||||
|
||||
**Настраиваем default конфиг Nginx:**
|
||||
```
|
||||
nano /etc/nginx/sites-available/default
|
||||
```
|
||||
|
||||
**Вставляем код:**
|
||||
```
|
||||
server {
|
||||
listen 80 default_server;
|
||||
server_name _;
|
||||
|
||||
# Разрешаем Certbot'у проверять домены
|
||||
location ^~ /.well-known/acme-challenge/ {
|
||||
default_type "text/plain";
|
||||
root /var/www/html;
|
||||
}
|
||||
|
||||
# Все остальные запросы отбрасываем
|
||||
location / {
|
||||
return 404;
|
||||
}
|
||||
}
|
||||
```
|
||||
_Сохранить и выйти._
|
||||
|
||||
**Перезапускаем Nginx:**
|
||||
```
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
**Получаем сертификат:** Указать свой домен!
|
||||
```
|
||||
sudo certbot certonly --webroot -w /var/www/html -d adguard.example.com
|
||||
```
|
||||
|
||||
>[!Bug] Переход в [[5. Настройка Nginx как Прокси]]
|
||||
|
||||
54
2. Проекты/Adguard/5. Настройка Nginx как Прокси.md
Normal file
@@ -0,0 +1,54 @@
|
||||
Теперь создадим "боевой" конфиг для вашего домена
|
||||
|
||||
_Замените `adguard` на удобное имя_
|
||||
```
|
||||
nano /etc/nginx/sites-available/adguard
|
||||
```
|
||||
|
||||
**Вставляем код (замените домен на свой!):**
|
||||
```
|
||||
server {
|
||||
listen 80;
|
||||
server_name adguard.example.com; # ВАШ ДОМЕН
|
||||
# Редирект на HTTPS
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name adguard.example.com; # ВАШ ДОМЕН
|
||||
|
||||
# Пути к сертификатам
|
||||
ssl_certificate /etc/letsencrypt/live/adguard.example.com/fullchain.pem; # ВАШ ДОМЕН
|
||||
ssl_certificate_key /etc/letsencrypt/live/adguard.example.com/privkey.pem; # ВАШ ДОМЕН
|
||||
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
|
||||
location / {
|
||||
# Проксируем на порт Докера (8480)
|
||||
proxy_pass http://127.0.0.1:8480;
|
||||
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# Настройки для WebSocket (нужны AdGuard)
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Активируем конфиг:**
|
||||
```
|
||||
sudo ln -s /etc/nginx/sites-available/adguard /etc/nginx/sites-enabled/
|
||||
```
|
||||
|
||||
**Проверяем и применяем:**
|
||||
```
|
||||
sudo nginx -t
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
28
2. Проекты/Gitea_Главная/Cache/File_1.md
Normal file
@@ -0,0 +1,28 @@
|
||||
```bash
|
||||
#! /bin/bash
|
||||
# Heavily inspired by https://github.com/urfave/cli
|
||||
|
||||
_cli_bash_autocomplete() {
|
||||
if [[ "${COMP_WORDS[0]}" != "source" ]]; then
|
||||
local cur opts base
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
if [[ "$cur" == "-"* ]]; then
|
||||
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} ${cur} --generate-bash-completion )
|
||||
else
|
||||
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion )
|
||||
fi
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -z "$PROG" ] && [ ! "$(command -v gitea &> /dev/null)" ] ; then
|
||||
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete gitea
|
||||
elif [ -z "$PROG" ]; then
|
||||
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete ./gitea
|
||||
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete "$PWD/gitea"
|
||||
else
|
||||
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete "$PROG"
|
||||
unset PROG
|
||||
fi```
|
||||
89
2. Проекты/Gitea_Главная/Cache/File_Gitea_service.md
Normal file
@@ -0,0 +1,89 @@
|
||||
```Bash
|
||||
[Unit]
|
||||
Description=Gitea (Git with a cup of tea)
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
###
|
||||
# Don't forget to add the database service dependencies
|
||||
###
|
||||
#
|
||||
#Wants=mysql.service
|
||||
#After=mysql.service
|
||||
#
|
||||
#Wants=mariadb.service
|
||||
#After=mariadb.service
|
||||
#
|
||||
#Wants=postgresql.service
|
||||
#After=postgresql.service
|
||||
#
|
||||
#Wants=memcached.service
|
||||
#After=memcached.service
|
||||
#
|
||||
#Wants=redis.service
|
||||
#After=redis.service
|
||||
#
|
||||
###
|
||||
# If using socket activation for main http/s
|
||||
###
|
||||
#
|
||||
#After=gitea.main.socket
|
||||
#Requires=gitea.main.socket
|
||||
#
|
||||
###
|
||||
# (You can also provide gitea an http fallback and/or ssh socket too)
|
||||
#
|
||||
# An example of /etc/systemd/system/gitea.main.socket
|
||||
###
|
||||
##
|
||||
## [Unit]
|
||||
## Description=Gitea Web Socket
|
||||
## PartOf=gitea.service
|
||||
##
|
||||
## [Socket]
|
||||
## Service=gitea.service
|
||||
## ListenStream=<some_port>
|
||||
## NoDelay=true
|
||||
##
|
||||
## [Install]
|
||||
## WantedBy=sockets.target
|
||||
##
|
||||
###
|
||||
|
||||
[Service]
|
||||
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
|
||||
# LimitNOFILE=524288:524288
|
||||
RestartSec=2s
|
||||
Type=notify
|
||||
User=git
|
||||
Group=git
|
||||
WorkingDirectory=/var/lib/gitea/
|
||||
# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file
|
||||
# (manually creating /run/gitea doesn't work, because it would not persist across reboots)
|
||||
#RuntimeDirectory=gitea
|
||||
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
|
||||
Restart=always
|
||||
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
||||
WatchdogSec=30s
|
||||
# If you install Git to directory prefix other than default PATH (which happens
|
||||
# for example if you install other versions of Git side-to-side with
|
||||
# distribution version), uncomment below line and add that prefix to PATH
|
||||
# Don't forget to place git-lfs binary on the PATH below if you want to enable
|
||||
# Git LFS support
|
||||
#Environment=PATH=/path/to/git/bin:/bin:/sbin:/usr/bin:/usr/sbin
|
||||
# If you want to bind Gitea to a port below 1024, uncomment
|
||||
# the two values below, or use socket activation to pass Gitea its ports as above
|
||||
###
|
||||
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||
#AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
###
|
||||
# In some cases, when using CapabilityBoundingSet and AmbientCapabilities option, you may want to
|
||||
# set the following value to false to allow capabilities to be applied on gitea process. The following
|
||||
# value if set to true sandboxes gitea service and prevent any processes from running with privileges
|
||||
# in the host user namespace.
|
||||
###
|
||||
#PrivateUsers=false
|
||||
###
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
137
2. Проекты/Gitea_Главная/Gitea установка (PC).md
Normal file
@@ -0,0 +1,137 @@
|
||||
> [!quote] [Источник](https://kodprog.ru/ustanovka-gitea-v-ubuntu-2204#gsc.tab=0)
|
||||
|
||||
## Установка Gitea в Ubuntu 22.04
|
||||
|
||||
Перейдём к установке gitea:
|
||||
Следующей командой скачаю gitea:
|
||||
|
||||
```bash
|
||||
wget -O gitea https://dl.gitea.com/gitea/1.20.5/gitea-1.20.5-linux-amd64
|
||||
```
|
||||
Где 1.20.5 - это версия gitea.
|
||||
И предоставлю ей права на выполнение:
|
||||
```bash
|
||||
chmod +x gitea
|
||||
```
|
||||
|
||||
После этого надпись gitea стала зелёной и слева в строчке везде появилась X:
|
||||
|
||||
![[Pasted image 20240915235906.png]]
|
||||
|
||||
Далее загружу gpg ключ:
|
||||
|
||||
```bash
|
||||
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
|
||||
```
|
||||
|
||||
И скачаю asc файл для верификации:
|
||||
|
||||
```bash
|
||||
wget -O gitea.asc https://dl.gitea.com/gitea/1.20.5/gitea-1.20.5-linux-amd64.asc
|
||||
```
|
||||
|
||||
Теперь запущу верификацию:
|
||||
|
||||
```bash
|
||||
gpg --verify gitea.asc gitea
|
||||
```
|
||||
|
||||
И должна выйти строчка хорошая подпись несмотря на предупреждение:
|
||||
![[Pasted image 20240915235942.png]]
|
||||
В данном случае файл подлинный и его можно использовать.
|
||||
|
||||
Далее создам необходимые папки:
|
||||
|
||||
```bash
|
||||
mkdir -p /var/lib/gitea/{custom,data,log}
|
||||
```
|
||||
|
||||
Создам нового пользователя git:
|
||||
|
||||
```bash
|
||||
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
|
||||
```
|
||||
|
||||
И назначу права на папки:
|
||||
|
||||
```bash
|
||||
chown -R git:git /var/lib/gitea/
|
||||
chmod -R 750 /var/lib/gitea/
|
||||
mkdir /etc/gitea
|
||||
chown root:git /etc/gitea
|
||||
```
|
||||
|
||||
Для того, чтобы установка прошла успешно, устанавливаются полные права на файлы, которые после установки желательно понизить:
|
||||
|
||||
```bash
|
||||
chmod 770 /etc/gitea
|
||||
```
|
||||
|
||||
Далее копирую gitea в глобальный путь:
|
||||
|
||||
```bash
|
||||
sudo cp gitea /usr/local/bin/gitea
|
||||
```
|
||||
|
||||
Включаю автозаполнение создав данную настройку:
|
||||
|
||||
```bash
|
||||
sudo nano /usr/share/bash-completion/completions/gitea
|
||||
```
|
||||
|
||||
С содержимым из [[File_1]]
|
||||
|
||||
|
||||
![[Pasted image 20240915235958.png]]
|
||||
|
||||
И теперь необходимо создать сервис gitea. Для этого необходимо создать файл:
|
||||
|
||||
```bash
|
||||
sudo nano /etc/systemd/system/gitea.service
|
||||
```
|
||||
|
||||
Со следующим содержимым из [[File_Gitea_service]]
|
||||
![[Pasted image 20240916000017.png]]
|
||||
|
||||
В котором раскомментировать строчки напротив используемой базы данных, в моём случае это mysql
|
||||
|
||||
![[Pasted image 20240916000033.png]]
|
||||
|
||||
Включаю сервис gitea для того, чтобы он запускался во время запуска системы:
|
||||
|
||||
```bash
|
||||
sudo systemctl enable gitea
|
||||
```
|
||||
|
||||
И запускаю его:
|
||||
|
||||
```bash
|
||||
sudo systemctl start gitea
|
||||
```
|
||||
Здесь я подумал то, что всё зависло, и спустя какое-то время команда выдаёт ошибку timeout:
|
||||
![[Pasted image 20240916000057.png]]
|
||||
Но на самом деле нужно было открыть браузер и перейти по пути [http://localhost:3000/](http://localhost:3000/).
|
||||
|
||||
>[!quote]
|
||||
>После команды консоль подвиснет и появится ошибка, **НО** нужно прописать ip сервера и порт 3000 (пример http://212.16.94.33:3000
|
||||
|
||||
Здесь необходимо указать пароль и поменять имя баз данных на giteadb:
|
||||
|
||||
![[Pasted image 20240916000119.png]]
|
||||
>[!quote]
|
||||
>Откроется начальная конфигурация где нужно заполнить:
|
||||
>1) в поле тип базы данных нужно указать SQLite3
|
||||
>2) В название указать название сервиса
|
||||
>3) Оставляем свой ip
|
||||
>4) В базовый url пишем домен (пример http://stitch505.ru/) (
|
||||
|
||||
Открываем Настройки учётной записи администратора и указываем данные
|
||||
|
||||
После этого пролистать вниз и нажать установить Gitea.
|
||||
|
||||
Далее зарегистрирую новый аккаунт:
|
||||
![[Pasted image 20240916000223.png]]
|
||||
|
||||
И создам новый репозиторий нажав на плюс в правом верхнем углу
|
||||
![[Pasted image 20240916000244.png]]
|
||||
Переход в [[Синхронизация PC]]
|
||||
1
2. Проекты/Gitea_Главная/Gitea.md
Normal file
@@ -0,0 +1 @@
|
||||
[[Gitea установка (PC)]]
|
||||
5
2. Проекты/Gitea_Главная/Pass.mdenc
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "2.0",
|
||||
"hint": "Your_name",
|
||||
"encodedData": "9iac6AQiuP4rQQKNhXlrQ200TYprZdYtNx2SJMQtTCwHnI8qQO/v8zH5SZhBMhUixxfALVSULjXZ43KnNduMOQvGfCdJRVjqjZ+KteLkGPulOPftc8u3I5tP"
|
||||
}
|
||||
25
2. Проекты/Gitea_Главная/Установка домена gitea.md
Normal file
@@ -0,0 +1,25 @@
|
||||
>[!tip] Шаг. 1 Открыть конфиг и указать там домен в ROOT_URL
|
||||
>sudo nano /etc/gitea/app.ini
|
||||
|
||||
>[!tip] Шаг 2. Подключить домен к КлаудФлар и прописать записи в нем
|
||||
> для ROOT & WWW
|
||||
|
||||
> [!tip] Cправочно! Получить сертификат и указать в конфиге
|
||||
>CERT_FILE = fullchain
|
||||
KEY_FILE = private
|
||||
|
||||
>[!tip] Шаг 3. Указать протокол и cертификаты
|
||||
>.# Настройки HTTPS `укахать в конце раздела сервер`
|
||||
PROTOCOL = https
|
||||
CERT_FILE = /etc/letsencrypt/live/__domain__/fullchain.pem
|
||||
KEY_FILE = /etc/letsencrypt/live/__domain__\/privkey.pem
|
||||
|
||||
>[!tip] Шаг 4. Дать доступ к директориям серт. (ПРОПИСАТЬ РУКАМИ)
|
||||
>sudo chmod 755 /etc/letsencrypt
|
||||
>sudo chmod 755 /etc/letsencrypt/live
|
||||
>sudo chmod 755 /etc/letsencrypt/archive
|
||||
>sudo chmod 755 /etc/letsencrypt/live/`DOMAIN`/privkey.pem
|
||||
|
||||
>[!tip] Шаг 5. Перезапустить серв
|
||||
sudo systemctl restart gitea
|
||||
sudo systemctl status gitea.service
|
||||
13
2. Проекты/Kasm/1. Инструкция по установке базы.md
Normal file
@@ -0,0 +1,13 @@
|
||||
>[!Danger] Ты можешь изменить на свои:
|
||||
>1. путь скачивания (tmp на например `opt`)
|
||||
>2. Порт на любой свой (не `5443`, а `55443`)
|
||||
|
||||
```
|
||||
cd /tmp
|
||||
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.18.1.tar.gz
|
||||
tar -xf kasm_release_1.18.1.tar.gz
|
||||
sudo bash kasm_release/install.sh -L 5443
|
||||
```
|
||||
|
||||
>[!BUG] Теперь настройка сайта [[2. Настройка nginx сайта]]
|
||||
|
||||
57
2. Проекты/Kasm/2. Настройка nginx сайта.md
Normal file
@@ -0,0 +1,57 @@
|
||||
Создаем сайт:
|
||||
|
||||
```
|
||||
sudo nano /etc/nginx/sites-available/kasm
|
||||
```
|
||||
|
||||
Вставляем вот это чтобы нормально конфигурировало:
|
||||
|
||||
```
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name kasm.stitch505.su;
|
||||
|
||||
access_log /var/log/nginx/kasm_access.log;
|
||||
error_log /var/log/nginx/kasm_error.log;
|
||||
|
||||
ssl_session_cache shared:SSL:10m;
|
||||
ssl_session_timeout 10m;
|
||||
|
||||
location / {
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Port 443;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_read_timeout 1800s;
|
||||
proxy_send_timeout 1800s;
|
||||
proxy_connect_timeout 1800s;
|
||||
proxy_buffering off;
|
||||
proxy_ssl_verify off;
|
||||
client_max_body_size 10G;
|
||||
|
||||
proxy_pass https://127.0.0.1:5443;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Сохраняем, выходим, активируем сайт и перезапускаем nginx:
|
||||
|
||||
```
|
||||
sudo ln -s /etc/nginx/sites-available/YOURDOMAIN /etc/nginx/sites-enabled/
|
||||
sudo nginx -t
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
Теперь запрашиваем сертификат через Let's Encrypt
|
||||
|
||||
```
|
||||
sudo certbot --nginx -d kasm.stitch505.su
|
||||
```
|
||||
|
||||
>[!BUG] Перейди в [[2.2 Настройка домена в самой админке KASM]]
|
||||
10
2. Проекты/Kasm/2.2 Настройка домена в самой админке KASM.md
Normal file
@@ -0,0 +1,10 @@
|
||||
1. Заходим по https://your_ip:5443/#/logging
|
||||
2. вводим логин и пароль из логов при установке
|
||||
3. Идём по пути `Инфраструктура->Зоны->default`
|
||||
![[Pasted image 20251126224012.png]]
|
||||
4. Ставим ваш порт и домен вместо той базовой инфы что там написана и сохраняем.
|
||||
![[Pasted image 20251126224150.png]]
|
||||
![[Pasted image 20251126224201.png]]
|
||||
|
||||
>[!BUG] Теперь идём в [[3. Проверки работоспособности]]
|
||||
>
|
||||
9
2. Проекты/Kasm/3. Проверки работоспособности.md
Normal file
@@ -0,0 +1,9 @@
|
||||
1 - Проверка работы и отклика
|
||||
|
||||
```
|
||||
sudo nginx -t && sudo systemctl reload nginx
|
||||
curl -I https://kasm.stitch505.su | grep server
|
||||
```
|
||||
*Ожидаемо: nginx/1.26.3 (Kasm proxy)*
|
||||
|
||||
|
||||
BIN
2. Проекты/Kasm/Cache/Screen/Pasted image 20251126224012.png
Normal file
|
After Width: | Height: | Size: 253 KiB |
BIN
2. Проекты/Kasm/Cache/Screen/Pasted image 20251126224150.png
Normal file
|
After Width: | Height: | Size: 253 KiB |
BIN
2. Проекты/Kasm/Cache/Screen/Pasted image 20251126224201.png
Normal file
|
After Width: | Height: | Size: 229 KiB |
14
2. Проекты/Kasm/Настройка redirect http - https.md
Normal file
@@ -0,0 +1,14 @@
|
||||
```
|
||||
sudo nano /etc/nginx/sites-available/YOURDOMAIN
|
||||
```
|
||||
|
||||
`Добавить этот кусок в вверх сайта`
|
||||
|
||||
```
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name kasm.stitch505.su;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,134 @@
|
||||
## Step 1. Обновление системы
|
||||
|
||||
необходимо обновить системные пакеты до последних доступных версий. Для этого выполните следующие команды:
|
||||
`sudo apt update -y && sudo apt upgrade -y`
|
||||
<h2 align=center> Установка стека Lamp </h2>
|
||||
|
||||
## Step 2. Установка [[LAMP стек]] (Перейти в ссылку)
|
||||
|
||||
>[!warning] Установку выполняем строго по очередности!!!!
|
||||
|
||||
## Step 3. Создание пользователя Nextcloud
|
||||
|
||||
Далее мы создадим базу данных **Nextcloud** и пользователя **Nextcloud** и назначим привилегии этому пользователю и базе данных. База данных и пользователь будут иметь одно и то же имя **nextcloud**.
|
||||
|
||||
|
||||
1) Войти в mariadb командой:
|
||||
`sudo mariadb`
|
||||
2) Отредактировать данные о будущем пользователе и исполняем код
|
||||
|
||||
>[!warrning] Первоначальный код
|
||||
|
||||
`MariaDB [(none)]> CREATE DATABASE nextcloud;`
|
||||
`MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO` 'nextcloud`'@'localhost' IDENTIFIED BY` 'YourStrongPasswordHere';
|
||||
`MariaDB [(none)]> FLUSH PRIVILEGES;`
|
||||
`MariaDB [(none)]> EXIT;`
|
||||
|
||||
>[!warrning] Пример как должно быть
|
||||
|
||||
`CREATE DATABASE nextcloud;`
|
||||
`GRANT ALL PRIVILEGES ON nextcloud.* TO` 'Stitch505'`@'localhost'` `IDENTIFIED BY` 'Tested123123';
|
||||
`FLUSH PRIVILEGES;`
|
||||
`EXIT;`
|
||||
>[!warrning] Где `Stitch505` это твой логин, а `Tested123123` это пароль
|
||||
|
||||
## Step 3. Установка NextCloud
|
||||
|
||||
Стек LAMP готов, база данных создана. Теперь нам нужно загрузить последнюю версию Nextcloud и поместить ее в корень документа Apache.
|
||||
<<<<<<< HEAD
|
||||
`sudo wget https://download.nextcloud.com/server/releases/nextcloud-30.0.4.zip`
|
||||
|
||||
После загрузки извлеките его в корень документа Apache.
|
||||
`sudo unzip nextcloud-30.0.4.zip -d /var/www/html/`
|
||||
=======
|
||||
`sudo wget https://download.nextcloud.com/server/releases/nextcloud-29.0.0.zip`
|
||||
|
||||
После загрузки извлеките его в корень документа Apache.
|
||||
`sudo unzip nextcloud-29.0.0.zip -d /var/www/html/`
|
||||
>>>>>>> 77abb6a0bf9452daf6706798b3a3b4cdd4d5f8a2
|
||||
|
||||
>[!warning] Если пишет что нет программы unzip, то нужно его установить командой:
|
||||
sudo apt-get update
|
||||
sudo apt-get install unzip
|
||||
|
||||
|
||||
Установите правильное владение файлом и папкой:
|
||||
`chown -R www-data:www-data /var/www/html/nextcloud`
|
||||
|
||||
## Step 5. Создайте файл виртуального хоста Apache
|
||||
|
||||
Нужно создать файл виртуального хоста Apache для сервера файлов Nextcloud, чтобы мы могли получить к нему доступ через доменное имя:
|
||||
|
||||
`touch /etc/apache2/sites-available/nextcloud.conf`
|
||||
|
||||
1) Откройте созданный файл командой:
|
||||
<<<<<<< HEAD
|
||||
2) sudo nano `/etc/apache2/sites-available/nextcloud.conf`
|
||||
=======
|
||||
2) sudo nano `etc/apache2/sites-available/nextcloud.conf`
|
||||
>>>>>>> 77abb6a0bf9452daf6706798b3a3b4cdd4d5f8a2
|
||||
3) в редакторе и вставьте код из [[Virtual_host]]
|
||||
4) нажмите для сохранения и выхода `ctrl + x -> y -> enter`
|
||||
|
||||
Теперь запустим вебсайт (NextCloud)
|
||||
<<<<<<< HEAD
|
||||
`sudo a2ensite nextcloud.conf`
|
||||
=======
|
||||
`a2ensite nextcloud.conf`
|
||||
>>>>>>> 77abb6a0bf9452daf6706798b3a3b4cdd4d5f8a2
|
||||
|
||||
Затем включите необходимые модули Apache с помощью следующей команды
|
||||
`a2enmod rewrite headers env dir mime setenvif ssl`
|
||||
|
||||
Проверьте синтаксис Apache:
|
||||
`apachectl -t`
|
||||
>[!warning] При ошибке `Could not reliably determine the server's fully qualified domain name` нужно:
|
||||
>1) Открыть глобальный конфигурационный файл Apache (путь `sudo nano /etc/apache2/apache2.conf`)
|
||||
>2) В конец файла добавьте строку `ServerName ____`
|
||||
, указывающую имя сервера. Если у вас нет полноценного доменного имени, (~~можно использовать IP-адрес~~):
|
||||
>3) Пример того, как должно быть [[Открой файл в папке и посмотри содержимое!]]
|
||||
>4) После внесения изменений нужно использовать команды
|
||||
>5) `sudo apachectl -t`
|
||||
>6) `sudo systemctl restart apache2`
|
||||
|
||||
Если всё корректно, то выполняем команду перезапуска apache сервера
|
||||
`sudo systemctl restart apache2`
|
||||
|
||||
## Step 6. Установка сертификатов на домен
|
||||
|
||||
**Для установки выполните команду**
|
||||
`sudo apt update`
|
||||
`sudo apt install certbot python3-certbot-apache`
|
||||
|
||||
После установки используем certbote под apache2
|
||||
`sudo certbot --apache`
|
||||
Если требуется указываем номер требуемого домена, если же хотим подтянуть ssl сертификаты ко всем доменам из списка, жмём enter
|
||||
![[Pasted image 20240916160825.png]]
|
||||
|
||||
## Step 6. Указание данных пользователя и данных пользователя
|
||||
![[Pasted image 20240917121754.png]]
|
||||
|
||||
>[!Success] Чтобы свериться с данными в базе mariadb нужно:
|
||||
>1) Войти в Mariadb
|
||||
>`sudo mariadb`
|
||||
>2) Посмотреть Какие у нас есть базы
|
||||
> `SHOW DATABASES;`
|
||||
>3) Теперь нужно посмотреть всех пользователей в базе данных
|
||||
>`SELECT User, Host FROM mysql.user;`
|
||||
>4) Осталось проверить права и все данные о пользователе
|
||||
>`SHOW GRANTS FOR 'username'@'localhost';`
|
||||
>>[!warning] Измени USER на нужное имя!
|
||||
|
||||
>[!Example] Пример
|
||||
>
|
||||
![[Pasted image 20240917122810.png]]
|
||||
>
|
||||
>>[!Warning] **На изображении видно**:
|
||||
>
|
||||
>- **Имя базы данных**: Ваша база данных называется `nextcloud`.
|
||||
>- **Пользователь базы данных**: Пользователь с именем `Stitch505` имеет >полный доступ к базе данных `nextcloud`.
|
||||
>- **Хост**: Пользователь подключается с хоста `localhost`.
|
||||
> Так что ваша база данных называется `nextcloud`, а пользователь базы данных — `Stitch505`, с хостом `localhost`.
|
||||
|
||||
>[!warning]
|
||||
>ссылка на оригинальный сайт `https://www.rosehosting.com/blog/how-to-install-nextcloud-on-ubuntu-24-04/`
|
||||
47
2. Проекты/Nextcloud/2. Ошибки NC/Исправление ошибок.md
Normal file
@@ -0,0 +1,47 @@
|
||||
>[!Bug] **The PHP memory limit is below the recommended value of 512 MB**
|
||||
>1) Открываем файл php `sudo nano /etc/php/8.3/apache2/php.ini`
|
||||
>2) Нажимаем ctrl+w и пишем `memory`, затем нажимаем `enter`
|
||||
> ![[Pasted image 20240917124700.png]]
|
||||
> Указываем в поле `memory_limit =` 528M
|
||||
>3) Сохраняем ctrl+x->y->enter
|
||||
>4) перезапускаем apache `sudo systemctl restart apache2`
|
||||
|
||||
>[!Bug] **Настройка окна обслуживания сервера**
|
||||
>1) **Включение режима обслуживания:**
|
||||
>`sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --on`
|
||||
>>[!Warning] Во время тех обслуживания сайт не будет доступен!!!
|
||||
>2) **Обновите базу данных и выполните необходимые исправления**
|
||||
>`sudo -u www-data php /var/www/html/nextcloud/occ upgrade`
|
||||
> `sudo -u www-data php /var/www/html/nextcloud/occ maintenance:repair`
|
||||
>3) Выход из режима обслуживания
|
||||
>`sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --off`
|
||||
|
||||
>[!Bug] **Добавление недостающих индексов**
|
||||
>Команда:
|
||||
>`sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-indices`
|
||||
|
||||
>[!Bug] **Настройка PHP OPcache**
|
||||
>1) Открытие файла PHP
|
||||
>`sudo nano /etc/php/8.3/apache2/php.ini`
|
||||
>2) Поиск строки opcache.enable=1
|
||||
>ctrl+w -> opcache.enable=1 -> enter
|
||||
>Затем, после строки opcache.enable=1 нужно внести код:
|
||||
>`opcache.interned_strings_buffer=8 opcache.memory_consumption=128`
|
||||
>`opcache.max_accelerated_files=10000 opcache.revalidate_freq=1` `opcache.save_comments=1`
|
||||
>Должно выглядеть вот так ![[Pasted image 20240917132005.png]]
|
||||
>3) Затем просто перезапускаем apache
|
||||
> `sudo systemctl restart apache2`
|
||||
|
||||
>[!Bug] **Strict-Transport-Security**
|
||||
>1) нужно открыть файл sudo nano `nextcloud-le-ssl.conf`
|
||||
>`sudo nano /etc/apache2/sites-available/nextcloud-le-ssl.conf`
|
||||
>2) Добавить после ssl следующей строкой код:
|
||||
>`Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"`
|
||||
>Должно быть так ![[Pasted image 20240917133023.png]]
|
||||
>3) Проверка что модуль включён
|
||||
>`sudo a2enmod headers`
|
||||
>4) Перезапускаем Apache:
|
||||
>`sudo systemctl restart apache2`
|
||||
|
||||
|
||||
|
||||
11
2. Проекты/Nextcloud/3. LAMP_STACK/LAMP стек.md
Normal file
@@ -0,0 +1,11 @@
|
||||
<h2 align=center> Совершаем установку пошагово (1,2,3) </h2>
|
||||
|
||||
>[!example]
|
||||
> [[LAMP apache2]]
|
||||
> [[LAMP mariadb]]
|
||||
> [[LAMP PHP8.3]]
|
||||
|
||||
|
||||
|
||||
>[!warning] Теперь возвращаемся в [[1. Установка и настройка Nextcloud]]
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
<h2 align=center> Установка PHP8.3 вместе с его расширениями </h2>
|
||||
|
||||
Чтобы установить PHP8.3, выполните команду ниже:
|
||||
`sudo apt install php8.3 libapache2-mod-php php8.3-common php8.3-cli php8.3-mbstring php8.3-bcmath php8.3-fpm php8.3-mysql php8.3-zip php8.3-gd php8.3-curl php8.3-xml -y`
|
||||
|
||||
После установки вы можете проверить версию PHP с помощью команды ниже:
|
||||
`php -v`
|
||||
>[!tip] Будет получен примерно такой результат
|
||||
![[Pasted image 20240916132724.png]]
|
||||
|
||||
>[!warning] Установил? Вернись в [[1. Установка и настройка Nextcloud]]
|
||||
|
||||
|
||||
>[!quote] Переходы:
|
||||
>[[LAMP apache2]]
|
||||
>[[LAMP mariadb]]
|
||||
@@ -0,0 +1,15 @@
|
||||
Чтобы установить Apache, выполните следующую команду:
|
||||
`sudo apt install apache2 -y`
|
||||
После установки запустите и включите службу:
|
||||
`sudo systemctl start apache2 && sudo systemctl enable apache2`
|
||||
проверьте статус услуги:
|
||||
`sudo systemctl status apache2`
|
||||
>[!tip] Будет выведено схожее:
|
||||
>![[Pasted image 20240916131002.png]]
|
||||
|
||||
>[!info] Переходы в подтемы:
|
||||
>**Next_install** [[LAMP mariadb]]
|
||||
>**Last_install** [[LAMP PHP8.3]]
|
||||
|
||||
>[!warning] [[1. Установка и настройка Nextcloud]]
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
Далее мы установим сервер базы данных MariaDB. Выполните команду ниже:
|
||||
`sudo apt install mariadb-server -y`
|
||||
После установки сервера MariaDB нам нужно запустить и включить службу:
|
||||
`sudo systemctl start mariadb && sudo systemctl enable mariadb`
|
||||
Чтобы проверить статус службы, выполните следующую команду:
|
||||
`sudo systemctl status mariadb`
|
||||
>[!tip] Будет вывод подобный этому
|
||||
>![[Pasted image 20240916131747.png]]
|
||||
|
||||
>[!info] Переходы:
|
||||
>**Last_install** [[LAMP PHP8.3]]
|
||||
|
||||
>[!warning] [[1. Установка и настройка Nextcloud]]
|
||||
|
||||
17
2. Проекты/Nextcloud/4. Cache/Virtual_host.md
Normal file
@@ -0,0 +1,17 @@
|
||||
<VirtualHost *:80>
|
||||
DocumentRoot "/var/www/html/nextcloud"
|
||||
ServerName YOUR_DOMEN
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/nextcloud.error
|
||||
CustomLog ${APACHE_LOG_DIR}/nextcloud.access combined
|
||||
|
||||
<Directory /var/www/html/nextcloud/>
|
||||
Require all granted
|
||||
Options FollowSymlinks MultiViews
|
||||
AllowOverride All
|
||||
</Directory> <!-- Добавлено закрытие тега </Directory> -->
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
>[!int] Возврат в [[1. Установка и настройка Nextcloud]]
|
||||
|
||||
19
2. Проекты/OBSIDIAN/1. Obsidian_linux/1. Obs_ubuntu.md
Normal file
@@ -0,0 +1,19 @@
|
||||
>1) Устанавливаем Git командой `sudo apt install git`
|
||||
1) Устанавливаем Obsidian (`способ выбираем сами`)
|
||||
2) Открываем терминал -> используем команды:
|
||||
|
||||
>[!tip]- Клонирование репозитория
|
||||
>`git clone git@gitea.stitch505.su:Stitch505/OBS.git ~/Документы/OBS`
|
||||
>
|
||||
>>[!tip]- Создание ssh ключа
|
||||
>> ssh-keygen -t ed25519 -C "stitch505"
|
||||
>>>[!tip]- Проверка созданного ключа и копирование
|
||||
>>>cat ~/.ssh/id_ed25519.pub
|
||||
>
|
||||
> А теперь нам нужно изменить способ отправки данных
|
||||
>>[!tip]- изменение remote на ssh
|
||||
>> git remote set-url origin git@gitea.stitch505.su:Stitch505/OBS.git
|
||||
|
||||
>[!tip]- Финальная проверка отправки данных
|
||||
>git pull
|
||||
>git push
|
||||
@@ -0,0 +1,13 @@
|
||||
[[Busybox]] - файл exe
|
||||
>[!warning]
|
||||
>1) Создать в папке C:\Program Files\ папку с названием Busybox
|
||||
>2) скачать вложенный [[Busybox]]
|
||||
>3) перекинуть файл в папку C:\Program Files\Busybox
|
||||
>4) открыть terminal (cmd), нажать на галочку->Settings-> Создать новую запись -![[Pasted image 20240916003202.png]]
|
||||
>5) в Name записать Bash ![[Pasted image 20240916003303.png]]
|
||||
>6) в Command line прописать путь `C:/Program Files/Busybox/busybox64.exe bash`![[Pasted image 20240916003331.png]]
|
||||
>7) Нажать save
|
||||
|
||||
>[!warning] Ссылка на главную тему
|
||||
>[[Синхронизация PC]]
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
>[!tip] Настройка синхронизации в мобилке
|
||||
>### Setup
|
||||
|
||||
- Установить [Termux](https://gist.github.com/Makeshift/43c7ecb3f1c28a623ea4386552712114)
|
||||
- Открыть **Termux**, использовать `termux-change-repo`. Press the ↓ button and press spacebar to tick all repositories, then press enter to move to the next screen
|
||||
- Нажать Enter - выбрать `Mirror` - выбрать 1 пункт (самый верхний)
|
||||
- Выполнить команду `pkg install git -y`
|
||||
- Выполнить команду `termux-setup-storage`
|
||||
- Выполнить команду `cd storage/shared` (Не пригодилось, но может пригодиться, если будут ошибки [this page](https://wiki.termux.com/wiki/Termux-setup-storage))
|
||||
- Выполнить команду `git config --global credential.helper store`
|
||||
- Выполнить команду `git config --global user.email "<your_email>"` (указать email из личного git)
|
||||
- Выполнить команду `git config --global user.name "<The name you want on your commits>"` (Указывается свой ник из git(ea) (Stitch505)
|
||||
- Выполнить команду `git config --global pull.rebase true`
|
||||
- Выполнить команду `git clone <your repository>`(Требуется указать полную ссылку на коммит в git (нужно зайти в репозиторий и под тегами взять полную ссылку нажать enter + указать свой логин . Также может потребоваться персональный токен [personal access token](https://github.com/settings/tokens).
|
||||
- Установить и открыть [[Ссылки]]
|
||||
- Открыть папку куда было сделано синхронизация
|
||||
- Зайти в настройки obsidian -> настройки -> git ->authentication/commit author и заполнить 4 поля
|
||||
>[!info] ГДЕ:
|
||||
>- 1 поле) Указывается username из obsidian
|
||||
>- 2 поле) Указывается пароль или [токен](https://github.com/settings/tokens)
|
||||
>- 3 поле) Указывается Никнейм Автора коммита ( Stitch505 т.к. ты его создатель
|
||||
>- 5 поле) Указывается email от коммита (Свой еmail посмотреть в git)
|
||||
- Выставить тайминг в полях:
|
||||
>[!info]
|
||||
>Automatic-> Vault backup (Число)
|
||||
>Auto pull interval (Число)
|
||||
|
||||
> [!quote] Взято из [источника](https://gist.github.com/Makeshift/43c7ecb3f1c28a623ea4386552712114)
|
||||
|
||||
55
2. Проекты/OBSIDIAN/2. Obsidian_Windows/Синхронизация PC.md
Normal file
@@ -0,0 +1,55 @@
|
||||
<h2 align=center> Установка Git+ bash и настройка PC </h2>
|
||||
|
||||
1. Установить [Git](https://git-scm.com/download/win)
|
||||
2. Проверить что git установлен командой ```git —version```
|
||||
3. На PC нужно создать новую директорию в компьютере (папку)
|
||||
4. Устанавливаем [[BASH]]
|
||||
5. Открываем [[BASH]]
|
||||
- Открываем `windows terminal` (терминал) - Win 10
|
||||
- Открываем `power shell` (win 11)
|
||||
1. Переходим в баше в папку из пункта **3** `cd Путь_до_папки` пример `cd D:/OBSIDIAN/MY`
|
||||
2. В [[Gitea]] нужно создать новый репозиторий
|
||||
![[Pasted image 20240916001058.png]]
|
||||
В окне клонирования репозитория используем команды в окне bash
|
||||
```bash
|
||||
touch README.md
|
||||
git init
|
||||
git checkout -b main
|
||||
git add README.md
|
||||
git commit -m "first commit"
|
||||
```
|
||||
Затем используем команду `git pull --allow-unrelated-histories` (Команда откроет Git для авторизации)
|
||||
>[!warning] Указываем учётные данные из [[Gitea]] (логин и пароль)
|
||||
|
||||
Затем указываем оставшиеся команды:
|
||||
```bash
|
||||
git remote add origin https://gitea.stitch505.su:3000/Stitch505/OBS.git
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
<h2 align=center> Если изменилась ссылка на репозиторий </h2>
|
||||
|
||||
В [[BASH]] использовать команду `git remote set-url origin (ссылка`)
|
||||
Пример:
|
||||
`git remote set-url origin https://gitea.stitch505.su:3000/Stitch505/OBS.git`
|
||||
|
||||
Если есть ошибка c отправкой данных, то используй команду `git push origin main --force`
|
||||
|
||||
<h2 align=center> Плагин гит в Obsidian </h2>
|
||||
|
||||
1. Открыть настройки -> сторонние плагины -> Плагины сообщества -> git -> Установить
|
||||
2. Открыть настройки GIT
|
||||
3. Указать таймеры в полях `Vault backup interval (minutes)` и `Auto pull interval (minutes)` (у меня 5 минут)
|
||||
4. Указать в поле `Commit message on auto backup/commit` Auto base sync: {{date}}
|
||||
5. Указать в поле `Commit message on manual backup/commit` Base sync backup: {{date}}
|
||||
6. Включить функцию `Pull updates on startup`
|
||||
|
||||
>[!caution] (Ошибка obsidian) Cannot run git command set
|
||||
Решение: win+r -> sysdm.cpl
|
||||
> Дополнительно -> переменные среды
|
||||
> Системные среды -> Path -> изменить -> создать:
|
||||
> Указать C:\Program Files\Git\cmd" и нажать ОК ->ОК ->OK
|
||||
|
||||
>[!caution] ИЛИ
|
||||
>в cmd использовать команду set PATH=%PATH%;"C:\Program Files\Git\cmd"
|
||||
|
||||
2
2. Проекты/OBSIDIAN/Ссылки.md
Normal file
@@ -0,0 +1,2 @@
|
||||
1. [[Синхронизация PC]]
|
||||
2. [[Синхронизация Mobile]]
|
||||
54
2. Проекты/PROXY/1. Настройка и запуск прокси.md
Normal file
@@ -0,0 +1,54 @@
|
||||
>[!Danger] клонируем 3прокси
|
||||
```
|
||||
git clone https://github.com/tarampampam/3proxy-docker.git
|
||||
```
|
||||
|
||||
>[!Danger] Создаем необходимую директорию
|
||||
```
|
||||
mkdir -p /opt/3proxy/config
|
||||
```
|
||||
|
||||
>[!BUG] Готовим конфиг докер композ!
|
||||
|
||||
|
||||
```
|
||||
cat > /opt/3proxy/config/docker-compose.yml <<'YML'
|
||||
services:
|
||||
proxy:
|
||||
image: 3proxy/3proxy:latest
|
||||
container_name: 3proxy
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3128:3128" # HTTP наружу
|
||||
- "1081:1080" # SOCKS наружу, внутри 1080
|
||||
volumes:
|
||||
- /opt/3proxy/config/3proxy.cfg:/etc/3proxy/3proxy.cfg:ro
|
||||
YML
|
||||
```
|
||||
>[!Warning] Создание конфига!
|
||||
```
|
||||
cat > /opt/3proxy/config/3proxy.cfg <<'CFG'
|
||||
nscache 65536
|
||||
timeouts 1 5 30 60 180 1800 15 60
|
||||
log /dev/stdout
|
||||
rotate 0
|
||||
auth strong
|
||||
users LOGIN:CL:PASSWORD
|
||||
allow * * * *
|
||||
proxy -p3128
|
||||
socks -p1080
|
||||
CFG
|
||||
```
|
||||
|
||||
>[!Bug] запуск конта
|
||||
|
||||
```
|
||||
cd /opt/3proxy/config
|
||||
docker compose up -d
|
||||
docker logs -f 3proxy
|
||||
```
|
||||
|
||||
>[!tip]- Ожидаемые логи
|
||||
>Starting 3proxy
|
||||
Starting proxy on 0.0.0.0:3128
|
||||
Starting socks on 0.0.0.0:1080
|
||||
8
2. Проекты/PROXY/2. Добавление юзеров.md
Normal file
@@ -0,0 +1,8 @@
|
||||
>[!tip]+ открываем /opt/3proxy/config/3proxy.cfg
|
||||
>1) добавляем в файл юзера командой:
|
||||
>`sudo nano /opt/3proxy/config/3proxy.cfg`
|
||||
>прописываем через пробел в `users` новых юзеров
|
||||
>2) перезапускаем контейнер через:
|
||||
> `docker compose restart 3proxy`
|
||||
|
||||
|
||||
140
2. Проекты/Team_Speak/Поднятие проекта и настройка.md
Normal file
@@ -0,0 +1,140 @@
|
||||
### 🧩Шаг 1: Обновляем систему
|
||||
```
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
```
|
||||
- `apt update` — обновляет список доступных пакетов.
|
||||
- `apt upgrade -y` — устанавливает последние версии пакетов, `-y` автоматически подтверждает установку.
|
||||
### 🧰 Шаг 2: Создание пользователя для сервера
|
||||
```
|
||||
sudo adduser --disabled-login teamspeak
|
||||
```
|
||||
- `--disabled-login` — запрещает вход в систему для безопасности.
|
||||
- `teamspeak` — имя пользователя, можно изменить по желанию.
|
||||
### 📦 Шаг 3: Установка зависимостей
|
||||
```
|
||||
sudo apt install wget tar bzip2 libglib2.0-0 libstdc++6 -y
|
||||
```
|
||||
- `wget` — для загрузки файлов.
|
||||
- `tar`, `bzip2` — для распаковки архива с сервером.
|
||||
- `libglib2.0-0`, `libstdc++6` — системные библиотеки, нужные TS.
|
||||
### 📥Шаг 4: Загрузка TeamSpeak 3 сервера
|
||||
```
|
||||
cd /tmp
|
||||
|
||||
wget https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_amd64-3.13.7.tar.bz2
|
||||
```
|
||||
### 📂 Шаг 5: Распаковка и установка
|
||||
```
|
||||
tar -xvjf teamspeak3-server_linux_amd64-3.13.7.tar.bz2
|
||||
|
||||
sudo mv teamspeak3-server_linux_amd64 /opt/teamspeak
|
||||
```
|
||||
- `tar -xvjf` — распаковка архива:
|
||||
- `x` — извлечь, `v` — показать процесс, `j` — bzip2, `f` — файл.
|
||||
- `mv` — перемещаем сервер в `/opt/teamspeak`.
|
||||
### 🔐 Шаг 6: Назначаем владельца
|
||||
```
|
||||
sudo chown -R teamspeak:teamspeak /opt/teamspeak
|
||||
```
|
||||
`chown` — смена владельца папки на пользователя `teamspeak`.
|
||||
### 📜 Шаг 7: Принятие лицензии
|
||||
```
|
||||
sudo touch /opt/teamspeak/.ts3server_license_accepted
|
||||
```
|
||||
`touch` — создает пустой файл. Этот файл нужен для запуска без GUI-подтверждения лицензии.
|
||||
### ⚙️ Шаг 8: Создание systemd сервиса
|
||||
|
||||
Создаем файл юнита для запуска сервера как службы:
|
||||
```
|
||||
sudo nano /etc/systemd/system/teamspeak.service
|
||||
```
|
||||
Вставляем данные:
|
||||
```
|
||||
[Unit]
|
||||
Description=TeamSpeak 3 Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/teamspeak
|
||||
User=teamspeak
|
||||
Group=teamspeak
|
||||
ExecStart=/opt/teamspeak/ts3server_minimal_runscript.sh
|
||||
Restart=always
|
||||
RestartSec=15
|
||||
LimitNOFILE=10000
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
Сохраняем `Ctrl+O`, выходим `Ctrl+X`.
|
||||
### 🚀 Шаг 9: Запуск сервера
|
||||
```
|
||||
sudo systemctl daemon-reexec
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
sudo systemctl enable teamspeak --now
|
||||
```
|
||||
- `daemon-reexec` — перезапускает systemd (на всякий случай).
|
||||
- `daemon-reload` — загружает новые юниты.
|
||||
- `enable --now` — включает автозапуск и запускает прямо сейчас.
|
||||
### 🔍 Шаг 10: Проверка работы
|
||||
```
|
||||
sudo journalctl -u teamspeak -f
|
||||
```
|
||||
Показывает логи сервиса в реальном времени.
|
||||
##### *`Важно:` в первом запуске появится **admin token**, который нужно сохранить для входа с клиента.*
|
||||
### 🔓 Шаг 11: Открытие портов (если используется UFW)
|
||||
```
|
||||
sudo ufw allow 9987/udp # Голосовой порт
|
||||
sudo ufw allow 10011/tcp # ServerQuery
|
||||
sudo ufw allow 30033/tcp # File Transfer
|
||||
sudo ufw reload
|
||||
```
|
||||
Если используется `ufw` (брандмауэр Ubuntu):
|
||||
### 🔹 Шаг 11: Привязка домена к серверу
|
||||
|
||||
Перейди в панель управления DNS у твоего регистратора домена (например, reg.ru, Cloudflare, Timeweb и т.д.) и создай:
|
||||
```
|
||||
|Тип| |Имя| |Значение|
|
||||
|
||||
|A| teamspeak| `0.0.0.0` (**твой белый IP**)|
|
||||
```
|
||||
Это создаст поддомен `teamspeak.stitch505.su`, указывающий на твой сервер.
|
||||
### 🔎 11.2 Проверка доступности поддомена
|
||||
```
|
||||
ping teamspeak.stitch505.su
|
||||
```
|
||||
### 🔸 Шаг 12 (опционально): Настройка SRV-записи (для подключения по основному домену)
|
||||
|
||||
#### **🔧 Что такое SRV-запись?**
|
||||
- **тип сервиса** (например, TeamSpeak, SIP, Minecraft и т.д.),
|
||||
- **протокол** (обычно UDP или TCP),
|
||||
- **имя хоста**, где находится сервис,
|
||||
- **порт**, на котором он работает.
|
||||
|
||||
###### **SRV-запись (Service Record)** указывает:
|
||||
|
||||
| `Поле` | `Значение` | `Пояснение` |
|
||||
| ------------ | ----------------------- | -------------------------------------------------------------------- |
|
||||
| **Name** | ts3._udp.stitch505.su | `_ts3._udp` = сервис TeamSpeak по UDP, далее основной домен |
|
||||
| **Priority** | 0 | Приоритет записи, если их несколько. Меньше = важнее. |
|
||||
| **Weight** | 5 | Вес между SRV с одинаковым приоритетом. 5 — обычное значение. |
|
||||
| **Port**<br> | 9987 | Стандартный порт TeamSpeak 3.\| |
|
||||
| **Target** | teamspeak.stitch505.su. | Имя сервера, куда перенаправлять. Точка в конце — обязательна в DNS. |
|
||||
>[!Danger] ❗ **ВАЖНО**:
|
||||
>- **"Name" — это не просто `_ts3._udp`**, а полный путь вида: `_ts3._udp.stitch505.su`
|
||||
>- **"Target" должен оканчиваться на точку**, чтобы DNS понимал, что это **FQDN** (полное доменное имя), а не поддомен текущего имени.
|
||||
|
||||
|
||||
|
||||
# Если ты просрал ключ админа для первого входа:
|
||||
|
||||
>[!failure] ### УДАЛЯЙ ЛИНУКС ЭТО НЕ ТВОЁ
|
||||
|
||||
>[!Success] либо Вводим команду:
|
||||
```
|
||||
sudo journalctl -u teamspeak -b -n 100 | grep token
|
||||
```
|
||||
>[!failure] Копируем данные после `token=` и вставляем в ТС
|
||||
|
||||
BIN
2. Проекты/VPN_MARZBAN.rar
Normal file
@@ -0,0 +1,139 @@
|
||||
>[!Example]- **Установка Marzban, создание админа и открытие панели**
|
||||
> Установить marzban нужно командой:
|
||||
> `sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install`
|
||||
> >[!Bug] этой командой идёт установка **LAST** версии `marzban`
|
||||
>
|
||||
> **После установки Marzban, нужно установить пользователя **
|
||||
>
|
||||
> >[!Todo] Создание админа и его пароля производится командой:
|
||||
>>`marzban cli admin create --sudo`
|
||||
>>Указываете (Name_user) -> enter
|
||||
>>Указываете (Password) -> enter
|
||||
>>Указываете 2 раз тот же (Password) -> enter
|
||||
>>>[!warning] Остальное можно просто скипнуть нажав enter
|
||||
>
|
||||
>Установка завершена, открыть панель можно будет только после подключения домена и сертификатов:
|
||||
>Для входа укажите созданные вами login и password
|
||||
|
||||
>[!Danger]+ **С момента создания протокола и до момента, пока не будут отредактированы важные файлы, marzban НЕ ДАСТ сохранить конфигурацию, это нормальное поведение!!**
|
||||
|
||||
>[!note] **Переход в [[Создание сертификатов и их внесение в marzban]]**
|
||||
|
||||
Теперь нужно сделай отладку и настройку впн сервиса.
|
||||
|
||||
>[!Example]- **Создание VLESS протокола**
|
||||
> 1) нужно находясь в панели открыть основные настройки:
|
||||
>![[Pasted image 20260122105030.png]]
|
||||
>**Теперь нам нужно опустится до строки** `inbound`
|
||||
> Нажимаем enter и вставляем [[Vless-код]], как это должно выглядеть смотрите ниже:
|
||||
![[Pasted image 20260122120855.png]]
|
||||
|
||||
>[!Example]- **Поиск подходящего сайта**
|
||||
>Нам нужно найти сайт у которого: `**минимальный пинг, tls 1.3 и 1.2, сайт не за CDN сервисом**`
|
||||
>
|
||||
>**для поиска подходящего сайта открываем две новых вкладки в браузере с гугл поиском где:**
|
||||
**1 вкладка** - Пишем в поисковой строке `site:nl` (`NL` так будут искаться все сайты страны)
|
||||
> 1) После загрузки запроса будут выведены сайты нужной нам страны.
|
||||
> 2) Открываем сайты **и копируем из ссылки ТОЛЬКО доменную часть типа "nos.nl"**
|
||||
>
|
||||
>**2 вкладка** Открываем сайт `https://www.cdn77.com/tls-test` и вставляем скопированный домен из *1 вкладки* -> нажимаем _Enter_ и ждем когда прогрузятся данные
|
||||
>
|
||||
> После загрузки данных мы видим данные о `tls и ssl У сайта` в конечном итоге данные должны выглядеть вот так:
|
||||
> ![[Pasted image 20260122121428.png]]
|
||||
>
|
||||
>>[!Danger] **Если информация грузится больше 4-х секунд, то переходим к следующему сайту из найденных в гугл**
|
||||
>
|
||||
>Теперь нужно проверить пинг от нас до сайта, в консоли вашего сервера пишем:
|
||||
>`ping npo.nl` -> enter
|
||||
>>[!Warning] достаточно 10 запросов чтобы понять отклик в миллисекундах, затем нажимаем `CTRL+C` для остановки запросов к сайту
|
||||
>
|
||||
>в конечном итоге на экране консоли будет выдана такая информация:
|
||||
>![[Pasted image 20260122121511.png]]
|
||||
>
|
||||
>>[!Info] На примере скриншота видно, что пинг огромный, а значит нужно продолжать искать сайт с подходящими условиями (**у сайта должны работать tls 1.2 и tls 1.3**) и минимальным пингом
|
||||
|
||||
>[!Example]- **Внесение домена найденного сайта с соответствующими требованиями**
|
||||
>
|
||||
>**Когда нужный сайт найден, возвращаемся в основные настройки и указываем в полях:**
|
||||
>`dest` домен сервера:443
|
||||
>`serverNames` домен сервера
|
||||
>**Итоговый пример** ![[Pasted image 20260122121951.png]]
|
||||
|
||||
>[!Example]- **Генерация `ключей шифрования` и параметра `shortIds` и внесения в панель**
|
||||
>осуществляется командами:
|
||||
> `docker exec marzban-marzban-1 xray x25519`
|
||||
>`openssl rand -hex 8`
|
||||
>После генерации данных нужно их также внести в панель марзбана в поля:
|
||||
>`privateKey`
|
||||
>`shordlds`
|
||||
>Итоговый пример ![[Pasted image 20260122122309.png]]
|
||||
>
|
||||
>>[!Tip] лучше сгенерировать более `**3-4 shortid**`
|
||||
>
|
||||
>**Теперь нажимаем сохранить и перезапустить ядро + обновляем страницу**
|
||||
|
||||
>[!Bug] Теперь настройка warp чтобы не палился айпи нидерланд [[3. Подключение WARP к Marz]]
|
||||
|
||||
|
||||
|
||||
|
||||
>[!BUG]- **Инструкция: подключение Linux-сервера к AdGuard Home через нестандартный порт (5300) через systemd-resolved**
|
||||
>
|
||||
> 3. **Убедись, что на сервере-клиенте установлен systemd-resolved**
|
||||
>
|
||||
>Для большинства современных дистрибутивов (Ubuntu, Debian, Fedora) это уже так:
|
||||
>
|
||||
>`systemctl status systemd-resolved`
|
||||
>
|
||||
>Если не активен, запусти:
|
||||
>
|
||||
>`systemctl enable --now systemd-resolved`
|
||||
>
|
||||
>### 2. **Отредактируй файл /etc/systemd/resolved.conf**
|
||||
>
|
||||
Открой файл:
|
||||
>
|
||||
>`nano /etc/systemd/resolved.conf`
|
||||
>
|
||||
>Добавь (или измени) строчки:
|
||||
>
|
||||
> ` [Resolve]DNS=45.95.232.245:5300`
|
||||
> `FallbackDNS=8.8.8.8 1.1.1.1`
|
||||
> тогда если твой сервер недоступен, будет fallback на них.
|
||||
>
|
||||
>### 3. **Убедись, что /etc/resolv.conf — симлинк**
|
||||
>
|
||||
> Проверь:
|
||||
>
|
||||
> `ls -l /etc/resolv.conf`
|
||||
>
|
||||
Должно быть:
|
||||
>
|
||||
> `/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf`
|
||||
>
|
||||
> Если не так, исправь:
|
||||
>` rm -f /etc/resolv.conf`
|
||||
> `ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf`
|
||||
>### 4. **Перезапусти systemd-resolved**
|
||||
>
|
||||
> `systemctl restart systemd-resolved`
|
||||
>
|
||||
>### 5. **Проверь DNS**
|
||||
>
|
||||
> Выполни:
|
||||
> `dig ya.ru`
|
||||
>
|
||||
> или
|
||||
>
|
||||
> `systemd-resolve ya.ru`
|
||||
>
|
||||
> Ответ должен прийти, DNS-сервер будет 127.0.0.53, а на самом деле он будет перенаправлен через твой AdGuard Home на 5300 порту.
|
||||
>
|
||||
>## **Если не работает:**
|
||||
>
|
||||
>- Проверь открытость порта на сервере AdGuard Home:
|
||||
>
|
||||
> `nc -v 45.95.232.245 5300`
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
>[!Example]- Создание конфига WireGuard для ВАРПА
|
||||
> 1. Установим WARP Командой
|
||||
>```
|
||||
>wget https://github.com/ViRb3/wgcf/releases/download/v2.2.29/wgcf_2.2.29_linux_amd64
|
||||
>```
|
||||
>2. Перемещаем скачанный файл в /usr/bin и меняем его имя на wgcf
|
||||
>**(тупо скопируй команду и вставь)**
|
||||
>```
|
||||
>mv wgcf_2.2.29_linux_amd64 /usr/bin/wgcf && chmod +x /usr/bin/wgcf
|
||||
>```
|
||||
>3. Генерируем конфиг Варпа
|
||||
>**(скопируй команду и вставь)**
|
||||
>```
|
||||
wgcf register
|
||||
wgcf generate
|
||||
>```
|
||||
>**Скопируй сгенерированные данные, они будут нужны дальше**
|
||||
>>[!Tip] а теперь настройка [[3.1 Создание, настройка и подключение конфига warp к марзбан]]
|
||||
|
||||
>[!Bug]- ЧЕК ЛИСТ ОБЯЗАТЕЛЬНЫЙ!!!
|
||||
>
|
||||
>1. Проверка статуса сервиса:
|
||||
> `systemctl status wire-proxy`
|
||||
> Должен быть ***active (running)***
|
||||
> _________________________________________
|
||||
> 2. Проверка порта SOCKS:
|
||||
> `ss -tlnp | grep 40000`
|
||||
> ***Должен показать wireproxy на порту 40000***
|
||||
> _________________________________________
|
||||
> 3. Проверка WARP через прокси
|
||||
> `curl -x socks5h://127.0.0.1:40000 https://www.cloudflare.com/cdn-cgi/trace/ | grep warp`
|
||||
> ***Должно показать warp=on или warp=plus***
|
||||
> _________________________________________
|
||||
> 4. Проверка IP через прокси
|
||||
> `curl -x socks5h://127.0.0.1:40000 https://ifconfig.me`
|
||||
> ***Должен показать IP Cloudflare, отличный от вашего серверного.***
|
||||
> _________________________________________
|
||||
> 5. Перезапуск
|
||||
>`systemctl restart wireproxy`
|
||||
>>[!Tip] Ну и всё, всё должно работать Ссылки на программы для впн с прикрепил ниже
|
||||
|
||||
**КЛИКАБЕЛЬНЫЕ ССЫЛКИ НА ПО И ИНСТРУКЦИИ**
|
||||
1 - FLCLASH[[#^77e0a0]]
|
||||
2 - KARING [[#^6031ae]]
|
||||
3 - HAPP [[#^89f989]]
|
||||
|
||||
|
||||
[Первая программа](https://github.com/chen08209/FlClash/releases/tag/v0.8.91) - После установки нужно включить эти функции:
|
||||
|
||||
|
||||
![[Pasted image 20260122125300.png]]
|
||||
![[Pasted image 20260122125348.png]]
|
||||
![[Pasted image 20260122125421.png]] ^77e0a0
|
||||
|
||||
[Второе приложение](https://github.com/KaringX/karing/releases/tag/v1.2.11.1406)
|
||||
тут всё просто: ^6031ae
|
||||
1) после установки всё пропускаем
|
||||
2) Нажимаем добавить профиль
|
||||
3) в самом низу нажимаем на конфигурации и выбираем нужно
|
||||
![[Pasted image 20260122125654.png]]
|
||||
![[Pasted image 20260122125750.png]]
|
||||
|
||||
**[Третье приложение](https://www.happ.su/main/ru)** ^89f989
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
>[!bug]+ Установка Wireproxy
|
||||
>Используй команды ниже
|
||||
```
|
||||
wget https://github.com/octeep/wireproxy/releases/download/v1.0.9/wireproxy_linux_amd64.tar.gz
|
||||
tar -xzf wireproxy_linux_amd64.tar.gz
|
||||
mv wireproxy /usr/local/bin/
|
||||
chmod +x /usr/local/bin/wireproxy
|
||||
```
|
||||
>[!danger] Создания конфигурации
|
||||
> `nano /etc/wireproxy.conf`
|
||||
> **вставить код ниже**
|
||||
|
||||
```
|
||||
[Interface]
|
||||
PrivateKey = <ваш_приватный_ключ_из_wgcf-profile.conf>
|
||||
Address = <ваш_адрес_из_wgcf-profile.conf>
|
||||
DNS = 1.1.1.1
|
||||
|
||||
[Peer]
|
||||
PublicKey = <публичный_ключ_пира_из_wgcf-profile.conf>
|
||||
Endpoint = engage.cloudflareclient.com:2408
|
||||
AllowedIPs = 0.0.0.0/0, ::/0
|
||||
|
||||
[Socks5]
|
||||
BindAddress = 127.0.0.1:40000
|
||||
```
|
||||
>[!danger] Создания конфигурации
|
||||
>`nano /etc/systemd/system/wire-proxy.service`
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=Wireproxy WARP SOCKS5 Proxy
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/wireproxy -c /etc/wireproxy.conf
|
||||
Restart=always
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
>[!bug] Подключение и запуск
|
||||
> systemctl daemon-reload
|
||||
> systemctl enable --now wire-proxy
|
||||
>>[!tip] ***Молодец, теперь проверь по чек листу*** [[3. Подключение WARP к Marz]]
|
||||
@@ -0,0 +1 @@
|
||||
![[vivaldi_lH5qIAPZ2n.gif]]
|
||||
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 145 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 167 KiB |
@@ -0,0 +1,31 @@
|
||||
"outbounds": [
|
||||
{
|
||||
"tag": "WARP",
|
||||
"protocol": "wireguard",
|
||||
"settings": {
|
||||
"secretKey": "Ваш_Параметр1",
|
||||
"DNS": "1.1.1.1",
|
||||
"address": [ "172.16.0.2/32",
|
||||
"Ваш_Параметр2"
|
||||
],
|
||||
"peers": [
|
||||
{
|
||||
"publicKey": "Ваш_Параметр3",
|
||||
"endpoint": "engage.cloudflareclient.com:2408"
|
||||
}
|
||||
],
|
||||
"kernelMode": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"protocol": "freedom",
|
||||
"tag": "DIRECT"
|
||||
},
|
||||
{
|
||||
"protocol": "blackhole",
|
||||
"tag": "BLOCK"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
Тут смотреть в коде на **Ваш_Параметр** и менять на **свои**
|
||||
@@ -0,0 +1,30 @@
|
||||
```json
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"outboundTag": "WARP",
|
||||
"domain": [
|
||||
"geosite:google",
|
||||
"geosite:openai"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "DIRECT",
|
||||
"domain": [
|
||||
"full:cp.cloudflare.com",
|
||||
"domain:msftconnecttest.com",
|
||||
"domain:msftncsi.com",
|
||||
"domain:connectivitycheck.gstatic.com",
|
||||
"domain:captive.apple.com",
|
||||
"full:detectportal.firefox.com",
|
||||
"domain:networkcheck.kde.org",
|
||||
"full:*.gstatic.com"
|
||||
],
|
||||
"type": "field"
|
||||
}
|
||||
]
|
||||
},
|
||||
```
|
||||
он уже **готовый** и вставляется ниже строки **"routing": {**
|
||||
![[Pasted image 20241007062448.png]]
|
||||
238
2. Проекты/VPN_MARZBAN/2. Инструкция Marzban/Коды/Vless-код.md
Normal file
@@ -0,0 +1,238 @@
|
||||
**Скопировать и вставить в настройки - шестеренка**
|
||||
```
|
||||
{
|
||||
"log": {
|
||||
"loglevel": "warning"
|
||||
},
|
||||
"dns": {
|
||||
"servers": [
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"port": 5300
|
||||
}
|
||||
]
|
||||
},
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"outboundTag": "WARP",
|
||||
"domain": [
|
||||
"reddit.com",
|
||||
"rezka.ac",
|
||||
"whoer.net",
|
||||
"geosite:telegram",
|
||||
"maintracker.org",
|
||||
"rutracker.cc",
|
||||
"rutracker.cr",
|
||||
"rutracker.me",
|
||||
"rutracker.nl",
|
||||
"rutracker.org",
|
||||
"rutrecker.net",
|
||||
"rutrk.org",
|
||||
"nnmclub.to",
|
||||
"reddit.com",
|
||||
"rezka.ac",
|
||||
"whoer.net",
|
||||
"regexp:.*\\.ru",
|
||||
"regexp:.*\\.su",
|
||||
"geosite:category-ru",
|
||||
"geosite:category-gov-ru",
|
||||
"carousell.com",
|
||||
"youtube.googleapis.com",
|
||||
"grok.com",
|
||||
"stake1039.com",
|
||||
"denuvo.net"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "DIRECT",
|
||||
"domain": [
|
||||
"jut.su",
|
||||
"geosite:category-ru",
|
||||
"speedtest.net",
|
||||
"proton.me",
|
||||
"mail.proton.me",
|
||||
"regexp:^.*.rutube.ru$",
|
||||
"geosite:microsoft",
|
||||
"instagram.com",
|
||||
"geosite:google",
|
||||
"geosite:openai",
|
||||
"2ip.ru",
|
||||
"googlevideo.com",
|
||||
"go.skillbox.ru"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "DIRECT",
|
||||
"protocol": [
|
||||
"bittorrent"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "BLOCK",
|
||||
"domain": [
|
||||
"geosite:category-ads-all",
|
||||
"ads.youtube.com"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"ip": [
|
||||
"geoip:private"
|
||||
],
|
||||
"outboundTag": "BLOCK",
|
||||
"type": "field"
|
||||
}
|
||||
]
|
||||
},
|
||||
"inbounds": [
|
||||
{
|
||||
"tag": "VLESS GRPC REALITY",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 4443,
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "grpc",
|
||||
"grpcSettings": {
|
||||
"serviceName": "google"
|
||||
},
|
||||
"security": "reality",
|
||||
"realitySettings": {
|
||||
"show": false,
|
||||
"dest": "google.com:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"google.com",
|
||||
"yaahoo.com",
|
||||
"bing.com"
|
||||
],
|
||||
"privateKey": "#Вставь сюда данные",
|
||||
"SpiderX": "/",
|
||||
"shortIds": [
|
||||
#Вставь сюда данные
|
||||
]
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "VMESS TCP",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 8081,
|
||||
"protocol": "vmess",
|
||||
"settings": {
|
||||
"clients": []
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"tcpSettings": {
|
||||
"header": {
|
||||
"type": "http",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"path": [
|
||||
"/"
|
||||
],
|
||||
"headers": {
|
||||
"Host": [
|
||||
"google.com"
|
||||
]
|
||||
}
|
||||
},
|
||||
"response": {}
|
||||
}
|
||||
},
|
||||
"security": "none"
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "VLESS TCP REALITY",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 8443,
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"tcpSettings": {},
|
||||
"security": "reality",
|
||||
"realitySettings": {
|
||||
"show": false,
|
||||
"dest": "google.com:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"google.com",
|
||||
"yaahoo.com",
|
||||
"bing.com"
|
||||
],
|
||||
"privateKey": "#Вставь сюда данные",
|
||||
"shortIds": [
|
||||
#Вставь сюда данные
|
||||
]
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "Shadowsocks TCP",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 1080,
|
||||
"protocol": "shadowsocks",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"network": "tcp,udp"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "freedom",
|
||||
"tag": "DIRECT"
|
||||
},
|
||||
{
|
||||
"protocol": "blackhole",
|
||||
"tag": "BLOCK"
|
||||
},
|
||||
{
|
||||
"tag": "WARP",
|
||||
"protocol": "socks",
|
||||
"settings": {
|
||||
"servers": [
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"port": 40000
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,51 @@
|
||||
>[!Tip]- **Установка socat и cron:**
|
||||
`apt install cron socat`
|
||||
|
||||
>[!tip]- **Устанавливаем acme.sh**
|
||||
>>[!Bug] EMAIL = Это ваш email
|
||||
> `curl https://get.acme.sh | sh -s email=EMAIL`
|
||||
>sdfsdf
|
||||
|
||||
>[!tip]- **Создание директории для сертификатов**
|
||||
>`mkdir -p /var/lib/marzban/certs/`
|
||||
|
||||
>[!Tip]+ Получение сертификата
|
||||
>>[!Danger] Введите ваш **домен или субдомен** в поле `**YOUR_DOMEN**`
|
||||
>>**Ниже 1 единая команда!!!**
|
||||
>
|
||||
|
||||
```
|
||||
|
||||
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt --issue --standalone -d YOUR_DOMEN \
|
||||
--key-file /var/lib/marzban/certs/key.pem \
|
||||
--fullchain-file /var/lib/marzban/certs/fullchain.pem
|
||||
|
||||
```
|
||||
|
||||
Проверить список выпущенных сертификатов можно командой:
|
||||
```
|
||||
~/.acme.sh/acme.sh --list
|
||||
```
|
||||
|
||||
|
||||
>[!Tip]- **Редактирование данных в файле .env**
|
||||
>После создания сертификатов, нужно отредактировать файл
|
||||
>1) Открываем файл командой:
|
||||
>2) `nano /opt/marzban/.env`
|
||||
>Делаем изменения в полях:
|
||||
>3) `UVICORN_PORT = 8443`
|
||||
>4) `UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/fullchain.pem"`
|
||||
>5) `UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/key.pem"`
|
||||
>6) `XRAY_SUBSCRIPTION_URL_PREFIX` = https://YOUR_DOMAIN (Ковычки удаляем)
|
||||
>7) *Пример ниже, красное как было, зеленое как стало*
|
||||
>![[Pasted image 20260122110626.png]]
|
||||
|
||||
После редактирования нужно перезапустить марзбан командой:
|
||||
`sudo marzban restart`
|
||||
|
||||
>[!Tip] Теперь впн панель должен быть доступен по ссылке ниже
|
||||
> https://YOUR-DOMEN:8000/dashboard/#/
|
||||
> **Вставь свой домен в `YOUR-DOMEN`**
|
||||
|
||||
|
||||
>[!Note] Переход в [[2. Ручная установка и настройка marzban]]
|
||||
@@ -0,0 +1,274 @@
|
||||
```
|
||||
{
|
||||
"log": {
|
||||
"loglevel": "warning"
|
||||
},
|
||||
"dns": {
|
||||
"servers": [
|
||||
"1.1.1.1"
|
||||
]
|
||||
},
|
||||
"routing": {
|
||||
"rules": [
|
||||
{
|
||||
"outboundTag": "DIRECT",
|
||||
"domain": [
|
||||
"jut.su",
|
||||
"geosite:category-ru",
|
||||
"proton.me",
|
||||
"mail.proton.me",
|
||||
"regexp:^.*.rutube.ru$",
|
||||
"geosite:microsoft",
|
||||
"instagram.com",
|
||||
"whoer.net",
|
||||
"youtube.com",
|
||||
"youtube.googleapis.com",
|
||||
"googlevideo.com"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "DIRECT",
|
||||
"protocol": [
|
||||
"bittorrent"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"outboundTag": "BLOCK",
|
||||
"domain": [
|
||||
"geosite:category-ads-all",
|
||||
"ads.youtube.com"
|
||||
],
|
||||
"type": "field"
|
||||
},
|
||||
{
|
||||
"ip": [
|
||||
"geoip:private"
|
||||
],
|
||||
"outboundTag": "BLOCK",
|
||||
"type": "field"
|
||||
}
|
||||
]
|
||||
},
|
||||
"inbounds": [
|
||||
{
|
||||
"tag": "VMess TCP",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 8081,
|
||||
"protocol": "vmess",
|
||||
"settings": {
|
||||
"clients": []
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"tcpSettings": {
|
||||
"header": {
|
||||
"type": "http",
|
||||
"request": {
|
||||
"method": "GET",
|
||||
"path": [
|
||||
"/"
|
||||
],
|
||||
"headers": {
|
||||
"Host": [
|
||||
"google.com"
|
||||
]
|
||||
}
|
||||
},
|
||||
"response": {}
|
||||
}
|
||||
},
|
||||
"security": "none"
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "VMess Websocket",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 8080,
|
||||
"protocol": "vmess",
|
||||
"settings": {
|
||||
"clients": []
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "ws",
|
||||
"wsSettings": {
|
||||
"path": "/",
|
||||
"headers": {
|
||||
"Host": "google.com"
|
||||
}
|
||||
},
|
||||
"security": "none"
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "VLESS TCP REALITY",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 8443,
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "tcp",
|
||||
"tcpSettings": {},
|
||||
"security": "reality",
|
||||
"realitySettings": {
|
||||
"show": false,
|
||||
"dest": "discordapp.com:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"discordapp.com"
|
||||
],
|
||||
"privateKey": "wI494sqcfCIErXDiGWIOusJSIMCs_Di0R5nRifjIzgQ",
|
||||
"shortIds": [
|
||||
"",
|
||||
"e20f777f3e6b06ec"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "VLESS GRPC REALITY",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 2053,
|
||||
"protocol": "vless",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"decryption": "none"
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "grpc",
|
||||
"grpcSettings": {
|
||||
"serviceName": "xyz"
|
||||
},
|
||||
"security": "reality",
|
||||
"realitySettings": {
|
||||
"show": false,
|
||||
"dest": "discordapp.com:443",
|
||||
"xver": 0,
|
||||
"serverNames": [
|
||||
"cdn.discordapp.com",
|
||||
"discordapp.com"
|
||||
],
|
||||
"privateKey": "MMX7m0Mj3faUstoEm5NBdegeXkHG6ZB78xzBv2n3ZUA",
|
||||
"shortIds": [
|
||||
"",
|
||||
"6ba85179e30d4fc2"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "Trojan Websocket TLS",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 2083,
|
||||
"protocol": "trojan",
|
||||
"settings": {
|
||||
"clients": []
|
||||
},
|
||||
"streamSettings": {
|
||||
"network": "ws",
|
||||
"security": "tls",
|
||||
"tlsSettings": {
|
||||
"certificates": [
|
||||
{
|
||||
"certificate": [
|
||||
"-----BEGIN CERTIFICATE-----",
|
||||
"MIIBvTCCAWOgAwIBAgIRAIY9Lzn0T3VFedUnT9idYkEwCgYIKoZIzj0EAwIwJjER",
|
||||
"MA8GA1UEChMIWHJheSBJbmMxETAPBgNVBAMTCFhyYXkgSW5jMB4XDTIzMDUyMTA4",
|
||||
"NDUxMVoXDTMzMDMyOTA5NDUxMVowJjERMA8GA1UEChMIWHJheSBJbmMxETAPBgNV",
|
||||
"BAMTCFhyYXkgSW5jMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGAmB8CILK7Q1",
|
||||
"FG47g5VXg/oX3EFQqlW8B0aZAftYpHGLm4hEYVA4MasoGSxRuborhGu3lDvlt0cZ",
|
||||
"aQTLvO/IK6NyMHAwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMB",
|
||||
"MAwGA1UdEwEB/wQCMAAwOwYDVR0RBDQwMoILZ3N0YXRpYy5jb22CDSouZ3N0YXRp",
|
||||
"Yy5jb22CFCoubWV0cmljLmdzdGF0aWMuY29tMAoGCCqGSM49BAMCA0gAMEUCIQC1",
|
||||
"XMIz1XwJrcu3BSZQFlNteutyepHrIttrtsfdd05YsQIgAtCg53wGUSSOYGL8921d",
|
||||
"KuUcpBWSPkvH6y3Ak+YsTMg=",
|
||||
"-----END CERTIFICATE-----"
|
||||
],
|
||||
"key": [
|
||||
"-----BEGIN RSA PRIVATE KEY-----",
|
||||
"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7ptMDsNFiL7iB5N5",
|
||||
"gemkQUHIWvgIet+GiY7x7qB13V6hRANCAAQYCYHwIgsrtDUUbjuDlVeD+hfcQVCq",
|
||||
"VbwHRpkB+1ikcYubiERhUDgxqygZLFG5uiuEa7eUO+W3RxlpBMu878gr",
|
||||
"-----END RSA PRIVATE KEY-----"
|
||||
]
|
||||
}
|
||||
],
|
||||
"minVersion": "1.2",
|
||||
"cipherSuites": "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
|
||||
}
|
||||
},
|
||||
"sniffing": {
|
||||
"enabled": true,
|
||||
"destOverride": [
|
||||
"http",
|
||||
"tls"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tag": "Shadowsocks TCP",
|
||||
"listen": "0.0.0.0",
|
||||
"port": 1080,
|
||||
"protocol": "shadowsocks",
|
||||
"settings": {
|
||||
"clients": [],
|
||||
"network": "tcp,udp"
|
||||
}
|
||||
}
|
||||
],
|
||||
"outbounds": [
|
||||
{
|
||||
"protocol": "freedom",
|
||||
"tag": "DIRECT"
|
||||
},
|
||||
{
|
||||
"protocol": "blackhole",
|
||||
"tag": "BLOCK"
|
||||
},
|
||||
{
|
||||
"tag": "WARP",
|
||||
"protocol": "socks",
|
||||
"settings": {
|
||||
"servers": [
|
||||
{
|
||||
"address": "127.0.0.1",
|
||||
"port": 40000
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,2 @@
|
||||
>[!bug]
|
||||
>**https://www.merralius.cfd**
|
||||