vault backup: 2026-05-31 23:23:32
This commit is contained in:
Vendored
+12
-13
File diff suppressed because one or more lines are too long
@@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
|
title: Формат коротких роликов с адресным объяснением
|
||||||
status: processing
|
status: processing
|
||||||
type: concept
|
type: concept
|
||||||
tags:
|
tags:
|
||||||
@@ -7,7 +8,7 @@ tags:
|
|||||||
- content
|
- content
|
||||||
- security-awareness
|
- security-awareness
|
||||||
created: 2026-05-14
|
created: 2026-05-14
|
||||||
updated: 2026-05-30
|
updated: 2026-05-31
|
||||||
aliases:
|
aliases:
|
||||||
- Формат коротких роликов с адресным объяснением
|
- Формат коротких роликов с адресным объяснением
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -0,0 +1,155 @@
|
|||||||
|
---
|
||||||
|
title: "Инструкция по деплою finreport-analyzer"
|
||||||
|
status: seed
|
||||||
|
type: guide
|
||||||
|
tags: [programming, ruby-on-rails, deploy, linux]
|
||||||
|
created: 2026-05-31
|
||||||
|
updated: 2026-05-31
|
||||||
|
source: "[[Инструкция по деплою finreport-analyzer.md]]"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Инструкция по деплою finreport-analyzer
|
||||||
|
|
||||||
|
Заметка перенесена из входящих. Описывает процесс настройки сервера и деплоя приложения на Rails.
|
||||||
|
|
||||||
|
## Сервер
|
||||||
|
|
||||||
|
- Хост: `finances-deploy` (10.10.108.52, Debian, без systemd)
|
||||||
|
- SSH: через ProxyJump `dragon` (10.102.179.132, user: gkkryuchkov)
|
||||||
|
- Deploy user: `deploy`
|
||||||
|
- Deploy path: `/srv/finreport-analyzer`
|
||||||
|
- Ветка деплоя: `migrate_rails_to8` (временно; в будущем `master`)
|
||||||
|
|
||||||
|
## Первоначальная настройка сервера (один раз)
|
||||||
|
|
||||||
|
### 1. Пакеты
|
||||||
|
```bash
|
||||||
|
apt install git postgresql libpq-dev nginx nodejs supervisor
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Пользователь deploy
|
||||||
|
```bash
|
||||||
|
adduser deploy
|
||||||
|
# добавить ~/.ssh/authorized_keys
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Rbenv + Ruby
|
||||||
|
```bash
|
||||||
|
# от имени deploy
|
||||||
|
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
|
||||||
|
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
|
||||||
|
# добавить rbenv в PATH в ~/.bashrc
|
||||||
|
rbenv install 3.3.0
|
||||||
|
rbenv global 3.3.0
|
||||||
|
gem install bundler
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. PostgreSQL
|
||||||
|
```bash
|
||||||
|
sudo -u postgres createuser deploy
|
||||||
|
sudo -u postgres createdb finanalyzer_production -O deploy
|
||||||
|
sudo -u postgres psql -c "ALTER USER deploy WITH PASSWORD 'пароль';"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Директория деплоя
|
||||||
|
```bash
|
||||||
|
mkdir -p /srv/finreport-analyzer
|
||||||
|
chown deploy:deploy /srv/finreport-analyzer
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Shared-файлы
|
||||||
|
```bash
|
||||||
|
mkdir -p /srv/finreport-analyzer/shared/config
|
||||||
|
|
||||||
|
# database.yml
|
||||||
|
cat > /srv/finreport-analyzer/shared/config/database.yml << 'EOF'
|
||||||
|
default: &default
|
||||||
|
adapter: postgresql
|
||||||
|
encoding: unicode
|
||||||
|
pool: 5
|
||||||
|
|
||||||
|
production:
|
||||||
|
<<: *default
|
||||||
|
url: <%= ENV["DATABASE_URL"] %>
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# .env
|
||||||
|
cat > /srv/finreport-analyzer/shared/.env << 'EOF'
|
||||||
|
RAILS_ENV=production
|
||||||
|
DATABASE_URL=postgres://deploy:ПАРОЛЬ@localhost/finanalyzer_production
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# credentials и master.key — скопировать с локальной машины:
|
||||||
|
# scp config/credentials.yml.enc finances-deploy:/srv/finreport-analyzer/shared/config/
|
||||||
|
# scp config/master.key finances-deploy:/srv/finreport-analyzer/shared/config/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7. Deploy key для GitLab
|
||||||
|
```bash
|
||||||
|
# на сервере от deploy:
|
||||||
|
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
|
||||||
|
cat ~/.ssh/id_ed25519.pub
|
||||||
|
# добавить в [[Gitlab]]: Settings → Repository → Deploy keys
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8. Sudoers
|
||||||
|
```bash
|
||||||
|
sudo visudo -f /etc/sudoers.d/deploy
|
||||||
|
```
|
||||||
|
```
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl restart puma
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl restart solid_queue
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl start puma
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl start solid_queue
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl stop puma
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl stop solid_queue
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl reread
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl update
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/mv /tmp/puma.conf /etc/supervisor/conf.d/puma.conf
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/mv /tmp/solid_queue.conf /etc/supervisor/conf.d/solid_queue.conf
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/mv /tmp/nginx.conf /etc/nginx/sites-available/finreport-analyzer
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/sbin/nginx -t
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/sbin/service nginx reload
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/ln -sf /etc/nginx/sites-available/finreport-analyzer /etc/nginx/sites-enabled/finreport-analyzer
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/rm -f /etc/nginx/sites-enabled/default
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9. Supervisor и nginx (через Capistrano)
|
||||||
|
```bash
|
||||||
|
bundle exec cap production setup:supervisor
|
||||||
|
bundle exec cap production setup:nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
## Регулярный деплой
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bundle exec cap production deploy
|
||||||
|
```
|
||||||
|
|
||||||
|
## Подключение к серверу
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh finances-deploy
|
||||||
|
# или с туннелем для браузера:
|
||||||
|
sudo ssh -L 80:localhost:80 -J gkkryuchkov@10.102.179.132 -i ~/.ssh/id_ed25519 deploy@10.10.108.52
|
||||||
|
```
|
||||||
|
|
||||||
|
## Логи на сервере
|
||||||
|
|
||||||
|
```bash
|
||||||
|
tail -f /srv/finreport-analyzer/shared/log/puma.log
|
||||||
|
tail -f /srv/finreport-analyzer/shared/log/solid_queue.log
|
||||||
|
sudo supervisorctl status
|
||||||
|
```
|
||||||
|
|
||||||
|
## Известные нюансы
|
||||||
|
|
||||||
|
- `force_ssl = false` и `assume_ssl = false` — сервер работает по HTTP, SSL не настроен
|
||||||
|
- Solid Queue supervisor конфиг: `rake solid_queue:start` (не `rails solid_queue:start`)
|
||||||
|
- net-ssh не читает `Include` в `~/.ssh/config` — ProxyJump задан явно в `config/deploy/production.rb`
|
||||||
|
- HSTS-кэш браузера может мешать при тестировании через туннель — использовать инкогнито
|
||||||
|
|
||||||
|
## Связи
|
||||||
|
- [[Ruby On Rails - MOC]]
|
||||||
|
- [[Capistrano deploy через systemd]]
|
||||||
|
- [[Gitlab]]
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
---
|
||||||
|
title: "Rails 8 Migration Guide (finreport-analyzer)"
|
||||||
|
status: seed
|
||||||
|
type: guide
|
||||||
|
tags: [programming, ruby-on-rails, rails-8, migration]
|
||||||
|
created: 2026-05-31
|
||||||
|
updated: 2026-05-31
|
||||||
|
source: "[[Rails 8 Migration Guide (finreport-analyzer).md]]"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Rails 8 Migration Guide (finreport-analyzer)
|
||||||
|
|
||||||
|
Дата: 31.05.2026
|
||||||
|
|
||||||
|
## Основные изменения
|
||||||
|
|
||||||
|
1. **Rails 8 Upgrade**:
|
||||||
|
- Обновлен `Gemfile` до `gem "rails", "~> 8.0.0"`.
|
||||||
|
- Запущен `rails app:update`.
|
||||||
|
- Добавлен `config/initializers/new_framework_defaults_8_0.rb`.
|
||||||
|
|
||||||
|
2. **Solid Queue (Замена Sidekiq)**:
|
||||||
|
- Удален `sidekiq`, добавлен `solid_queue`.
|
||||||
|
- Удален Redis (больше не требуется для фоновых задач).
|
||||||
|
- Выполнены миграции: `bin/rails generate solid_queue:install && bin/rails db:migrate`.
|
||||||
|
- Перенесены джобы: `app/sidekiq/` -> `app/jobs/`.
|
||||||
|
- Обновлен `ActiveJob` адаптер на `:solid_queue`.
|
||||||
|
|
||||||
|
3. **Solid Cable (Замена Redis для Action Cable)**:
|
||||||
|
- Добавлен `solid_cable`.
|
||||||
|
- Выполнены миграции для таблиц Solid Cable.
|
||||||
|
|
||||||
|
4. **Propshaft (Замена Sprockets)**:
|
||||||
|
- Удален `sprockets-rails`, добавлен `propshaft`.
|
||||||
|
- Удалены `app/assets/config/manifest.js` и `config/initializers/assets.rb`.
|
||||||
|
- Assets теперь управляются проще, без лишних манифестов.
|
||||||
|
|
||||||
|
5. **Deployment (Capistrano + Supervisor)**:
|
||||||
|
- Обновлены конфиги Capistrano для работы с Rails 8.
|
||||||
|
- Переход с `capistrano-rvm` на `capistrano-rbenv` (согласно текущему сетапу сервера).
|
||||||
|
- Добавлены systemd-шаблоны в `config/systemd/` для Puma и Solid Queue.
|
||||||
|
- На сервере процессы управляются через **Supervisor**.
|
||||||
|
|
||||||
|
## Команды для проверки
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bundle exec rails db:migrate
|
||||||
|
bundle exec rails assets:precompile
|
||||||
|
bundle exec rails jobs:start # для локального запуска Solid Queue
|
||||||
|
```
|
||||||
|
|
||||||
|
## Нюансы
|
||||||
|
- `connection_pool` зафиксирован на `< 3.0` для совместимости с Ruby 3.3.0.
|
||||||
|
- `puma-daemon` удален, так как современные Rails/Puma лучше работают под управлением супервизоров (systemd/supervisor).
|
||||||
|
|
||||||
|
## Связи
|
||||||
|
- [[Ruby On Rails - MOC]]
|
||||||
|
- [[Sidekiq - основа работы]]
|
||||||
|
- [[Deploy - finreport-analyzer]]
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
status: seed
|
||||||
|
type: concept
|
||||||
|
tags: []
|
||||||
|
created: 2025-12-17
|
||||||
|
updated: 2026-05-31
|
||||||
|
aliases: []
|
||||||
|
---
|
||||||
|
|
||||||
|
# Rails 8 Migration Guide (finreport-analyzer)
|
||||||
|
|
||||||
|
Дата: 31.05.2026
|
||||||
|
|
||||||
|
## Основные изменения
|
||||||
|
|
||||||
|
1. **Rails 8 Upgrade**:
|
||||||
|
- Обновлен `Gemfile` до `gem "rails", "~> 8.0.0"`.
|
||||||
|
- Запущен `rails app:update`.
|
||||||
|
- Добавлен `config/initializers/new_framework_defaults_8_0.rb`.
|
||||||
|
|
||||||
|
2. **Solid Queue (Замена Sidekiq)**:
|
||||||
|
- Удален `sidekiq`, добавлен `solid_queue`.
|
||||||
|
- Удален Redis (больше не требуется для фоновых задач).
|
||||||
|
- Выполнены миграции: `bin/rails generate solid_queue:install && bin/rails db:migrate`.
|
||||||
|
- Перенесены джобы: `app/sidekiq/` -> `app/jobs/`.
|
||||||
|
- Обновлен `ActiveJob` адаптер на `:solid_queue`.
|
||||||
|
|
||||||
|
3. **Solid Cable (Замена Redis для Action Cable)**:
|
||||||
|
- Добавлен `solid_cable`.
|
||||||
|
- Выполнены миграции для таблиц Solid Cable.
|
||||||
|
|
||||||
|
4. **Propshaft (Замена Sprockets)**:
|
||||||
|
- Удален `sprockets-rails`, добавлен `propshaft`.
|
||||||
|
- Удалены `app/assets/config/manifest.js` и `config/initializers/assets.rb`.
|
||||||
|
- Assets теперь управляются проще, без лишних манифестов.
|
||||||
|
|
||||||
|
5. **Deployment (Capistrano + Supervisor)**:
|
||||||
|
- Обновлены конфиги Capistrano для работы с Rails 8.
|
||||||
|
- Переход с `capistrano-rvm` на `capistrano-rbenv` (согласно текущему сетапу сервера).
|
||||||
|
- Добавлены systemd-шаблоны в `config/systemd/` для Puma и Solid Queue.
|
||||||
|
- На сервере процессы управляются через **Supervisor**.
|
||||||
|
|
||||||
|
## Команды для проверки
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bundle exec rails db:migrate
|
||||||
|
bundle exec rails assets:precompile
|
||||||
|
bundle exec rails jobs:start # для локального запуска Solid Queue
|
||||||
|
```
|
||||||
|
|
||||||
|
## Нюансы
|
||||||
|
- `connection_pool` зафиксирован на `< 3.0` для совместимости с Ruby 3.3.0.
|
||||||
|
- `puma-daemon` удален, так как современные Rails/Puma лучше работают под управлением супервизоров (systemd/supervisor).
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
---
|
||||||
|
status: seed
|
||||||
|
type: concept
|
||||||
|
tags: []
|
||||||
|
created: 2025-12-17
|
||||||
|
updated: 2026-05-31
|
||||||
|
aliases: []
|
||||||
|
---
|
||||||
|
|
||||||
|
# Инструкция по деплою finreport-analyzer
|
||||||
|
|
||||||
|
## Сервер
|
||||||
|
|
||||||
|
- Хост: `finances-deploy` (10.10.108.52, Debian, без systemd)
|
||||||
|
- SSH: через ProxyJump `dragon` (10.102.179.132, user: gkkryuchkov)
|
||||||
|
- Deploy user: `deploy`
|
||||||
|
- Deploy path: `/srv/finreport-analyzer`
|
||||||
|
- Ветка деплоя: `migrate_rails_to8` (временно; в будущем `master`)
|
||||||
|
|
||||||
|
## Первоначальная настройка сервера (один раз)
|
||||||
|
|
||||||
|
### 1. Пакеты
|
||||||
|
```bash
|
||||||
|
apt install git postgresql libpq-dev nginx nodejs supervisor
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Пользователь deploy
|
||||||
|
```bash
|
||||||
|
adduser deploy
|
||||||
|
# добавить ~/.ssh/authorized_keys
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Rbenv + Ruby
|
||||||
|
```bash
|
||||||
|
# от имени deploy
|
||||||
|
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
|
||||||
|
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
|
||||||
|
# добавить rbenv в PATH в ~/.bashrc
|
||||||
|
rbenv install 3.3.0
|
||||||
|
rbenv global 3.3.0
|
||||||
|
gem install bundler
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. PostgreSQL
|
||||||
|
```bash
|
||||||
|
sudo -u postgres createuser deploy
|
||||||
|
sudo -u postgres createdb finanalyzer_production -O deploy
|
||||||
|
sudo -u postgres psql -c "ALTER USER deploy WITH PASSWORD 'пароль';"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Директория деплоя
|
||||||
|
```bash
|
||||||
|
mkdir -p /srv/finreport-analyzer
|
||||||
|
chown deploy:deploy /srv/finreport-analyzer
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Shared-файлы
|
||||||
|
```bash
|
||||||
|
mkdir -p /srv/finreport-analyzer/shared/config
|
||||||
|
|
||||||
|
# database.yml
|
||||||
|
cat > /srv/finreport-analyzer/shared/config/database.yml << 'EOF'
|
||||||
|
default: &default
|
||||||
|
adapter: postgresql
|
||||||
|
encoding: unicode
|
||||||
|
pool: 5
|
||||||
|
|
||||||
|
production:
|
||||||
|
<<: *default
|
||||||
|
url: <%= ENV["DATABASE_URL"] %>
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# .env
|
||||||
|
cat > /srv/finreport-analyzer/shared/.env << 'EOF'
|
||||||
|
RAILS_ENV=production
|
||||||
|
DATABASE_URL=postgres://deploy:ПАРОЛЬ@localhost/finanalyzer_production
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# credentials и master.key — скопировать с локальной машины:
|
||||||
|
scp config/credentials.yml.enc finances-deploy:/srv/finreport-analyzer/shared/config/
|
||||||
|
scp config/master.key finances-deploy:/srv/finreport-analyzer/shared/config/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7. Deploy key для GitLab
|
||||||
|
```bash
|
||||||
|
# на сервере от deploy:
|
||||||
|
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
|
||||||
|
cat ~/.ssh/id_ed25519.pub
|
||||||
|
# добавить в GitLab: Settings → Repository → Deploy keys
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8. Sudoers
|
||||||
|
```bash
|
||||||
|
sudo visudo -f /etc/sudoers.d/deploy
|
||||||
|
```
|
||||||
|
```
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl restart puma
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl restart solid_queue
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl start puma
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl start solid_queue
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl stop puma
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl stop solid_queue
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl reread
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/bin/supervisorctl update
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/mv /tmp/puma.conf /etc/supervisor/conf.d/puma.conf
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/mv /tmp/solid_queue.conf /etc/supervisor/conf.d/solid_queue.conf
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/mv /tmp/nginx.conf /etc/nginx/sites-available/finreport-analyzer
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/sbin/nginx -t
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /usr/sbin/service nginx reload
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/ln -sf /etc/nginx/sites-available/finreport-analyzer /etc/nginx/sites-enabled/finreport-analyzer
|
||||||
|
deploy ALL=(ALL) NOPASSWD: /bin/rm -f /etc/nginx/sites-enabled/default
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9. Supervisor и nginx (через Capistrano)
|
||||||
|
```bash
|
||||||
|
bundle exec cap production setup:supervisor
|
||||||
|
bundle exec cap production setup:nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
## Регулярный деплой
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bundle exec cap production deploy
|
||||||
|
```
|
||||||
|
|
||||||
|
## Подключение к серверу
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh finances-deploy
|
||||||
|
# или с туннелем для браузера:
|
||||||
|
sudo ssh -L 80:localhost:80 -J gkkryuchkov@10.102.179.132 -i ~/.ssh/id_ed25519 deploy@10.10.108.52
|
||||||
|
```
|
||||||
|
|
||||||
|
## Логи на сервере
|
||||||
|
|
||||||
|
```bash
|
||||||
|
tail -f /srv/finreport-analyzer/shared/log/puma.log
|
||||||
|
tail -f /srv/finreport-analyzer/shared/log/solid_queue.log
|
||||||
|
sudo supervisorctl status
|
||||||
|
```
|
||||||
|
|
||||||
|
## Известные нюансы
|
||||||
|
|
||||||
|
- `force_ssl = false` и `assume_ssl = false` — сервер работает по HTTP, SSL не настроен
|
||||||
|
- Solid Queue supervisor конфиг: `rake solid_queue:start` (не `rails solid_queue:start`)
|
||||||
|
- net-ssh не читает `Include` в `~/.ssh/config` — ProxyJump задан явно в `config/deploy/production.rb`
|
||||||
|
- HSTS-кэш браузера может мешать при тестировании через туннель — использовать инкогнито
|
||||||
Reference in New Issue
Block a user