{"id":14955586,"url":"https://github.com/xargr/rails_deploy","last_synced_at":"2025-10-01T18:31:41.125Z","repository":{"id":170167068,"uuid":"81511190","full_name":"xargr/rails_deploy","owner":"xargr","description":"Server setup for rails 5 / capistrano / puma / mysql / ubuntu 16.04 / ruby 2.4.0","archived":false,"fork":false,"pushed_at":"2018-02-08T12:53:14.000Z","size":19,"stargazers_count":23,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-14T11:21:33.509Z","etag":null,"topics":["capistrano","deployment","rails5"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xargr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-10T01:04:42.000Z","updated_at":"2022-12-02T14:24:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"f0e4ea40-0a42-47e8-b62a-d82e0a94f7c3","html_url":"https://github.com/xargr/rails_deploy","commit_stats":{"total_commits":40,"total_committers":2,"mean_commits":20.0,"dds":"0.025000000000000022","last_synced_commit":"b358da43ce68d504ea881ca7a035e88b67a464b9"},"previous_names":["xargr/rails_deploy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xargr%2Frails_deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xargr%2Frails_deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xargr%2Frails_deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xargr%2Frails_deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xargr","download_url":"https://codeload.github.com/xargr/rails_deploy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234724617,"owners_count":18877221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["capistrano","deployment","rails5"],"created_at":"2024-09-24T13:11:24.550Z","updated_at":"2025-10-01T18:31:40.813Z","avatar_url":"https://github.com/xargr.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# All package and actions to deploy rails app\n=============================================\n# Estimated time ~40 minutes\n-----------------------------\n\n* [Rails 5](http://rubyonrails.org/)\n* [Nginx](https://www.nginx.com/resources/wiki/)\n* [Mysql](https://www.mysql.com/)\n* [Puma](http://puma.io/)\n* [Ubuntu 16.04](https://www.ubuntu.com/)\n* [Capistrano](http://capistranorb.com/)\n\n\n### The tutorial work with server by [digitalocean.com](https://m.do.co/c/03deef324558)\n##### Login and create a droplet Ubuntu 16.04x64 1gb cpu \u0026 30gb disk\n\n```\nssh root@xxx.xxx.xx\n\nsudo apt-get install aptitude\n\nsudo apt-get update\n\nsudo aptitude update\n\nsudo aptitude safe-upgrade\n```\nIf you have error with locale\n------------------------------\n```\nsudo locale-gen el_GR.UTF-8\n```\n##### Next exit from server and create ssh connection\n```\nssh-copy-id root@xxx.xxx.xx\n\nsudo adduser deploy\n\nsudo adduser deploy sudo\n\nssh-copy-id deploy@xxx.xxx.xx\n```\n\n##### Edit ssh setting\n```\nsudo vim /etc/ssh/sshd_config\n```\n##### Next, we need to find the line that looks like this:\n\n```\nPermitRootLogin yes\n```\n##### Modify this line to \"no\" like this to disable root login:\n```\nPermitRootLogin no\n```\n\n##### Next, we need to find the line that looks like this:\n```\nPort 22\n```\n##### Modify this line between 22 and 50000:\n\n```\nPort 4323\n```\n\n##### Next, reload service ssh\n```\nservice ssh restart\n```\n\n#### Install additional packages from Rails\n```\nsudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev nodejs\n```\n\n\n##### Install git \u0026 nginx\n```\nsudo apt-get install curl git-core nginx -y\n```\n\n##### Install version ruby language rbenv\n```\ncd\ngit clone https://github.com/rbenv/rbenv.git ~/.rbenv\necho 'export PATH=\"$HOME/.rbenv/bin:$PATH\"' \u003e\u003e ~/.bashrc\necho 'eval \"$(rbenv init -)\"' \u003e\u003e ~/.bashrc\nexec $SHELL\n```\n\n\n#### Install ruby build plugin for rbenv\n\n```\ngit clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build\necho 'export PATH=\"$HOME/.rbenv/plugins/ruby-build/bin:$PATH\"' \u003e\u003e ~/.bashrc\nexec $SHELL\n```\n\n\n###### Show ruby available versions\n\n```\nrbenv install -l\n\nrbenv install 2.4.0\n\nrbenv global 2.4.0\n\nrbenv rehash\n\nruby -v\n```\n\n**You just add following line to your local `~/.gemrc` file (it is in your home folder)**\n\n`gem: --no-document`\n\n##### Next, install ruby gems version control system\n\n```\ngem install bundler\n\nrbenv rehash\n```\n\n\n##### Install Rails\n\n```\ngem install rails -V --no-ri --no-rdoc\n\nrbenv rehash\n```\n\n\n### Create ssh key and copy\n\n```\nssh-keygen -t rsa\n\ncat ~/.ssh/id_rsa.pub\n```\n\n##### Visit the github and add ssh, after test it\n\n```\nssh -T git@github.com\n```\n\n\n#### Next, install Mysql\n```\nsudo aptitude update\n\nsudo apt-get install mysql-server mysql-client libmysqlclient-dev\n\nsudo mysql_install_db\n\nsudo mysql_secure_installation\n```\n\nCreate mysql database\n\n```\nmysql -u root -p\n\nCREATE DATABASE `app` CHARACTER SET utf8 COLLATE utf8_general_ci;\n```\n\n\n\n**Add additional gem into Gemfile**\n\n```\ngroup :development do\n    gem 'capistrano',         require: false\n    gem 'capistrano-rbenv',     require: false\n    gem 'capistrano-rails',   require: false\n    gem 'capistrano-bundler', require: false\n    gem 'capistrano3-puma',   require: false\nend\n\ngem 'puma'\n```\n\n#### Next, install gems\n\n```\nbundle\n\nrbenv rehash\n```\n\n#### Create files from caristrano\n\n```\ncap install\n```\n\n\n\n\nCopy [config/deploy.rb](../master/config/deploy.rb) \u0026 [Capfile](../master/Capfile) files\n and paste in your rails app\n\n\n\n```\ngit add -A\ngit commit -m \"Set up Puma, Nginx \u0026 Capistrano\"\ngit push origin master\n```\n\nRun capistrano init\n\n```\ncap production deploy:initial\n```\n\n\n\n#### make file /home/deploy/apps/app/shared/config/database.yml\n```\nproduction:\n  adapter: mysql2\n  pool: 5\n  timeout: 5000\n  encoding: utf8\n  database: app\n  username: root\n  password: xxxxxxxxx\n```\n\n\n\n#### Set ubuntu environment variable\n```\nrails secret\n\nsudo vim /etc/environment\n```\n\n#### and add this line below\n\n```\nexport SECRET_KEY_BASE=abb2e9e094bb8fb1aa216defed455caa0f9\n```\n\n\nAt first time run in apps/app/release/2017456534\n\n```\nRAILS_ENV=production bundle exec rake db:create\n```\n\nExample [config/nginx.conf](../master/config/nginx.conf) file, paste in your rails app\n\n\n##### set nginx virtualhost\n```\nsudo rm /etc/nginx/sites-enabled/default\n\nsudo ln -nfs \"/home/deploy/apps/app/current/config/nginx.conf\" \"/etc/nginx/sites-enabled/app\"\n\nsudo service nginx restart\n```\n\n\nAt the end, run\n\n**If you want only to restart puma server**\n\n`cap production deploy:restart`\n\n\n**After deploy, publish change**\n\n`git add -A`\n`git commit -m \"Deploy Message\"`\n`git push origin master`\n`cap production deploy`\n\n\n####How to install let's encrypt [#1](https://github.com/xargr/rails_deploy/issues/1)\n\nif you have some problem, create new issue in this repo\n\n##Happy coding...\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxargr%2Frails_deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxargr%2Frails_deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxargr%2Frails_deploy/lists"}