рдиреЛрдб.рдЬреЗрдПрд╕ рдФрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ред рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдиреЛрдб рд╕реАрдЦрдирд╛

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛



рдореБрдЭреЗ рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд░ рдПрдХ рд╡рд┐рдХрд╛рд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЛрд▓реНрдб рд╡рд┐рдЪрд╛рд░ рдерд╛ (рдХреБрдЫ ruby.railstutorial.org рдЬреИрд╕рд╛ )ред рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рд╣рдЯрд╛рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд┐рд╕реА рднреА рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреА рдФрд░ рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ, рдореИрдВ рд╣рдм рдкрд░ рдЕрдзреНрдпрд╛рдп рдлреИрд▓рд╛рдКрдВрдЧрд╛

рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐



рдЕрднрд┐рд╡рд╛рджрди, рдпрд╣рд╛рдБ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИред рдореИрдВ рдиреЛрдб рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЙрддреНрд╕рд╛рд╣реА рд╣реВрдВред Node.js рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рд╕рд╛рд╣рд╕ рдФрд░ рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ рдЕрдкрдиреА рддрд╛рдЬрдЧреА рдХреЗ рд╕рд╛рде рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЖрдк http://nodejs.org/ рдкрд░ node.js рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░реНрд╡рд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИред рд╣рдо рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░реЗрдВрдЧреЗ, рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдПрдХ рд╡реЗрдм-рдлреНрд░реЗрдорд╡рд░реНрдХ (рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ)

рдЕрдзреНрдпрдпрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╣рдо рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рд▓реБрдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдЯреНрд╡рд┐рдЯрд░ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдПрдирд╛рд▓реЙрдЧ) рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗ

рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд░реЗрд▓рд╕реНрдЯрд╛рдЗрдкрд░реНрд╕ рдХрд╛ рдореБрдЭ рдкрд░ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡ рдерд╛, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЧрд╛рдЗрдб рд╣реИ рдЬреЛ рдореИрдВ рднрд░ рдореЗрдВ рдЖрдпрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдорд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЕрдзреНрдпрд╛рдп 1. рдкреНрд░рд╛рд░рдВрдн



рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рд╣рдо рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВрдЧреЗ, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕реЗ рдХреНрд▓рд╛рдЙрдб рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рднреА рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗред

рез.рез рдХрд╛рдо рдХрд╛ рдорд╛рд╣реМрд▓



рдЪреВрдВрдХрд┐ рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ - рдЙрдмрдВрдЯреВ 12.04, рдХреБрдЫ рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдереЛрдХ рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдиреНрдп рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЧрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдХреЛрдб рдХреЛ рди рдХреЗрд╡рд▓ рдЧрд┐рдЯ рдореЗрдВ рдбрд╛рд▓реЗрдВрдЧреЗ, рдмрд▓реНрдХрд┐ рдЧреАрдердм рдкрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдХрдИ рдЙрдкрдХрд░рдг рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред

рддреЛ рдкрд╣рд▓реА рдмрд╛рдд рд╣рдо рдХрд░реЗрдВрдЧреЗ ...

1.1.1 рдЧрд┐рдЯ рд╕реНрдерд╛рдкрдирд╛



рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЙрдкрдпреБрдХреНрдд-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░рдг рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

$ sudo apt-get install git-core 


рдмрд╛рдХреА рдХреЛ http://git-scm.com/book/ch1-4.html рдкрд░ рдирд┐рд░реНрджреЗрд╢ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ

1.1.2 рдиреЛрдб рдФрд░ рдЬреЗрдПрдордкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ



рдЕрдм рдиреЛрдб рдХрд╛ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред ns рдФрд░ npm (рдиреЛрдб рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓рд░)ред рд╡рд┐рднрд┐рдиреНрди рдУрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред Ubuntu рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдХрд░рддреЗ рд╣реИрдВ:

 $ sudo apt-get install python-software-properties $ sudo add-apt-repository ppa:chris-lea/node.js $ sudo apt-get update $ sudo apt-get install nodejs npm 


рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдиреЛрдб рдХрдВрд╕реЛрд▓ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рез.рез.рей рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг



рдпрд╣рд╛рдВ рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ рд╕реНрд╡рд╛рдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ gmate рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рд╕реЗрдЯ рдХреЗ рд╕рд╛рде gedit рд╕реЗ рдХрд╛рдлреА рдЦреБрд╢ рд╣реВрдВред рдиреЗрдЯрдмреАрдиреНрд╕ рдпрд╛ рд╡реЗрдмрд╕реНрдЯреЙрд░реНрдо рдареАрдХ рд╣реИрдВред

1.1.4 рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдФрд░ рдкрд╣рд▓рд╛ рдЖрд╡реЗрджрди



рдЕрдм рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдврд╛рдВрдЪреЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдврд╛рдВрдЪрд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред

рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 $ sudo npm install -g express 


рд╣рдо рдЕрдкрдиреА рд╢реИрдХреНрд╖рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:

 $ mkdir -p ~/projects/node-tutorial $ cd ~/projects/node-tutorial 


рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 $ express first-app $ cd first-app && npm install 


рдЬреЛ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЗрдирд░реЗрдЯрд░ рдХреНрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧ рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЕрдм рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 $ node app 


рдФрд░ http: // localhost: 3000 / рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВ

1.2 рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА



