Alternative startup methods error

Hello, everyone.

After I updated my pod to latest version of diaspora (doesn’t matter production or developer) according to this manual, when I started diaspora.target I found this error: “can’t find executable unicorn for gem unicorn. unicorn is not currently included in the bundle, perhaps you meant to add it to your Gemfile?

As far as I understand, the developers abandoned unicorn and now the commands described here do not work?

In my case, when I run command

/bin/bash -lc "bin/bundle exec unicorn -c config/unicorn.rb -E production"

, I get the error “No such file or directory @ rb_sysopen - config/unicorn.rb

But if I run ./script/server command while in the root directory of diaspora, then the web server starts without errors.

After reading the file ./script/server, I made a new systemd service with the following content:

[Unit]
Description=Diaspora social network (loader)
StopWhenUnneeded=true

[Service]
User=diaspora
Environment=RAILS_ENV=production
WorkingDirectory=/home/diaspora/diaspora
ExecStart=/bin/bash -lc "RAILS_ENV=production bin/bundle exec loader_eye -c config/eye.rb"

[Install]
WantedBy=multi-user.target

After that diaspora* starts correctly. But it seemed to me that the messages loaded longer than before the update.

Therefore, I had two questions: “Did I incorrectly update my diaspora-pod?” or “Need to update the alternative startup methods guide?”

Well, it does matter. You upgraded your installation to the latest develop sources, not the latest stable release. The develop branch contains a bunch of unreleased changes - and our official documentation only covers the currently release stable code.

Running the develop code in a production environment is fine, but you have to be careful and always check the Changelog. For this case, there is a special section titled “Changes around the appserver and related configuration” that described our change from unicorn to puma. You should read everything, but I’ll quote the solution for your issue here:

  • If you don’t run your pod with script/server, you have to update your setup. If you previously called bin/bundle exec unicorn -c config/unicorn.rb to run diaspora*, you now have to run bin/puma -C config/puma.rb! Please update your systemd-Units or similar accordingly.
2 Likes

Thank you! Your solution is really works!

Yes, I know this. I meant, that the same error I saw when updated both a developer version and a production (git fetch origin && git reset --hard origin/master && git checkout Gemfile.lock).

Yes, as far as I know, this is the only way to use the mobile client “insporation*”. My pod is over 3 years old and was originally set up as production code. Up to this moment, I always had enough of the standard manual for updating to a new minor versions, now I will check the Changelog. Thanks again!