--- status: seed type: guide tags: - programming - ruby-on-rails - deploy created: 2026-05-29 updated: 2026-05-29 title: Capistrano deploy через systemd source: "[[Команды для деплоя с помощью Capistrano]]" --- # 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]] - [[Sidekiq - основа работы]]