🗂️ Реструктуризация vault: логичная организация папок
Изменения: - Интеграция СУП/ → Работа/Интеграция СУП/ (рабочие заметки вместе) - Релизы/ → Работа/Релизы/ (рабочие заметки вместе) - Другое/Собеседование .Net → Работа/ (рабочая тема) - Другое/Своя игра → Личное/ (хобби) - Smart home/ → Квартира/ (всё про квартиру в одном месте) - Flutter/, Go/ → Dev/Flutter/, Dev/Go/ (учебные роадмапы) - Dev/Pulse/competitors-analysis → Projects/Pulse/ (проект Pulse в одной папке) - Twilio.md → Dev/ (техническая заметка) - Tokens.md → Личное/Tokens (API keys).md - Игры.md → Личное/Игры.md - Удалены пустые папки: Другое/, Smart home/, Интеграция СУП/, Релизы/ Структура: Авто/ — автомобили Dev/ — разработка, изучение (Go, Flutter, репозитории) Квартира/ — квартира + умный дом Личное/ — личное, токены, игры, команды Мама/ — проекты для мамы Projects/ — Pulse App Работа/ — BPMSoft, интеграции, релизы Япония/ — путешествие saved-articles/ — сохранённые статьи voice-notes/ — голосовые заметки
This commit is contained in:
454
Квартира/Smart home.md
Normal file
454
Квартира/Smart home.md
Normal file
@@ -0,0 +1,454 @@
|
||||
## Этап 1: Подготовка железа и Proxmox
|
||||
|
||||
**1.1 Установка Proxmox**
|
||||
|
||||
- Скачайте Proxmox VE ISO с официального сайта
|
||||
- Создайте загрузочную флешку (Rufus/Etcher)
|
||||
- Установите Proxmox на мини-ПК
|
||||
- После установки заходите в веб-интерфейс: `https://IP-адрес:8006`
|
||||
|
||||
**1.2 Базовая настройка Proxmox**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
# Подключитесь по SSH к Proxmox
|
||||
# Отключите enterprise репозиторий (если нет подписки)
|
||||
nano /etc/apt/sources.list.d/pve-enterprise.list
|
||||
# Закомментируйте строку (#)
|
||||
|
||||
# Добавьте community репозиторий
|
||||
nano /etc/apt/sources.list
|
||||
# Добавьте: deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
|
||||
|
||||
# Обновите систему
|
||||
apt update && apt upgrade -y
|
||||
```
|
||||
|
||||
## Этап 2: Регистрация домена и настройка Cloudflare
|
||||
|
||||
**2.1 Регистрация домена на reg.ru**
|
||||
|
||||
- Зарегистрируйте домен (например, `mysmarthome.ru`)
|
||||
- Не настраивайте пока ничего на reg.ru
|
||||
|
||||
**2.2 Перенос DNS на Cloudflare**
|
||||
|
||||
- Создайте бесплатный аккаунт на cloudflare.com
|
||||
- Добавьте ваш домен ("Add site")
|
||||
- Cloudflare покажет nameservers (типа `ns1.cloudflare.com`)
|
||||
- Зайдите в личный кабинет reg.ru → Управление доменом → DNS-серверы
|
||||
- Замените DNS-серверы reg.ru на серверы Cloudflare
|
||||
- Ждите 24 часа (обычно происходит быстрее)
|
||||
|
||||
**2.3 Базовая настройка Cloudflare**
|
||||
|
||||
- В Cloudflare: SSL/TLS → выберите **"Full (strict)"**
|
||||
- Включите: "Always Use HTTPS"
|
||||
|
||||
## Этап 3: Создание LXC контейнера для Home Assistant
|
||||
|
||||
**3.1 Создание LXC через Proxmox**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
# В веб-интерфейсе Proxmox:
|
||||
# Create CT → выберите:
|
||||
# - Template: Debian 12
|
||||
# - RAM: 3072 MB
|
||||
# - CPU: 2 cores
|
||||
# - Disk: 32 GB
|
||||
# - Network: DHCP (запомните IP)
|
||||
# - Unprivileged: снимите галочку (для Home Assistant нужен privileged)
|
||||
```
|
||||
|
||||
**3.2 Установка Home Assistant в LXC**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
# Подключитесь к LXC через консоль Proxmox
|
||||
apt update && apt upgrade -y
|
||||
|
||||
# Установите зависимости
|
||||
apt install -y curl wget network-manager apparmor
|
||||
|
||||
# Установите Home Assistant через скрипт
|
||||
curl -Lo installer.sh https://get.hass.io
|
||||
bash installer.sh
|
||||
```
|
||||
|
||||
Через 10-15 минут Home Assistant будет доступен: `http://IP-LXC:8123`
|
||||
|
||||
## Этап 4: Создание VM с Docker
|
||||
|
||||
**4.1 Создание Ubuntu VM**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
# В Proxmox веб-интерфейсе:
|
||||
# Скачайте Ubuntu Server 24.04 ISO
|
||||
# Create VM:
|
||||
# - RAM: 10240 MB (10 ГБ)
|
||||
# - CPU: 4 cores
|
||||
# - Disk: 200 GB
|
||||
# - Network: DHCP
|
||||
```
|
||||
|
||||
**4.2 Установка Docker и Portainer**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
# Подключитесь к VM по SSH
|
||||
# Обновите систему
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
|
||||
# Установите Docker
|
||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||
sudo sh get-docker.sh
|
||||
|
||||
# Добавьте текущего пользователя в группу docker
|
||||
sudo usermod -aG docker $USER
|
||||
# Перелогиньтесь
|
||||
|
||||
# Установите Docker Compose
|
||||
sudo apt install docker-compose-plugin -y
|
||||
|
||||
# Установите Portainer
|
||||
docker volume create portainer_data
|
||||
docker run -d \
|
||||
-p 9000:9000 \
|
||||
-p 9443:9443 \
|
||||
--name=portainer \
|
||||
--restart=always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v portainer_data:/data \
|
||||
portainer/portainer-ce:latest
|
||||
```
|
||||
|
||||
Portainer доступен: `https://IP-VM:9443`
|
||||
|
||||
## Этап 5: Установка сервисов через Docker Compose
|
||||
|
||||
**5.1 Создайте структуру папок**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
mkdir -p ~/docker/{gitea,nextcloud,adguard,vaultwarden,cloudflared}
|
||||
cd ~/docker
|
||||
```
|
||||
|
||||
**5.2 Gitea**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
cd ~/docker/gitea
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
yaml
|
||||
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
restart: always
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- GITEA__database__DB_TYPE=postgres
|
||||
- GITEA__database__HOST=db:5432
|
||||
- GITEA__database__NAME=gitea
|
||||
- GITEA__database__USER=gitea
|
||||
- GITEA__database__PASSWD=gitea_password
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_USER=gitea
|
||||
- POSTGRES_PASSWORD=gitea_password
|
||||
- POSTGRES_DB=gitea
|
||||
volumes:
|
||||
- ./postgres:/var/lib/postgresql/data
|
||||
```
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
**5.3 Nextcloud**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
cd ~/docker/nextcloud
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
yaml
|
||||
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
restart: always
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=nextcloud_password
|
||||
- POSTGRES_DB=nextcloud
|
||||
- POSTGRES_USER=nextcloud
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
|
||||
app:
|
||||
image: nextcloud:latest
|
||||
restart: always
|
||||
ports:
|
||||
- 8080:80
|
||||
volumes:
|
||||
- ./data:/var/www/html
|
||||
environment:
|
||||
- POSTGRES_HOST=db
|
||||
- POSTGRES_PASSWORD=nextcloud_password
|
||||
- POSTGRES_DB=nextcloud
|
||||
- POSTGRES_USER=nextcloud
|
||||
- REDIS_HOST=redis
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
```
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
**5.4 AdGuard Home**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
cd ~/docker/adguard
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
yaml
|
||||
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
adguard:
|
||||
image: adguard/adguardhome:latest
|
||||
container_name: adguardhome
|
||||
restart: always
|
||||
ports:
|
||||
- "53:53/tcp"
|
||||
- "53:53/udp"
|
||||
- "3001:3000/tcp"
|
||||
volumes:
|
||||
- ./work:/opt/adguardhome/work
|
||||
- ./conf:/opt/adguardhome/conf
|
||||
```
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
**5.5 Vaultwarden**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
cd ~/docker/vaultwarden
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
yaml
|
||||
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
vaultwarden:
|
||||
image: vaultwarden/server:latest
|
||||
container_name: vaultwarden
|
||||
restart: always
|
||||
ports:
|
||||
- "8081:80"
|
||||
volumes:
|
||||
- ./data:/data
|
||||
environment:
|
||||
- DOMAIN=https://vault.yourdomain.ru
|
||||
```
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Этап 6: Настройка Cloudflare Tunnel
|
||||
|
||||
**6.1 Создание туннеля**
|
||||
|
||||
- Зайдите в Cloudflare Dashboard
|
||||
- Zero Trust → Networks → Tunnels → Create a tunnel
|
||||
- Выберите "Cloudflared" → дайте имя (например, "home-server")
|
||||
- Cloudflare покажет команду для установки
|
||||
|
||||
**6.2 Установка cloudflared на Docker VM**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
# На вашей Ubuntu VM выполните команду из Cloudflare
|
||||
# Она будет примерно такой:
|
||||
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
|
||||
sudo dpkg -i cloudflared.deb
|
||||
|
||||
# Авторизуйте туннель (скопируйте команду из Cloudflare)
|
||||
sudo cloudflared service install <ваш-токен>
|
||||
```
|
||||
|
||||
**6.3 Настройка маршрутов в Cloudflare**
|
||||
|
||||
В Cloudflare Dashboard → Tunnels → ваш туннель → Public Hostname:
|
||||
|
||||
Добавьте маршруты:
|
||||
|
||||
1. **Home Assistant**
|
||||
- Subdomain: `ha`
|
||||
- Domain: `yourdomain.ru`
|
||||
- Service: `http://IP-вашего-LXC:8123`
|
||||
2. **Nextcloud**
|
||||
- Subdomain: `cloud`
|
||||
- Domain: `yourdomain.ru`
|
||||
- Service: `http://IP-вашей-VM:8080`
|
||||
3. **Gitea**
|
||||
- Subdomain: `git`
|
||||
- Domain: `yourdomain.ru`
|
||||
- Service: `http://IP-вашей-VM:3000`
|
||||
4. **Vaultwarden**
|
||||
- Subdomain: `vault`
|
||||
- Domain: `yourdomain.ru`
|
||||
- Service: `http://IP-вашей-VM:8081`
|
||||
5. **AdGuard Home**
|
||||
- Subdomain: `adguard`
|
||||
- Domain: `yourdomain.ru`
|
||||
- Service: `http://IP-вашей-VM:3001`
|
||||
6. **Portainer**
|
||||
- Subdomain: `portainer`
|
||||
- Domain: `yourdomain.ru`
|
||||
- Service: `https://IP-вашей-VM:9443`
|
||||
- ⚠️ Включите "No TLS Verify"
|
||||
|
||||
## Этап 7: Финальные настройки
|
||||
|
||||
**7.1 Настройка Nextcloud для работы через домен**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
# Подключитесь к контейнеру Nextcloud
|
||||
docker exec -it nextcloud-app-1 bash
|
||||
|
||||
# Добавьте trusted domain
|
||||
nano /var/www/html/config/config.php
|
||||
|
||||
# Добавьте в массив trusted_domains:
|
||||
'trusted_domains' =>
|
||||
array (
|
||||
0 => 'localhost',
|
||||
1 => 'cloud.yourdomain.ru',
|
||||
),
|
||||
|
||||
# Выйдите и перезапустите
|
||||
exit
|
||||
docker restart nextcloud-app-1
|
||||
```
|
||||
|
||||
**7.2 Обновите Vaultwarden с правильным доменом**
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
cd ~/docker/vaultwarden
|
||||
nano docker-compose.yml
|
||||
|
||||
# Измените DOMAIN на:
|
||||
- DOMAIN=https://vault.yourdomain.ru
|
||||
|
||||
docker compose down && docker compose up -d
|
||||
```
|
||||
|
||||
## Этап 8: Проверка и тестирование
|
||||
|
||||
**8.1 Проверьте доступность сервисов**
|
||||
|
||||
- `https://ha.yourdomain.ru` - Home Assistant
|
||||
- `https://cloud.yourdomain.ru` - Nextcloud
|
||||
- `https://git.yourdomain.ru` - Gitea
|
||||
- `https://vault.yourdomain.ru` - Vaultwarden
|
||||
- `https://adguard.yourdomain.ru` - AdGuard Home
|
||||
- `https://portainer.yourdomain.ru` - Portainer
|
||||
|
||||
**8.2 Проверьте SSL сертификаты** Все должны показывать зеленый замочек (Cloudflare автоматически выдает сертификаты)
|
||||
|
||||
## Этап 9: Безопасность
|
||||
|
||||
**9.1 Настройте Cloudflare Access (опционально)** Для дополнительной защиты можете добавить авторизацию перед доступом к сервисам
|
||||
|
||||
**9.2 Настройте бэкапы в Proxmox**
|
||||
|
||||
- Datacenter → Backup → Add
|
||||
- Настройте автоматические бэкапы VM и LXC
|
||||
|
||||
**9.3 Обновите пароли** Замените все пароли в docker-compose файлах на надежные
|
||||
|
||||
## Полезные команды для управления
|
||||
|
||||
bash
|
||||
|
||||
```bash
|
||||
# Просмотр логов
|
||||
docker logs -f имя-контейнера
|
||||
|
||||
# Перезапуск контейнера
|
||||
docker restart имя-контейнера
|
||||
|
||||
# Обновление образа
|
||||
cd ~/docker/сервис
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
|
||||
# Просмотр всех контейнеров
|
||||
docker ps -a
|
||||
|
||||
# Использование ресурсов
|
||||
docker stats
|
||||
```
|
||||
58
Квартира/Планирование инфраструктуры.md
Normal file
58
Квартира/Планирование инфраструктуры.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# 🏠 Планирование домашней инфраструктуры
|
||||
|
||||
## Текущий сетап
|
||||
- **Mini-PC** — Proxmox, VM с Docker-сервисами + OpenClaw
|
||||
- **Роутер** — Xiaomi Router AX3200
|
||||
- **Умный дом** — Aqara M100 хаб, Zigbee устройства, колонки Яндекс
|
||||
|
||||
## Схема сети (план)
|
||||
|
||||
```
|
||||
Роутер (коридор/гостиная)
|
||||
│
|
||||
└── Cat6 → Кабинет
|
||||
│
|
||||
Свитч
|
||||
├── Mini-PC (Proxmox)
|
||||
├── NAS (Synology DS223j)
|
||||
├── Мой комп
|
||||
└── Комп Светы
|
||||
|
||||
UPS в кабинете питает: свитч + mini-PC + NAS
|
||||
```
|
||||
|
||||
## 🛒 Список покупок
|
||||
|
||||
### 1. NAS + Диски (~46к₽)
|
||||
- **Synology DS223j** — ~28-30к₽
|
||||
- [Ситилинк](https://www.citilink.ru/product/setevoe-hranilische-nas-synology-ds223j-2-bay-nastolnyi-rtd1619b-2049554/)
|
||||
- 2 отсека, RAID 1, Synology DSM
|
||||
- Чисто хранилище: бэкапы, файлы, медиа
|
||||
- **2× WD Red Plus 6TB (WD60EFPX)** — ~8-9к₽ за штуку
|
||||
- [Ситилинк](https://www.citilink.ru/product/zhestkii-disk-wd-red-plus-wd60efpx-6tb-hdd-sata-iii-3-5-1970104/)
|
||||
- CMR, 5400 RPM, 256 МБ кеш, 24/7
|
||||
- RAID 1 = 6 ТБ полезного пространства
|
||||
|
||||
### 2. UPS / ИБП (~8-12к₽)
|
||||
- **APC Back-UPS 650-1000VA**
|
||||
- Защита от отключений электричества
|
||||
- Питает: mini-PC + NAS + свитч
|
||||
- 15-20 минут на корректное завершение
|
||||
|
||||
### 3. Свитч (~3к₽)
|
||||
- **TP-Link TL-SG108E** (8 портов, управляемый)
|
||||
- Гигабит, VLAN поддержка
|
||||
- Ставится в кабинет
|
||||
|
||||
### Итого: ~57-65к₽
|
||||
|
||||
## 📝 Заметки
|
||||
- NAS используется только как хранилище (SMB/NFS), Docker остаётся на VM
|
||||
- При переезде — один Cat6 кабель от роутера до кабинета
|
||||
- Wi-Fi с AX3200 покрывает телефоны, колонки, умный дом
|
||||
- Home Assistant на Proxmox свяжет Aqara + Яндекс
|
||||
|
||||
## Очерёдность
|
||||
1. NAS + диски — расширение хранилища
|
||||
2. UPS — защита данных
|
||||
3. Свитч — когда устройств станет >3 в кабинете
|
||||
24
Квартира/Сеть и доступы.md
Normal file
24
Квартира/Сеть и доступы.md
Normal file
@@ -0,0 +1,24 @@
|
||||
## Распределение сетевой нагрузки
|
||||
|
||||
- Перенести Tailscale с машины OpenClaw в отдельную ВМ для постоянного доступа к домашней сети (минимальный образ, будет только Tailscale)
|
||||
- Создать ВМ для sing-box, который всегда будет подключен к серверу Риги
|
||||
- Удалить с OpenClaw VM sing-box, переправлять трафик через SingBox VM
|
||||
|
||||
## Проверить после прибытия с отпуска
|
||||
|
||||
- Tailscale на Services VM (--accept-routes нужно выключить, так как из-за этого не удается выйти в доступ через SSH)
|
||||
-
|
||||
|
||||
## Улучшения
|
||||
|
||||
- Поставить NAS хранилище
|
||||
- Подумать о переносе каких-то сервисов в отдельную машину, чтобы распределить нагрузку
|
||||
- Установить ИБП
|
||||
- Создать уведомления в ТГ о доступности ВМ с ВПН-ами и сервисов, потому что может отключиться ВПН и нужно будет его включить
|
||||
- Создать правило перезапуска sing-box при сетевой ошибке или моргании сети
|
||||
- Создать правило перезапуска OpenClaw gateway после ошибки sing-box
|
||||
|
||||
## Проекты
|
||||
|
||||
- Отключить вкладку и правило добавления доходов/затрат
|
||||
-
|
||||
Reference in New Issue
Block a user