рдЕрдм рдЬрдмрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рд╣рдо рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдЧрд┐рдЯ рдХреЗ рдХрд╛рдо рд╕реЗ рдмреЗрд╣рддрд░ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░реЛ рдЧрд┐рдЯ рдкреБрд╕реНрддрдХ рдХреЛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

1.2.1 рдЧрд┐рдЯ рд╕реЗрдЯрдЕрдк



Git рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП:

 $ git config --global user.name "Your Name" $ git config --global user.email your.email@example.com 


рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ:

 $ git config --global alias.co checkout $ git config --global alias.ci commit 


1.2.2 рдЧрд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛



Git рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдирдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 $ git init 


Gitignore рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреЛрдбрд╝реЗрдВ:

 $ echo 'node_modules' > .gitignore 


рд╣рдордиреЗ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд░рдЦрд╛ рдФрд░ рдкрд╣рд▓рд╛ рдХрдорд┐рдЯ рдмрдирд╛рдпрд╛:

 $ git add . $ git ci -m "Initial commit" 


1.2.3 рдЧрд┐рдЯрд╣рдм



рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ GHHub рдкрд░ рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ред GitHub рдПрдХ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╣реИред рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдУрдкрдирд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдПрдХ рдЬреАрдердм рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рд╡рд╣рд╛рдВ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ред

GitHub рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ ssh рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП RSA рдХреБрдВрдЬрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИ ред рдпрджрд┐ рдЖрдк рдЕрднреА рддрдХ рдЙрдирдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рджреЗ рд░рд╣рд╛ рд╣реВрдБред

 $ ssh-keygen -t rsa -C "your_email@youremail.com" 


рд╣рдо рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ ~/.ssh/id_rsa.pub :

 $ sudo apt-get install xclip $ xclip -sel clip < ~/.ssh/id_rsa.pub 


рдЙрд╕рдХреЗ рдмрд╛рдж, рдЦрд╛рддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд▓рд┐рдВрдХ рдкрд░ рдЬрд╛рдПрдВ, рдПрд╕рдПрд╕рдПрдЪ рдХреБрдВрдЬреА рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдПрд╕рдПрд╕рдПрдЪ рдХреБрдВрдЬреА рдмрдЯрди рдЬреЛрдбрд╝реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рд╕реЗ рдХреБрдВрдЬреА рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреБрдВрдЬреА рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред рдлрд┐рд░ рд╕реЗрд╡ рдХрд░реЗрдВред

рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреБрдВрдЬреА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ:

 $ ssh -T git@github.com 


рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

 The authenticity of host 'github.com (207.97.227.239)' can't be established. # RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. # Are you sure you want to continue connecting (yes/no)? 


рдЖрдкрдХреЛ рдмрд╕ 'рд╣рд╛рдВ' рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдлрд┐рд░, рдпрджрд┐ рдХреБрдВрдЬреА рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

 Hi username! You've successfully authenticated, but GitHub does not # provide shell access. 


рдЬрдм рдХреБрдВрдЬрд┐рдпрд╛рдБ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдРрдк рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдмрдирд╛рдПрдВ , рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдХреЛрдб рдХреЛ рдЧреАрдердм рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:

 $ git remote add origin git@github.com:___/first-app.git $ git push -u origin master 


1.3 рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ



рдЕрдм рд╕рдмрд╕реЗ рд░реЛрдорд╛рдВрдЪрдХ рдЪрд░рдг рдЖрддрд╛ рд╣реИ, рд╣рдо рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВрдЧреЗред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╣рд░реЛрдХреВ рдХреНрд▓рд╛рдЙрдб рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдгрд╛рд▓реА рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рд░реЛрдХреВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЙрдирдХреЗ рд╕реЗрдХреНрд╢рди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

1.3.1 рд╣рд░реЛрдХреВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛



рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред

рдЙрдмрдВрдЯреВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд░рддреЗ рд╣реИрдВ:

 $ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh 


рдЬрдм рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░реА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 $ heroku login 


рез.рей.реи рд╣рдо рдЖрд╡реЗрджрди рдХреЛ рд╣рд░реЛрдХреВ рдкрд░ рд░рдЦрддреЗ рд╣реИрдВ



рдЕрдм рд╣рдорд╛рд░рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИред Heroku рдкрд░ рдПрдХ рдиреЛрдб.рдЬреЗрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдЪрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ package.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рдиреЛрдб рдФрд░ npm рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, package.json рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

 { "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "node app" }, "dependencies": { "express": "3.0.x", "jade": "*" }, "engines": { "node": "0.8.x", "npm": "1.1.x" } } 


рдЕрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ Procfile рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

 $ echo 'web: node app.js' > Procfile 


рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 $ foreman start 


рдЖрд╡реЗрджрди http: // localhost: 5000 / рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рднрдВрдбрд╛рд░ рдореЗрдВ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 $ git add . $ git ci -m "Added Procfile and engines" $ git push 


Heroku рдкрд░ рдПрдХ рдЖрд╡реЗрджрди рдмрдирд╛рдПрдБ:

 $ heroku create $ heroku keys:add ~/.ssh/id_rsa.pub $ git push heroku master 


рд╣рдо рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ:

 $ heroku open 


рдФрд░ рдЖрд╡реЗрджрди рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред

Source: https://habr.com/ru/post/In146983/


All Articles