Deploy Ubuntu 20.04 Focal Fossa Discussion
Hello i have a small question.
you have connect a pg db with this command 'psql -U deploy -W -h 127.0.0.1 -d myapp'
but how to connect a mysql db ..???
Hi Crish, I would like to deploy two apps in one server with capistrano and passenger. But after I run cap production deploy, I got this error:
DEBUG [c7975899] *** Cleaning stale instance directory /tmp/passenger.rV0FH1J
Warning: Operation not permitted @ rb_file_chown - /tmp/passenger.rV0FH1J/.
*** Cleaning stale instance directory /tmp/passenger.tAi6t3K
Warning: Operation not permitted @ rb_file_chown - /tmp/passenger.tAi6t3K/.
It appears that multiple Phusion Passenger(R) instances are running. Please select
a specific one by passing:
--instance
The following Phusion Passenger(R) instances are running:
Name PID Description
dBWxWYef 5377 nginx/1.18.0 Phusion_Passenger/6.0.11
BeV0It9m 2635 nginx/1.18.0 Phusion_Passenger/6.0.11
How to solve this problem?
Thanks Chris
First off all - thx for this (and many other) tutorials. I have been working with Rails for many years and deployment has always been a black box for me. The kind of task... for someone else.
But spoiler alert - my droplet is running smoothly with 3.0.2 und 7.0.0.rc1
In case someone else has problems with passwords when accessing the database (in my case mysql) - check for '$' in your password.
nano /home/deploy/myapp/.rbenv-vars
DATABASE_URL=mysql2://deploy:$omeFancyPassword123@localhost/myapp
DATABASE_PASSWORD_1=$omeFancyPassword123
DATABASE_PASSWORD_2=SomeFancy$Password123
rails c ENV
"DATABASE_URL"=>"mysql2://deploy:@localhost/myapp",
"DATABASE_PASSWORD_1"=>"",
"DATABASE_PASSWORD_2"=>"SomeFancy",
It took me a while to get to grips with the concept of production. I just started rails commands too often without the enviroment. But fun-fact: In the new rails 7 the gem 'debug' is used in the group development. And this was 'buggy' in my setup. So this was nice (after i googled the error... inspected the gem... ;)
Happy greetings from Hamburg
Andreas
Great tutorial. Took some time to figure out deploy keys in github but here are the steps that worked for me. cap production deploy
kept failing because a permission denied
error from github. Here's what I did
Mostly posting for future me 😁
go through the ssh key gen process for the deploy user (https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#generating-a-new-ssh-key)
Add your key to the ssh agent on deploy https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#adding-your-ssh-key-to-the-ssh-agent
Add public key as a deploy key to the repository in github (https://docs.github.com/en/developers/overview/managing-deploy-keys#deploy-keys)
Confirm this is working by
ssh git@github.com
from your deploy user.Try running
cap production deploy
from local machine
Some things to note:
- This was on an ubuntu machine running nginx.
- make sure the
/home/deploy/.ssh
directory is owned by thedeploy
user and notroot
. (this drove me nuts until I realized) - My
deploy.rb
has a repo_url like thisset :repo_url, "git@github.com:YOUR_USER_NAME/REPOSITORY_NAME.git"
I can clean this up and get more detailed with commands if you're running into issues. Hope this helps!
Hi,
How many times do I deploy my rails app?
I want to know if I have to deploy my app whenever I modify my rails app.
Thank you for hepls in advance.
I am unable to run the app in production
Your Ruby version is 2.7.0, but your Gemfile specified 3.1.2
however ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
also deploy@agility:~/project-portalMK5/current$ rbenv versions
system
- 3.1.2 (set by /home/deploy/project-portalMK5/current/.ruby-version) also Gemfile source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby "3.1.2" also also .ruby-version 3.1.2 I have spent hours getting nowhere, appreciate any help.
Getting the error no running passenger app at /home/deploy/project-portalMK5/
the problem was in the
Change myapp to the name of your app. We'll use this same folder later on when we define our Capistrano deploy_to folder.
server {
listen 80;
listen [::]:80;
server_name _;
root /home/deploy/myapp/current/public; #bug was here should have been deploy not root
passenger_enabled on;
passenger_app_env production;
Thanks a lot for this tutorial!
I would only add:
If you want to have http2 enabled then you need to add http2 to the listen configuration of nginx:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
...
Hi, is a good guide. cannot deploy. I get the following error, can you help me?
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as user@xx.xxx.xxx.xxx: git exit status: 2
git stdout: Nothing written
git stderr: fatal: not a valid object name: master
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
Caused by:
SSHKit::Command::Failed: git exit status: 2
git stdout: Nothing written
git stderr: fatal: not a valid object name: master
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
Solved!
Add in deploy rb
set :branch, :main