Initial import from PC

This commit is contained in:
2026-01-26 17:16:52 +04:00
commit 726e948a13
827 changed files with 179315 additions and 0 deletions

View 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]]

View 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]]

View File

@@ -0,0 +1,16 @@
Пока Nginx не настроен, зайдем напрямую через порт 3000.
1. Откройте в браузере: `http://IP-ВАШЕГО-СЕРВЕРА:3000`.
2. Нажмите "Начать".
3. **Важно на этапе "Веб-интерфейс":**
- Сетевой интерфейс: `Все интерфейсы`
- Порт: **80** (Оставьте как есть! Docker сам перенаправит с 8480 на 80).
4. **На этапе "DNS-сервер":**
- Порт: **53**.
5. Создайте логин/пароль и завершите настройку.
>[!Bug] Переход в [[4. Получение SSL-сертификатов]]

View 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 как Прокси]]

View 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
```

View 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```

View 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
```

View 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]]

View File

@@ -0,0 +1 @@
[[Gitea установка (PC)]]

View File

@@ -0,0 +1,5 @@
{
"version": "2.0",
"hint": "Your_name",
"encodedData": "9iac6AQiuP4rQQKNhXlrQ200TYprZdYtNx2SJMQtTCwHnI8qQO/v8zH5SZhBMhUixxfALVSULjXZ43KnNduMOQvGfCdJRVjqjZ+KteLkGPulOPftc8u3I5tP"
}

View 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

View 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 сайта]]

View 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]]

View 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. Проверки работоспособности]]
>

View 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)*

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

View 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;
}
```

View File

@@ -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/`

View 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`

View File

@@ -0,0 +1,11 @@
<h2 align=center> Совершаем установку пошагово (1,2,3) </h2>
>[!example]
> [[LAMP apache2]]
> [[LAMP mariadb]]
> [[LAMP PHP8.3]]
>[!warning] Теперь возвращаемся в [[1. Установка и настройка Nextcloud]]

View File

@@ -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]]

View File

@@ -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]]

View File

@@ -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]]

View 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]]

View 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

View File

@@ -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]]

View File

@@ -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)

View 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"

View File

@@ -0,0 +1,2 @@
1. [[Синхронизация PC]]
2. [[Синхронизация Mobile]]

View 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

View 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`

View 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=` и вставляем в ТС

Binary file not shown.

View 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`

View File

@@ -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

View File

@@ -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]]

View File

@@ -0,0 +1 @@
![[vivaldi_lH5qIAPZ2n.gif]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

View File

@@ -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"
}
]
}
```
Тут смотреть в коде на **Ваш_Параметр** и менять на **свои**

View File

@@ -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]]

View 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
}
]
}
}
]
}
```

View File

@@ -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]]

View File

@@ -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
}
]
}
}
]
}
```

View File

@@ -0,0 +1,2 @@
>[!bug]
>**https://www.merralius.cfd**