I am wondering if there is a variant toturial for the Puma, Nginx and Capistrano setup? Is Puma a less viable app server for production? Can we invoke a small discussion on this?
Something I'll probably add a some point soon now that Puma ships with Rails by default.
Puma is great too, but this tutorial is intended for beginners and Puma requires you to setup, run, manage, and monitor a separate process on the server independent of NGINX. It's just a lot less beginner friendly in production so that's why Passenger is the default. It's much easier to get up and running to learn the ropes and once you've done it successfully you can swap over to Puma if you like.
it's the first time I'm trying to deploy an app on a server.
for the moment i have 2 problems.
first, optionnal: I don't have secrets.yml, secrets.yml.example and database.yml.example in my rails app. Do I have to create them and if yes what do I put in my secrets.yml (On the other hand, I have credentials.yml.enc and master.key)
secondly, i'm at the first deploy step and every time i run "cap production deploy" that stop at "git:check" with this message :
[email protected]: Permission denied (publickey,password).
01 fatal: Could not read from remote repository.
01 Please make sure you have the correct access rights
01 and the repository exists.
I had, beforedeploying, generate a pair of key in the sudo user on the server, I had add this public key to the deploy key section of my repo git. I tried to clone the repo on the server but I have the same message. but on local no problem. Do you have an idea of what I did wrong (I look for a solution on google, I try change the git address and several other things since one day). Did I miss something.
And of course thank you very much, Chris, for this article.
Sounds like your server can't authenticate with your git repo. There are two options for this.
I usually use #2.
They outline a bunch of details of this here in the Capistrano docs: https://capistranorb.com/documentation/getting-started/authentication-and-authorisation/
Also, don't worry about secrets.yml. You'll need to symlink master.key on your server though so it can decrypt credentials. You'll go into the shared folder, and create the master.key file and then add it to the list of files to symlink every deploy. That should be all you need for that since the credentials.yml.enc is already stored in your git repo.
thanks for your answer.
About secrets.yml, I found it.
About git it's exactly the problem. Since the begin I did #1 but as I say that did not work.
So perhaps I've forgoten to do something, or I don't no what. So to be sur i'm going to delete the server and restart all from the beginning. I don't really understand the #2 for git authentication on my server, but I'm going to read the docs you send me, I hope that will works this time.
Thank you again for your work.
Thanks for this nice tuto !
I follow instructions but finally I have a problem on cap production deploy.
Seems to upload from git perfectly but problem with bundle install :
*Your bundle only supports platforms ["x86-mingw32"] but your local platforms are
["ruby", "x86_64-linux"], and there's no compatible match between those two
Can you help me ?
Follow steps mentioned in the below link, hope it solves
Soo close to deploying... stuck on capistrano... feeling like giving up on it all.. any help is appreciated.
I am seeing an odd error (at least odd to me, and I have spent a good portion of the day trying to figure this out to no avail:
I run on local: cap production deploy
Deployment starts, but at deploy:migrate, I have an issue:
00:31 deploy:migrate [deploy:migrate] Run `rake db:migrate` 00:31 deploy:migrating 01 $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate 01 rake aborted! 01 PG::ConnectionBad: could not connect to server: Connection refused 01 Is the server running on host "220.127.116.11" and accepting 01 TCP/IP connections on port 5432? ... ... #<Thread:[email protected]/Users/BryanBeshore/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/sshkit-1.18.2/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true): Traceback (most recent call last): 1: from /Users/BryanBeshore/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/sshkit-1.18.2/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute' /Users/BryanBeshore/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/sshkit-1.18.2/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as email@example.com: rake exit status: 1 (SSHKit::Runner::ExecuteError) rake stdout: Nothing written rake stderr: rake aborted! PG::ConnectionBad: could not connect to server: Connection refused Is the server running on host "18.104.22.168" and accepting TCP/IP connections on port 5432?
Ok. I am ... an idiot unless I have 5-cups of coffee in me and I take breaks after 10+hrs staring at a computer monitor.
I had two setups for the following when I should have only had one. One was directed to: myapp (literal) and myapp (my actual app). And I directed the IP to my actual IP address instead of 127.0.0.1
Thanks a lot for this.
just one thing beyond this,
I added sidekiq, now how can I start it and and hanlde auto restart on die etc things?
I have problem with yarn I do not load the files js of my application I made this change in the environments / production.rb
config.assets.js_compressor = Uglifier.new (harmony: true)
config.assets.compile = true so that I compiled the app I do not know what else to do me I get this warning back when I'm doing the deploy
01 warning "@rails/webpacker > [email protected]" has unmet peer dependency "[email protected]^1.0.30000697". 01 warning " > [email protected]" has unmet peer dependency "[email protected]^2.2.0 || ^3.0.0". 01 warning "webpack-dev-server > [email protected]" has unmet peer dependency "[email protected]^1.0.0 || ^2.0.0 || ^3.0.0". 01 [4/4] Building fresh packages...
Join 20,000+ developers who get early access to new screencasts, articles, guides, updates, and more.