Commit Graph

4 Commits

Author SHA1 Message Date
taitus
d1693f06fc Keep After=network.target in Puma systemd unit
We keep After=network.target instead of the new default
After=syslog.target network.target introduced in capistrano3-puma 6.0.0.

Our Puma service doesn't depend on syslog availability because it writes
logs directly to files using:

> StandardOutput=append:...
> StandardError=append:...

So the syslog.target dependency is unnecessary in our case.
2025-06-02 15:38:34 +02:00
taitus
b99d2e43bb Keep SyslogIdentifier=puma for compatibility
We keep using SyslogIdentifier=puma instead of the default
value from capistrano3-puma 6.0.0, which is based on
puma_service_unit_name (usually "<app>_puma_<env>").

This avoids introducing a new config variable in the installer
and is enough for our current use case, where we don't run
multiple environments on the same server.
2025-06-02 15:38:34 +02:00
taitus
7712e7a3cf Set WatchdogSec=0 in Puma systemd unit template
The original template sets WatchdogSec=10, which causes systemd to kill
Puma if it remains silent for more than 10 seconds.

This commit changes WatchdogSec to 0 in our custom puma.service.erb,
disabling the watchdog feature. This prevents unwanted restarts and
avoids errors like:
> consul_puma_staging.service: Failed with result 'watchdog'
2025-06-02 15:38:34 +02:00
taitus
034ecfeacd Copy Puma systemd unit template from capistrano3-puma
This commit copies the default puma.service.erb template from the
capistrano3-puma gem into lib/capistrano/templates. This allows us to
customize the generated systemd unit file during deploy.

Note that we are also removing the `:puma_conf` variable from `config/deploy.rb`,
as the new ExecStart line in the systemd template (based on capistrano3-puma 6.0.0)
does not rely on a separate Puma config file. The command now directly invokes:

  ExecStart=<%= expanded_bundle_command %> exec puma -e <%= fetch(:puma_env) %>

This replaces the older format used in 5.2.0:

  ExecStart=<%= expanded_bundle_command %> exec --keep-file-descriptors puma -C <%= fetch(:puma_conf) %>

which required explicitly setting the Puma config path.
2025-06-02 15:33:36 +02:00