--- status: seed type: guide tags: - programming - ruby-on-rails - deploy created: 2026-05-29 updated: 2026-05-29 source: '[[Команды для деплоя с помощью Capistrano]]' aliases: - Capistrano deploy через systemd --- # Capistrano deploy через systemd Заметка про выдачу минимальных `sudo`-прав для деплоя Rails-приложения через Capistrano, когда сервисы управляются через `systemd`. ## Sudoers В `/etc/sudoers` задаётся alias для команд, которые Capistrano может выполнять без пароля: ```sudoers Cmnd_Alias PUMA_CONTROL = /usr/bin/mv /tmp/navigation_backend_puma_production.service /etc/systemd/system/, /usr/bin/mv /tmp/navigation_backend_puma_production.socket /etc/systemd/system/, /bin/systemctl daemon-reload, /bin/systemctl enable navigation_backend_puma_production, /bin/systemctl start navigation_backend_puma_production, /bin/systemctl stop navigation_backend_puma_production, /bin/systemctl restart navigation_backend_puma_production, /bin/systemctl enable navigation_backend_puma_production.socket, /bin/systemctl restart navigation_backend_sidekiq_production.service, /bin/systemctl restart navigation_backend_solid_queue_production.service, /bin/systemctl restart solid_queue deploy ALL = NOPASSWD: PUMA_CONTROL ``` Где: - `deploy` — пользователь, от имени которого выполняется деплой; - `navigation_backend` — имя приложения в service/socket unit-файлах. ## Команды деплоя ```bash cap production puma:install cap production deploy ``` `puma:install` кладёт `systemd` unit-файлы, после чего `deploy` перезапускает Puma и фоновые сервисы без интерактивного ввода пароля. ## Связанные заметки - [[Ruby On Rails - MOC]] - [[Sidekiq - основа работы]]