ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ heroku
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
ΠΡΠ°ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Heroku
ΠΡΠ°ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Heroku
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π΄Π΅Π½Π΅Π³ Π½Π° ΠΏΠΎΠΊΡΠΏΠΊΡ ΡΠ΅ΡΠ²Π΅ΡΠ°? Π₯ΠΎΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½!
ΠΠ°ΡΡΡΠΎΠΈΡΡ Heroku
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅)
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° git.
Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅)
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Heroku, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ git (heroku), ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ yield from self.wsgi.close () Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π·Π°ΠΏΡΡΠ΅Π½ Ρ
ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ:
ΠΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
heroku open
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΆΡΡΠ½Π°Π»
Π― ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π½Π°Ρ, ΡΡΠΎ ΡΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΠΈΡΠΎΠΊ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Procfile
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΡΠ°ΠΉΠ» Procfile.windows. ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ»ΡΠΆΠ±Ρ.
ΠΠ°ΠΏΡΡΠΊΠ°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ
ΠΠ΅ΡΠ΅Π΄ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ Π² ββheroku ΠΌΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Djaong, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡcollectstatic
ΠΡΠΊΡΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅http://localhost:5000Π‘ΠΌΠΎΡΡΠ΅ΡΡ
ΠΡΠΊΡΠΎΠΉΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ django
ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΠΎΠ³Π΄Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ
ΠΠ΅ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΠΊΠ°Ρ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΡΠ°ΠΉΠ»Π΅, Π° ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ heroku (ΠΏΡΠΈ Π²ΡΠΈΠ³ΡΡΡΠ΅)
ΠΡΠΎΡΠΌΠΎΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΅Π΄Ρ
heroku config
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ)
heroku ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ papertrial, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΆΡΡΠ½Π°Π»Π°.
Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ
ΠΠ° ΡΡΠ½ΠΊΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Π»Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ redis, mongodb, postgres ΠΈ mysql.
ΠΠ°ΠΊ Π±Π΅Π΄Π½ΡΠΊ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Postgres Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
, Π° Π²Π΅Π±-ΡΠ°ΠΉΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΉ.
ΠΡΠΎΡΠΌΠΎΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Posgres:
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ :
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Django Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² settings.py
ΠΠ°Π²ΠΈΡΠΈΠΌΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Heroku ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°ΠΉΠ»Π° require.txt Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡ ΠΈΡ ΡΠΎΠ²Π°ΡΠΎΠ² GitHub (Π²ΡΡΠΎΠΊΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° APP-DHGuidePageHUD)
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° APP, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π²Π°ΠΆΠ½Π°, Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Π°. ΠΡΠ΄Ρ ΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ².
ΠΡΠ³Π°Π½ΠΈΠ·ΡΠΉΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Flash, JavaScript, Silverlight; Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Django_redis ΠΈ ΡΠ΅Π»ΡΠ΄Π΅ΡΠ΅Ρ
Problem for Nazar
Vue ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π±ΡΠ°ΡΠ·Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ heroku CLI
Π― ΡΡΡΠ°Π» ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ²ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, Ρ ΡΡΠΎ-ΡΠΎ Π½Π°ΠΏΡΡΠ°Π» ΠΈ Π½Π΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
2 ΠΎΡΠ²Π΅ΡΠ°
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Django, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ» Π½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅ heroku ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ PyCharm Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ IDE. Π Π°Π½ΡΡΠ΅ Ρ ΠΌΠΎΠ³ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ heroku run bash, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΡΡΠ°ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ heroku run bash, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ: βΈ stat.
Π’ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ»ΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° heroku, Π½Π΅Π²Π΅ΡΠ½ΠΎ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. Π§ΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠ»ΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΡΠΎ Π½Π°ΡΡΡΠΎΠΈΡ Π²Π°Ρ ΠΏΡΠ»ΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ new_app
ΠΠ»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ heroku
ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ:
git remote add heroku [email protected]:hidden-ridge-8790.git
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
Π― ΡΠΎΠ·Π΄Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ heroku, Π° ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΡ ΠΌΠ°ΡΠΈΠ½Π° ΡΠ°Π·Π±ΠΈΠ»Π°ΡΡ. Π£ ΠΌΠ΅Π½Ρ Π½ΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°. ΠΠ°ΠΊ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ heroku? ΠΠΎΠ³Π΄Π° Ρ ΠΏΠΎΡΠ΅ΡΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ heroku, url Π΄Π»Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Django, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ» Π½Π° Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ΅ heroku ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ PyCharm Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ IDE. Π Π°Π½ΡΡΠ΅ Ρ ΠΌΠΎΠ³ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ heroku run bash, ΠΎΠ΄Π½Π°ΠΊΠΎ.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spectron? Π― Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ²Π΅ΡΠ΅Π½ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ.. Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅: import <.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PHP, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ postgresql ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ HEROKU ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pg_query, Ρ ΠΎΡΡ PDO ΡΠΎΠΆΠ΅ Π².
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ spring boot, ΠΈ Ρ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ jconsole, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ±ΠΈΡΠ°Ρ Π΅Π³ΠΎ ΠΈΠ· Π³ΡΡΠΏΠΏΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²: ΠΠΎ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ruby, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ Heroku CLI Π΄Π»Ρ deployment, Ρ Π½Π°ΡΠΊΠ½ΡΠ»ΡΡ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΡΡΠ°ΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠΎ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Docker Compose ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠΎΡΠΎΡΠ΅.
ΠΠ΅Π³Π°-Π£ΡΠ΅Π±Π½ΠΈΠΊ Flask, Π§Π°ΡΡΡ 18: Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π½Π° Heroku Cloud
ΠΡΠΎ Π²ΠΎΡΠ΅ΠΌΠ½Π°Π΄ΡΠ°ΡΠ°Ρ ΡΡΠ°ΡΡΡ Π² ΡΠ΅ΡΠΈΠΈ, Π³Π΄Π΅ Ρ ΠΎΠΏΠΈΡΡΠ²Π°Ρ ΡΠ²ΠΎΠΉ ΠΎΠΏΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Python Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΈΠΊΡΠΎΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Flask.
Π¦Π΅Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° β ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΌΠΈΠΊΡΠΎΠ±Π»ΠΎΠ³, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ Π·Π° ΠΏΠΎΠ»Π½ΡΠΌ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ΅ΡΠΈΠ» Π½Π°Π·Π²Π°ΡΡ microblog.
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠΈΠ½Π³Π°. ΠΡ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΄Π²Π° Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΎΡΡΠΈΠ½Π³Π° Π½Π° Linux ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΡΠ½Π°ΡΠ°Π»Π° Π½Π° ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ CentOS, Π° Π·Π°ΡΠ΅ΠΌ Π½Π° ΠΌΠΈΠ½ΠΈΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Raspberry Pi. Π’Π΅ ΠΈΠ· ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΉ, ΠΊΡΠΎ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Linux ΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π½Π΅Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅ΡΠΈΠ»ΠΈ ΡΡΠΎ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΠΉ ΠΈ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΏΡΠΎΡΠ΅.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Β«Π² ΠΎΠ±Π»Π°ΠΊΠΎΒ» ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΠ·Π»ΠΈΡΠ½Π΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΠΎ ΡΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Β«ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π² ΠΎΠ±Π»Π°ΠΊΠΎΒ»?
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠΈΠ½Π³Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΡ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠ·ΡΠΊΠ° ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π±Π΅ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΡΠ΅ΡΠ²ΠΈΡ.
ΠΠ²ΡΡΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Ρ ΠΎΡΠΎΡΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΡΡ ΠΏΡΠ°Π²Π΄ΠΎΠΉ, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ?
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Heroku, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠΈΠ½Π³Π°. Π― Π²ΡΠ±ΡΠ°Π» Heroku Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ Π΅ΡΠ΅ ΠΈ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΡ ΡΠ°Π·Π²Π΅ΡΠ½Π΅ΠΌ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΡΡΠ°ΡΠΈΠ² ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΠΈ ΡΠ΅Π½ΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΈΠΏΠ΅ ΡΡΠ»ΡΠ³, ΠΈ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ PaaS.
Π₯ΠΎΡΡΠΈΠ½Π³ Π½Π° Heroku
Heroku Π±ΡΠ»Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΡΠ»ΡΠ³ΠΈ PaaS. Π Π½Π°ΡΠ°Π»Π΅, ΠΎΠ½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π»Π° ΡΡΠ»ΡΠ³ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Ruby ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Java, Node.js ΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°Π²ΠΎΡΠΈΡΠ°, Python.
ΠΠΎΠΎΠ±ΡΠ΅-ΡΠΎ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Heroku ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ git (Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΆΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΊΠΎΡΠΎ). Heroku ΠΈΡΠ΅Ρ ΡΠ°ΠΉΠ» Procfile Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠ»Ρ Python ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Heroku ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΉΠ» requirements.txt, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π΄Π΅Π»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ. Heroku ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΡΠ²ΠΎΡ ΠΌΠ°Π³ΠΈΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½ ΡΠ΅ΡΠ΅Π· ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π‘ΡΠΌΠΌΠ° ΡΡΠ΅ΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄Π°, Π½Π°ΠΏΡΡΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½Π½ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°ΠΏΠ»Π°ΡΠΈΡΡ.
ΠΠΎΡΠΎΠ²Ρ ΠΈΡΠΏΡΡΠ°ΡΡ Heroku? ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ!
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Heroku
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Heroku, Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΌ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½Ρ.
ΠΠΎΡΠ»Π΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π²Ρ ΠΏΠΎΠΏΠ°Π΄Π΅ΡΠ΅ Π² ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΎΡΠΊΡΠ΄Π° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π½ΠΎ ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΎΠ±Π·ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Heroku
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΡΠΌΠΎ ΠΈΠ· Π²Π΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π·Π°Π΄Π°ΡΠΈ, ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π²ΡΡ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
Heroku ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡΠΈΠ»ΠΈΡΡ Β«Heroku ΠΊΠ»ΠΈΠ΅Π½ΡΒ», ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Windows, Mac OS X ΠΈ Linux. ΠΡΠ»ΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Heroku, ΡΠΎ ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Heroku.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° β Π²ΠΎΠΉΠ΄Π΅ΠΌ Π² Π½Π°Ρ Π°ΠΊΠΊΠ°ΡΠ½Ρ:
Heroku Π·Π°ΠΏΡΠΎΡΠΈΡ Ρ Π²Π°Ρ email ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°. ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡ Π²Π°Ρ ssh ΠΊΠ»ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ° Heroku.
ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±Π΅Π· Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Git
git ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Heroku, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½. ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Heroku, ΡΠΎ git Ρ Π²Π°Ρ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½.
ΠΠ»Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Heroku, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Heroku
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Heroku, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ create ΠΈΠ· ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌ URL, ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ (git remote), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π²ΡΠΊΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΠΊΠΎ.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈΠΌΡ flask-microblog ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°Π½ΡΡΠΎ ΠΌΠ½ΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠ΅ ΠΈΠΌΡ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΊΠ»ΡΡΠ°Π΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° Π΄ΠΈΡΠΊΠ΅.
Π ΡΡΡ ΠΌΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠΌ Π½Π° Heroku, Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° Π΄ΠΈΡΠΊΠ΅, Ρ. ΠΊ. Heroku ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΡΠΎΠΌΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠ°. Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅, Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡ ΠΈΡΡΠ΅Π·Π½ΠΎΠ²Π΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π΄Π²Π° ΠΈΠ½ΡΡΠ°Π½ΡΠ°, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ.
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ Π΄Π»Ρ Π½Π°Ρ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ sqlite Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΡΠ° Π±Π°Π·Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Whoosh ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Ρ. ΠΊ. ΠΎΠ½Π° Ρ ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΉΠ»ΠΎΠ².
Π’ΡΠ΅ΡΠΈΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ β Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΡΠΎΡ ΡΠ°Π½ΡΠ»ΠΈ Π½Π°Ρ Π»ΠΎΠ³ Π² ΠΏΠ°ΠΏΠΊΠ΅ /tmp ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° Heroku, ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΡΠ°ΠΊ, ΠΌΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΠ»ΠΈ 3 ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΡ ΡΠ΅ΡΠΈΠΌ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠ΅ΠΉ Π½Π° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΡ Heroku, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° PostgreSQL.
ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Ρ Π½Π°Ρ Π½Π΅Ρ Π³ΠΎΡΠΎΠ²ΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ. ΠΠ°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠΈΡΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ PostgreSQL, Π½ΠΎ ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΆΠ°Π»Ρ, Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ²Π΅Π»ΠΎ Π±Ρ Π½Π°Ρ Π΄Π°Π»Π΅ΠΊΠΎ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΎΡ ΡΠ΅ΠΌΡ ΡΡΠ°ΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Heroku, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠΈΡΠΊ.
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Ρ. ΠΊ. ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ Π½Π°ΡΠΈ Π»ΠΎΠ³ΠΈ, ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π°ΡΠΈ Π»ΠΎΠ³ΠΈ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Heroku, ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΊΡΡΠ°ΡΠΈ, Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΎΡΡΠ° Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ, Ρ. ΠΊ. ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π² Π»ΠΎΠ³ Π²ΡΡ, ΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² stdout.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Heroku
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ Heroku:
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Ρ. ΠΊ. ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ. ΠΠ»Ρ Π±ΠΎΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ Π΄ΡΡΠ³ΡΡ ΠΎΠΏΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°
ΠΠ»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π»ΠΈ ΠΎΠ½ΠΎ Π½Π° Heroku ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΡΡΡ ΠΆΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Heroku:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ HEROKU, Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π² 1, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅ Heroku.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠΈΡΠΊ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» (ΡΠ°ΠΉΠ» config.py):
ΠΠ°ΡΠ΅ΠΌ, ΠΎΡΠΌΠ΅Π½ΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° (ΡΠ°ΠΉΠ» app/models.py):
Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ΅ Π² g Π² Π½Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ before_request, ΡΡΠΎΠ±Ρ Π½Π°ΡΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΅Ρ (ΡΠ°ΠΉΠ» app/views.py):
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠ±Π΅ΡΠ΅ΠΌ ΠΏΠΎΠ»Π΅ ΠΏΠΎΠΈΡΠΊΠ° Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½Π΅ (ΡΠ°ΠΉΠ» app/templates/base.html):
ΠΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Heroku, Π²ΡΡ ΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΡΠΎΠΊ stdout, ΡΡΡ ΠΆΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² Π»ΠΎΠ³ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Heroku. ΠΠΎ Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΡΡΡΡ Π² ΡΠ°ΠΉΠ»Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅, Π±ΡΠ΄ΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ. Π’Π°ΠΊ ΡΡΠΎ Π½Π° ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π»ΠΎΠ³Π³Π΅Ρ, ΠΏΠΈΡΡΡΠΈΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΡΠΌΠΎ Π² stdout (ΡΠ°ΠΉΠ» app/__init__.py):
ΠΠ΅Π± ΡΠ΅ΡΠ²Π΅Ρ
ΠΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Flask Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½Π΅, Ρ. ΠΊ. ΠΎΠ½ ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΠΉ ΠΈ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΡΠ΅. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Heroku Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ gunicorn, Π΅Π³ΠΎ ΠΌΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ.
Π Π½Π°ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, gunicorn ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ python ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΠ»Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Python ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ΠΌ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Python ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Heroku (ΡΠ°ΠΉΠ» runp-heroku.py):
Π’Π΅ΠΏΠ΅ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ gunicorn Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π€Π°ΠΉΠ» requirements.txt
Π£ΠΆΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΊΠΎΡΠΎ ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠΌ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Heroku, Π½ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π½Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠ° Π½Π°ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΠ, ΠΌΡ ΡΠΏΡΠ°Π²Π»ΡΠ»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ pip.
Heroku ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ» requirements.txt ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Heroku ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π² Π½Π΅ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ pip.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° requirements.txt ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ freeze ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ pip:
Π ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ gunicorn, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅Ρ psycopg2, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ SQLAlchemy Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ PostgreSQL. ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΡΠ°ΠΉΠ»Π° requirements.txt Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π±ΡΠ΄ΡΡ Π½Π΅Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ Heroku, Π½ΠΎ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π² Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. Π ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π²ΡΡ ΠΆΠ΅ Π»ΡΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
Procfile
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ Heroku ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Heroku ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» Procfile Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΎΡ ΡΠ°ΠΉΠ» Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΎΡΡ, ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ (ΡΠ°ΠΉΠ» Procfile):
ΠΠ΅ΡΠΊΠ° web Π°ΡΡΠΎΡΠΈΠΈΡΡΠ΅ΡΡΡ Ρ Π²Π΅Π± ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. Heroku ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΡΠ³ΠΈΠ΅ Π΄Π²Π΅ Π·Π°Π΄Π°ΡΠΈ, ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ init ΠΈ upgrade ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ°Π΄Π°Π½ΠΈΠ΅ init ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°Π΄Π°Π½ΠΈΠ΅ upgrade ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ init, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ Π±Π°Π·Ρ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ.
Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΡΠΈΡΡΡΠΏΠ°Π΅ΠΌ ΠΊ ΡΠ°ΠΌΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Heroku Π°ΠΊΠΊΠ°ΡΠ½ΡΠ΅. ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ git Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Heroku, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°, Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ init, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ Π² Π½Π°Ρ Procfile:
ΠΠ΅ΡΠΈΡΠ΅ Π²Ρ ΠΈΠ»ΠΈ Π½Π΅Ρ, Π½ΠΎ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½. Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ flask-microblog.herokuapp.com. ΠΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°ΡΡ ΠΌΠΎΠΈΠΌ ΡΠΎΠ»ΠΎΠ²Π΅ΡΠΎΠΌ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ. Π― Π½Π΅ Π·Π½Π°Ρ ΡΠΎΡΠ½ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ, Π½ΠΎ Π²Π°ΠΌ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ!
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ, ΠΏΡΠΈΠ΄Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π»ΠΈΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ git:
ΠΠ°ΡΠ΅ΠΌ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΡΠΊΡΠΈΠΏΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ:
ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠ»ΠΈ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠΊΠ»ΡΡΠΈΡΡΡ ΡΡΠΎ-ΡΠΎ Π½Π΅ΡΡΠ°ΡΠ½ΠΎΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ Π»ΠΎΠ³ΠΈ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΄Π»Ρ Heroku Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ Π²ΡΠ΅ Π»ΠΎΠ³ΠΈ Π² stdout, Π° Heroku ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΈΡ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π»ΠΎΠ³.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π»ΠΎΠ³ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Heroku:
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠ²Π΅Π΄Π΅Ρ Π²ΡΠ΅ Π»ΠΎΠ³ΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π»ΠΎΠ³ΠΈ Heroku. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π»ΠΎΠ³ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ΅ΡΠΈ Π²ΡΠΎΠ΄Π΅ ΡΡΡΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠ΅ Π±ΡΠ΄ΡΡ Π² ΡΡΠΎΠΌ Π»ΠΎΠ³Π΅.
Π‘ΡΠΎΠΈΡ Π»ΠΈ?
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΡΠΎΡ Π²ΠΈΠ΄ Ρ ΠΎΡΡΠΈΠ½Π³Π° Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Ρ ΠΎΡΡΠΈΠ½Π³Π°.
Π Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΏΡΠΎΡΡΠΎΡΡ, ΠΏΠΎΠ±Π΅Π΄Π° Π·Π° ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π»Ρ Heroku, ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ» ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ. ΠΡΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΈ Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ VPS, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ. Heroku ΠΆΠ΅ Π±Π΅ΡΠ΅Ρ Π·Π°Π±ΠΎΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π½Π° ΡΠ΅Π±Ρ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Π ΠΈΡΠΎΠ³Π΅, ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, Π²ΠΎΠΏΡΠΎΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ²Π΅Π΄Π΅ΡΡΡ ΠΊ Π²ΡΠ±ΠΎΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Π°ΠΆΠ½Π΅Π΅ Π΄Π»Ρ Π²Π°Ρ: Π²ΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π΄Π΅Π½ΡΠ³ΠΈ.
ΠΠΎΠ½Π΅Ρ?
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π°, Π½Π° github. ΠΠ»ΠΈ ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ zip Π°ΡΡ ΠΈΠ²Π° ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅:
Π‘ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π½Π°Ρ ΡΠΊΡΠΊΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΡ.
Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΈ ΡΡΠ°ΡΡΠΈ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈ ΡΡΠΎ ΡΠΎΡ Π±Π°Π³Π°ΠΆ Π·Π½Π°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π²ΡΠ²Π°Π»ΠΈΠ» Π½Π° Π²Π°Ρ Π·Π° ΡΡΠΈ 18 ΡΡΠ°ΡΠ΅ΠΉ, ΠΌΠΎΡΠΈΠ²ΠΈΡΡΠ΅Ρ Π²Π°Ρ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΏΡΠΎΡΠ΅ΠΌ, Ρ Π½Π΅ ΡΡΠ°Π²Π»Ρ ΡΠΎΡΠΊΡ, ΠΈ Π½Π΅ ΠΎΡΡΠΈΡΠ°Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ ΠΎ microblog-Π΅. ΠΡΠ»ΠΈ, ΠΈ ΠΊΠΎΠ³Π΄Π°, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠ΅ΠΌΠ° ΠΏΡΠΈΠ΄Π΅Ρ Π½Π° ΡΠΌ, Ρ Π±ΡΠ΄Ρ ΠΏΠΈΡΠ°ΡΡ Π΅ΡΠ΅, Π½ΠΎ Ρ ΠΎΠΆΠΈΠ΄Π°Ρ ΡΡΠΎ ΡΠ°ΡΡΠΎΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ°Π΄Π΅Ρ. ΠΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Ρ ΠΌΠΎΠ³Ρ Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ Π² Π±Π»ΠΎΠ³Π΅, ΡΠ°ΠΊ Π²ΠΎΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π½Π° GitHub.
Π ΡΠ²ΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡ ΠΏΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π²Π΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅, Ρ.Ρ. Ρ ΠΏΡΠΈΠ³Π»Π°ΡΠ°Ρ Π²Π°Ρ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΌΠ½ΠΎΠΉ Π½Π° Twitter ΠΈΠ»ΠΈ Facebook, Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ, ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Ρ ΠΎ ΠΌΠΎΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ .
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π²Π°ΠΌ, Π΅ΡΠ΅ ΡΠ°Π·, Π·Π° ΡΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΈ Π»ΠΎΡΠ»ΡΠ½ΡΠΌ ΡΠΈΡΠ°ΡΠ΅Π»Π΅ΠΌ.
Go + Heroku: ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠ±Π»Π°ΠΊΠ΅ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ ΠΌΠ°Π»ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ Ρ
ΠΎΡΡΠΈΠ½Π³ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π»ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Go. Π‘ΡΠ΅Π΄ΠΈ Π½ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
β Google App Engine
β Heroku
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Go, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° ΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ³ΠΎΠ΄Π½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ, ΠΈΠ·ΡΡΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ°. ΠΡΠ±ΡΠ°Π² ΡΠ°ΠΊΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ Π²ΡΠ±ΠΎΡΠ°, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ, Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ Π½Π° Heroku.
ΠΠ»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Heroku ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄ΠΎ 5 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ 750 Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ ΡΠ°ΡΠΎΠ² ΡΠ°Π±ΠΎΡΡ Π² ΠΌΠ΅ΡΡΡ, ΡΠ°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠ°ΡΠ° Β«ΠΏΡΠΎΡΡΠΎΡΒ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ Β«ΡΠ½Π°Β» (ΠΠΎ ΠΎΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ Β«ΡΠ°Π·Π±ΡΠΆΠ΅Π½ΠΎΒ» ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π½Π΅ΠΌΡ).
1. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ
2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π¦Π΅Π»Ρ ΠΏΠΎΡΡΠ° β ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, ΠΏΠΎΡΠΎΠΌΡ Ρ ΠΎΠ±ΠΎΠΉΠ΄ΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ Β«Hello, WorldΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ martini:
3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Procfile
Procfile Π½ΡΠΆΠ΅Π½ Heroku Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ. Π Π°Π·ΠΌΠ΅ΡΡΠΈΠΌ ΡΠ°ΠΌ ΠΎΠ΄Π½Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΡΡ ΡΡΡΠΎΡΠΊΡ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² ΠΏΠ°ΠΏΠΊΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ ΠΎΡ ΠΏΠ°ΠΏΠΊΠΈ hello, ΡΠΎ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΠΌ:
4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ push ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Heroku.
5. Godep β ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
godep β ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΈ ΠΈΡ
ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄.
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ:
6. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Heroku ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅
ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Go Heroku Buildpack, ΡΠΎΡ
ΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ.
ΠΠ΅Π»Π°Π΅ΠΌ push:
ΠΠΎΡΡΠΈ Π²ΡΠ΅, ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Heroku Π·Π°ΠΏΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΊΡΠΎΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
ΠΡΠ΅, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π½Π° Heroku. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (Π΅ΡΠ»ΠΈ Π½Π°ΡΠ½Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ), ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ push. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π²Π΅ΡΡΠΌΠ° Π±ΡΡΡΡΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠΎΡ ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±, Π½ΠΎ Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΎΠ½ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅.
ΠΠ°ΠΊ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Π² Heroku Ρ ΠΏΠΎΠΌΠΎΡΡΡ Git CLI
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Π½Π° Heroku Ρ ΠΏΠΎΠΌΠΎΡΡΡ Git.
ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΊΠΈ
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅:
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Heroku (CLI) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Heroku ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌΠΈ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°. ΠΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Heroku.
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Heroku CLI (ΠΎΠ½ ΠΆΠ΅ Heroku Toolbelt), ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ.
ΠΠΊΠΊΠ°ΡΠ½Ρ Heroku
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΠΈ Π²Π΅ΡΠΈ Π±ΡΠ΄ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Heroku Π·Π΄Π΅ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΠ΅ Π½Π΅Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠΎΡΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ:
Π’Π΅ΡΠΌΠΈΠ½Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΎΠ΄Π΅:
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π»ΡΠ±ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ:
ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Π΄Π»Ρ Heroku
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Π΄Π»Ρ Heroku.
Procfile
PROCFILE ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Procfile Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠΈΠΏΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΏ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° / Π΄ΠΈΠ½Π°ΠΌΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π½Π΄Π° ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Procfile Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ django gunicorn Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
Π₯ΠΎΡΡ Django ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ WSGI, ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ Heroku ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gunicorn Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Heroku.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Procfile Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ:
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ yourdjangoweb ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Runtime.txt
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²Π΅ΡΡΠΈΡ Π² runtime.txt :
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Python Π½Π° Heroku ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ.
Π Π°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ Ρ ΠΎΡΡΡ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡ Heroku, ΠΎΠΏΡΡΠΊΠ°Ρ ΠΈΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² Π½Π°ΡΠ΅ΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Heroku ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Postgres, Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΅Π³ΠΎ Π°Π΄Π°ΠΏΡΠ΅Ρ Π΄Π»Ρ Python:
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WhiteNoise Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π§ΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ²:
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
Π‘Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π»ΡΠ±ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Django. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ²ΠΎΠΉ settings.py :
ΠΠΎΠ±Π°Π²ΡΡΠ΅ STATICFILES_STORAGE = ‘whitenoise.storage.CompressedManifestStaticFilesStorage’ Π² Π²Π°Ρ settings.py
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ dj-database-url Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π°ΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π²Π½ΠΈΠ·Ρ settings.py :
Requirements.txt
Heroku ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠ°ΠΉΠ» requirements.txt Π² ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Heroku, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pip freeze ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ Π² ΡΠ°ΠΉΠ» requirements.txt :
ΠΠ°Ρ requirements.txt Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Django ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Heroku ΠΊ Git
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Heroku:
ΠΠ½ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«doneΒ» Ρ Π΄Π²ΡΠΌΡ URL-Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΡΠΎΠΊΠ°Ρ :
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git Π² ΠΎΠ±Π»Π°ΠΊΠ΅ Heroku. URL-Π°Π΄ΡΠ΅Ρ https://herokuappname.herokuapp.com/ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π½ΠΎ Π½Π°ΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ.Π΅. Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΏΡΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Heroku ΠΊ ΠΏΡΡΡΠΎΠΌΡ git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ:
ΠΠ°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ / ΡΠ°ΠΉΠ»Ρ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² git ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ Π½Π° Heroku:
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΠΎΠΉΠ΄Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ°ΠΊΠΎΠΉ Π²ΡΠ²ΠΎΠ΄:
ΠΡΠΈΠ±ΠΊΠ° collectstatic
ΠΠ½ ΡΠΊΠ°ΠΆΠ΅Ρ Heroku Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ collectstatic Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ bower :
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ:
ΠΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ
1. ΠΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Heroku.
2. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π²Π°ΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°:
3. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Settings Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠΊΡΡΡΠΈΡΠ΅ Π²Π½ΠΈΠ·, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π΄Π΅Π» Domain:
4. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° Add domain, Π³Π΄Π΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ.
ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²Π²Π΅ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊΡΠ΅Π΄ΠΈΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ Π½Π° Heroku Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈ ΡΡΠ±Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΡΠ²ΠΎΠ΄
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π²Π΅ΡΠ½ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Django Π½Π° Heroku Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Git.