рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ Plesk рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдФрд░ Github рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CI/CD рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░реВрдБрдЧрд╛ред рдЖрдЬ рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рд░рд▓ рдирд╛рдо "рд╣реИрд▓реЛрд╡рд░реНрд▓реНрдб" рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ рдлреНрд▓рд╛рд╕реНрдХ рдкрд╛рдпрдерди рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗрд▓реЗрд░реА рд╡рд░реНрдХрд░реНрд╕ рдФрд░ рдПрдХ рдПрдВрдЧреБрд▓рд░ 8 рдлреНрд░рдВрдЯрдПрдВрдб рд╣реИред

рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдВрдХ: рдмреИрдХрдПрдВрдб, рдлрд╝реНрд░рдВрдЯ рдПрдВрдб.

рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рдЙрд╕рдХреЗ рднрд╛рдЧреЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рджреВрд╕рд░реЗ рдореЗрдВ, рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ Plesk рдХреИрд╕реЗ рд╕реЗрдЯ рдЕрдк рдХрд░реЗрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рдШрдЯрдХ (DB, RabbitMQ, Redis, Docker, рдЖрджрд┐) рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред

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

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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрд╡рд▓реЛрдХрди

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рджреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рджреЗрдЦреЗрдВ - рдмреИрдХрдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯ - рдФрд░ рдХреЛрдб рдкрд░ рдЬрд╛рдПрдВред

рдмреИрдХрдПрдВрдб: рдХреБрдкреНрдкреА + рдЕрдЬрд╡рд╛рдЗрди

рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдпрд╛ рдЬреЛ рдкрд╛рдпрдерди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ: рдлреНрд▓рд╛рд╕реНрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ (рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП) рдФрд░ рд╕реЗрд▓реЗрд░реА (рдХрд╛рд░реНрдп рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП)ред SQLAchemy рдХрд╛ рдЙрдкрдпреЛрдЧ ORM рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрд▓реЗрдореНрдмрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд▓рд╛рдпрди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓ рдореЗрдВ JSON рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП - Marshmallow.

╨Т рдЦрдЬрд╛рдиреЗ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ Readme.md рдлрд╝рд╛рдЗрд▓ рд╣реИред

рд╡реЗрдм рдкрд╛рд░реНрдЯ рдПрдкреАрдЖрдИ рдХрд╛рдлреА рд╕рд░рд▓, 6 рдкреЗрди рд╣реЛрддреЗ рд╣реИрдВ:

  • /ping - рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
  • рдкрдВрдЬреАрдХрд░рдг, рдкреНрд░рд╛рдзрд┐рдХрд░рдг, рдбреА-рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдФрд░ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓;
  • рдПрдХ рдИрдореЗрд▓ рд╣реИрдВрдбрд▓ рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рдЕрдЬрд╡рд╛рдЗрди рдХреА рдХрддрд╛рд░ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред

рдЕрдЬрд╡рд╛рдЗрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдФрд░ рднреА рдЖрд╕рд╛рди, рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ send_mail_task.

рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ / рд╡рд┐рд╢реНрд╡рд╛рд╕ рджреЛ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рд╣реИрдВ:

  • docker рджреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде (base.dockerfile рд╢рд╛рдпрдж рд╣реА рдХрднреА рдмрджрд▓рддреА рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ Dockerfile рдореБрдЦреНрдп рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рд▓рд┐рдП);
  • .env_files - рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдеред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдореВрд▓ рдореЗрдВ рдЪрд╛рд░ рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ:

  • docker-compose.local.db.yml рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рддреИрдпрд╛рд░ рдХрд░рдирд╛;
  • docker-compose.local.workers.yml рдХрд╛рд░реНрдпрдХрд░реНрддрд╛, рдбреЗрдЯрд╛рдмреЗрд╕, Redis рдФрд░ RabbitMQ рдХреА рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП;
  • docker-compose.test.yml рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рджреМрд░рд╛рди рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП;
  • docker-compose.yml рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдПред

рдФрд░ рдЖрдЦрд┐рд░реА рдлреЛрд▓реНрдбрд░ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - .рд╕реАрдЖрдИ-рд╕реАрдбреА. рдЗрд╕рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • deploy.sh - рдкреНрд░рд╡рд╛рд╕рди рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рд╢реБрднрд╛рд░рдВрднред рдЧреАрдереВрдм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ;
  • rollback.sh - рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рд░реЛрд▓рдмреИрдХ;
  • curl_tg.sh - рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдирд╛ред

рдХреЛрдгреАрдп рдкрд░ рджреГрд╢реНрдпрдкрдЯрд▓

рд╕рд╛рдордиреЗ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдмреЗрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ред рд╕рд╛рдордиреЗ рддреАрди рдкреГрд╖реНрда рд╣реЛрддреЗ рд╣реИрдВ:

  • рдореБрдЦреНрдп рдкреГрд╖реНрда рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреЙрд░реНрдо рдФрд░ рдПрдХ рдирд┐рдХрд╛рд╕ рдмрдЯрди рдХреЗ рд╕рд╛рдеред
  • рд▓реЛрдЧ рдЗрди рд╡рд╛рд▓рд╛ рдкрдиреНрдирд╛ред
  • рдкрдВрдЬреАрдХрд░рдг рдкреГрд╖реНрдаред

рдореБрдЦреНрдп рдкреГрд╖реНрда рддрдкрд╕реНрд╡реА рджрд┐рдЦрддрд╛ рд╣реИ:

рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА
рд░реВрдЯ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ Dockerfile ╨╕ docker-compose.yml, рд╕рд╛рде рд╣реА рдкрд░рд┐рдЪрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ .ci-cd рдмреИрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝реА рдХрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде (рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рдЯрд╛ рджреА рдЧрдИ)ред

Plesk рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛

рдЖрдЗрдП Plesk рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдХреЗ рдФрд░ рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдХрд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛

Plesk рдореЗрдВ, рд╣рдореЗрдВ рдЪрд╛рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • Docker Plesk рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рджреГрд╢реНрдп рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
  • Git рд╕рд░реНрд╡рд░ рдкрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЪрд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
  • Let's Encrypt рдореБрдлрд╝реНрдд TLS рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрдирд░реЗрдЯ (рдФрд░ рд╕реНрд╡рддрдГ-рдирд╡реАрдиреАрдХрд░рдг) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
  • Firewall рдЖрдиреЗ рд╡рд╛рд▓реЗ рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЖрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ Plesk рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА
рд╣рдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣рдорд╛рд░реЗ рдбреЗрдореЛ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВрдЧреАред

рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдФрд░ рд╕рд╛рдЗрдЯ рдмрдирд╛рдПрдБ

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдЕрдкрдиреА helloworld.ru рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╡рд╣рд╛рдВ dev.helloworld.ru рд╕рдмрдбреЛрдореЗрди рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

  1. helloworld.ru рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдПрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рди-рдкрд╛рд╕рд╡рд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА
    рдкреГрд╖реНрда рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╕реНрдерд┐рдд рдмреЙрдХреНрд╕ рдХреЛ рдЪреЗрдХ рдХрд░реЗрдВ рд▓реЗрдЯреНрд╕ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдбреЛрдореЗрди рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЕрдЧрд░ рд╣рдо рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП HTTPS рд╕реЗрдЯ рдЕрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  2. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕ рд╕рджрд╕реНрдпрддрд╛ рдореЗрдВ, рдПрдХ рдЙрдкрдбреЛрдореЗрди dev.helloworld.ru рдмрдирд╛рдПрдВ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдХ рдирд┐рдГрд╢реБрд▓реНрдХ TLS рдкреНрд░рдорд╛рдгрдкрддреНрд░ рднреА рдЬрд╛рд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ):

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

рд╕рд░реНрд╡рд░ рдШрдЯрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ рдУрдПрд╕ рдбреЗрдмрд┐рдпрди рд╕реНрдЯреНрд░реЗрдЪ 9.12 рдФрд░ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рд▓рдЧрд╛рдпрд╛ рдкреНрд▓реЗрд╕реНрдХ рдУрдмреНрд╕реАрдбрд┐рдпрди 18.0.27.

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

  • PostgreSQL (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЗрд╡ рдФрд░ рдареЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рджреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реЛрдЧрд╛)ред
  • RabbitMQ (рд╕рдорд╛рди, рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ vhosts рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг)ред
  • рджреЛ рд░реЗрдбрд┐рд╕ рдЙрджрд╛рд╣рд░рдг (рджреЗрд╡ рдФрд░ рдареЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП)ред
  • рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА (рдирд┐рд░реНрдорд┐рдд рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП)ред
  • рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдпреВрдЖрдИред

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓

Plesk рдкрд╣рд▓реЗ рд╕реЗ рд╣реА PostgreSQL DBMS рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ (Plesk Obsidian рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп) рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕рдВрд╕реНрдХрд░рдг 8.4-10.8)ред рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд╕рдордп 12.3), рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВрдЧреЗред

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

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ PostgreSQL рдореЗрдВ рдФрд╕рдд рджрд░реНрдЬреЗ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рд╣реА рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА рдХреИрд▓рдХреБрд▓реЗрдЯрд░: рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ /etc/postgresql/12/main/postgresql.confрдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдРрд╕реЗ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдЬрд╛рджреВ рдХреА рдЧреЛрд▓реА рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдХреНрд╡реЗрд░реА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдзрд╛рд░ рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЯреНрдпреВрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЗрд╕рдореЗрдВ рднреА рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ postgresql.confрдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ 5432 рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ - 53983).

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде postgresql-server рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ:

service postgresql restart

рд╣рдордиреЗ PostgreSQL рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИред рдЕрдм рдЪрд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, dev рдФрд░ prod рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрддреЗ рд╣реИрдВ:

$ su - postgres
postgres:~$ create database hw_dev_db_name;
CREATE DATABASE
postgres:~$ create user hw_dev_db_user with password 'hw_dev_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_dev_db_name to hw_dev_db_user;
GRANT
postgres:~$ create database hw_prod_db_name;
CREATE DATABASE
postgres:~$ create user hw_prod_db_user with password 'hw_prod_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_prod_db_name to hw_prod_db_user;
GRANT

RabbitMQ

рдЪрд▓рд┐рдП, Celery рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдмреНрд░реЛрдХрд░ RabbitMQ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдбреЗрдмрд┐рдпрди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb

sudo apt-get update
sudo apt-get install erlang erlang-nox

sudo add-apt-repository 'deb http://www.rabbitmq.com/debian/ testing main'
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

sudo apt-get update
sudo apt-get install rabbitmq-server

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ vhosts, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ:

sudo rabbitmqctl add_user hw_dev_amqp_user hw_dev_amqp_password 
sudo rabbitmqctl set_user_tags hw_dev_amqp_user administrator
sudo rabbitmqctl add_vhost hw_dev_vhost
sudo rabbitmqctl set_permissions -p hw_dev_vhost hw_dev_amqp_user ".*" ".*" ".*"

sudo rabbitmqctl add_user hw_prod_amqp_user hw_prod_amqp_password 
sudo rabbitmqctl set_user_tags hw_prod_amqp_user administrator
sudo rabbitmqctl add_vhost hw_prod_vhost
sudo rabbitmqctl set_permissions -p hw_prod_vhost hw_prod_amqp_user ".*" ".*" ".*"

Redis

рдЕрдм рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдШрдЯрдХ - рд░реЗрдбрд┐рд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдЬрд╡рд╛рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрд╡ рдФрд░ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд░реЗрдбрд┐рд╕ рдХреЗ рд╕рд╛рде рджреЛ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдмрдврд╝рд╛рдПрдВрдЧреЗ Docker рдкреНрд▓реЗрд╕реНрдХ рдХреЗ рд▓рд┐рдПред

  1. рд╣рдо Plesk рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдбреЙрдХрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ (рд╣рдореЗрдВ рдПрдХ рдлреНрд░реА рд╡рд░реНрдЬрди рдЪрд╛рд╣рд┐рдП):

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  2. рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ рдЬрд╛рдПрдВ, рдЫрд╡рд┐ рдХреЛ рдЦреЛрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдвреВрдВрдвреЗрдВ redis bitnami рдФрд░ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

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

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  4. рд╣рдо рдареЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдЪрд░рдг 2-3 рдХрд░рддреЗ рд╣реИрдВ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдмрджрд▓рддреЗ рд╣реИрдВ: рдкреЛрд░реНрдЯ, рдкрд╛рд╕рд╡рд░реНрдб, рд░реИрдо рдЖрдХрд╛рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╡реЙрд▓реНрдпреВрдо рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрде:

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА

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

рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

  • рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдбреЙрдХрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдПрдХ рд╕рдмрдбреЛрдореЗрди рдкрд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИ https://docker.helloworld.ru;
  • рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЪрд┐рддреНрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП UI, рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ https://docker-ui.helloworld.ru.

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  1. рдЖрдЗрдП рд╣рдорд╛рд░реА рд╕рджрд╕реНрдпрддрд╛ рдореЗрдВ Plesk рдореЗрдВ рджреЛ рд╕рдмрдбреЛрдореЗрди рдмрдирд╛рдПрдВ: docker.helloworld.ru рдФрд░ docker-ui.helloworld.ru, рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рд▓реЗрдЯреНрд╕ рдПрдирдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
  2. рдлрд╝рд╛рдЗрд▓ рдХреЛ docker.helloworld.ru рд╕рдмрдбреЛрдореЗрди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ docker-compose.yml рдЗрд╕ рддрд░рд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде:
    version: "3"
    
    services:
      docker-registry:
        image: "registry:2"
        restart: always
        ports:
          - "53985:5000"
        environment:
          REGISTRY_AUTH: htpasswd
          REGISTRY_AUTH_HTPASSWD_REALM: basic-realm
          REGISTRY_AUTH_HTPASSWD_PATH: /auth/.htpasswd
          REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
        volumes:
          - ./.docker-registry.htpasswd:/auth/.htpasswd
          - ./data:/data
    
      docker-registry-ui:
        image: konradkleine/docker-registry-frontend:v2
        restart: always
        ports:
          - "53986:80"
        environment:
          VIRTUAL_HOST: '*, https://*'
          ENV_DOCKER_REGISTRY_HOST: 'docker-registry'
          ENV_DOCKER_REGISTRY_PORT: 5000
        links:
          - 'docker-registry'
    

  3. SSH рдХреЗ рддрд╣рдд, рд╣рдо рдбреЙрдХрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдмреЗрд╕рд┐рдХ рдСрдерд░рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд▓рд┐рдП .htpasswd рдлрд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рдХрд░реЗрдВрдЧреЗ:
    htpasswd -bBc .htpasswd hw_docker_admin hw_docker_password
  4. рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ рдФрд░ рдЙрдард╛рдПрдВ:
    docker-compose up -d
  5. рдФрд░ рд╣рдореЗрдВ Nginx рдХреЛ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ Plesk рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Docker.helloworld.ru рдФрд░ docker-ui.helloworld.ru рд╕рдмрдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрджрдо рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджреЗрд╡ рдЙрдкрдХрд░рдг рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдБ рдбреЙрдХрд░ рдкреНрд░реЙрдХреНрд╕реА рдирд┐рдпрдо:

рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА
рдФрд░ рд╣рдорд╛рд░реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ:

рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  1. рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рд╕реЗ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
    $ docker login docker.helloworld.ru -u hw_docker_admin -p hw_docker_password
    WARNING! Using --password via the CLI is insecure. Use --password-stdin.
    Login Succeeded
  2. рдЖрдЗрдП docker-ui.helloworld.ru рдЙрдкрдбреЛрдореЗрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рднреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА
    рдЬрдм рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рд╕реВрдЪреА рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЕрднреА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рд╣реЛрдЧрд╛):

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

Plesk рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ рдкреЛрд░реНрдЯ рдЦреЛрд▓рдирд╛

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

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ Plesk рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдерд╛ред

  1. рдХреЗ рд▓рд┐рдП рдЬрд╛рдУ рдЙрдкрдХрд░рдг рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕> рд╕реЗрдЯрд┐рдВрдЧреНрд╕> рдлрд╝рд╛рдпрд░рд╡реЙрд▓:
    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА
  2. рдХреЗ рд▓рд┐рдП рдЬрд╛рдУ Plesk рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ > рдХрд╕реНрдЯрдо рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдбреЙрдХрд░ рд╕рдмрдиреЗрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреАрд╕реАрдкреА рдкреЛрд░реНрдЯ рдЦреЛрд▓реЗрдВ (172.0.0.0 / 8):
    рд░реИрдмрд┐рдЯрдПрдордХреНрдпреВ: 1883, 4369, 5671-5672, 25672, 61613-61614
    рд░реЗрдбрд┐рд╕: 32785, 32786

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  3. рд╣рдо рдПрдХ рдирд┐рдпрдо рднреА рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдЬреЛ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП PostgreSQL рдкреЛрд░реНрдЯ рдФрд░ RabbitMQ рдкреНрд░рдмрдВрдзрди рдкреИрдирд▓ рдЦреЛрд▓реЗрдЧрд╛:

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  4. рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░реЗрдВ:

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

рдЬреАрдердм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА рдХреА рд╕реНрдерд╛рдкрдирд╛

рдЖрдЗрдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рднрд╛рдЧ рдкрд░ рдЖрддреЗ рд╣реИрдВ - рдПрдХ рд╕рддрдд рдПрдХреАрдХрд░рдг рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ред

рдЗрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрдВрдЧреЗ:

  • рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ (рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП) - рдЬреАрдердм рдХреА рддрд░рдл;
  • рд╕рд░реНрд╡рд░ рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди (рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП) рдЪрд▓рд╛рдирд╛ рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ред

Plesk рдкрд░ рддреИрдирд╛рдд рдХрд░реЗрдВ

рдЖрдЗрдП рдкрд╣рд▓реЗ рджреВрд╕рд░реЗ рдмрд┐рдВрджреБ рд╕реЗ рдирд┐рдкрдЯреЗрдВ (рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓рд╛ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ)ред

рд╣рдо Plesk рдХреЗ рд▓рд┐рдП Git рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред

рдмреИрдХрдПрдВрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдкрд╛рдж рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

  1. рд╣рдо рдЕрдкрдиреА рд╣реЗрд▓реЛрд╡рд░реНрд▓реНрдб рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЧрд┐рдЯ рдЙрдкрдЦрдВрдб рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ:

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  2. "рд░рд┐рдореЛрдЯ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА" рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╣рдорд╛рд░реЗ рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рд▓рд┐рдВрдХ рдбрд╛рд▓реЗрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдмрджрд▓реЗрдВ httpdocs рджреВрд╕рд░реЗ рдХреЛ (рдЙрджрд╛. /httpdocs/hw_back):

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  3. SSH рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЛ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЬреЛрдбрд╝рдирд╛ рдпрд╣ рдЬреАрдердм рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╣реИред
  4. рдЪрд░рдг 2 рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдУрдХреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо Plesk рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреЗрдЬ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдЕрдм рд╣рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдорд╛рд╕реНрдЯрд░ рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдХрдорд┐рдЯ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░ рдЬрд╛рдПрдБ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдореВрд▓реНрдп рдмрдЪрд╛рдУ Webhook URL (рдЧреАрдереВрдм рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА):

    рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

  5. рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджрд░реНрдЬ рдХрд░реЗрдВ:
    cd {REPOSITORY_ABSOLUTE_PATH}
    .ci-cd/deploy.sh {ENV} {DOCKER_REGISTRY_HOST} {DOCKER_USER} {DOCKER_PASSWORD} {TG_BOT_TOKEN} {TG_CHAT_ID} 

    рдЬрд╣рд╛рдБ:

    {REPOSITORY_ABSOLUTE_PATH} - рд╕рд░реНрд╡рд░ рдкрд░ рдмреИрдХрдПрдВрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдареЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рдкрде;
    {ENV} - рдкрд░реНрдпрд╛рд╡рд░рдг (рджреЗрд╡ / рдареЗрд╕), рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ prod;
    {DOCKER_REGISTRY_HOST} - рд╣рдорд╛рд░реЗ рдбреЙрдХрдЯрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╣реЛрд╕реНрдЯ
    {TG_BOT_TOKEN} - рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдЯреЛрдХрди;
    {TG_CHAT_ID} тАФ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЪреИрдЯ/рдЪреИрдирд▓ рдХреА рдЖрдИрдбреАред

    рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрджрд╛рд╣рд░рдг:

    cd /var/www/vhosts/helloworld.ru/httpdocs/hw_back/
    .ci-cd/deploy.sh dev docker.helloworld.ru docker_user docker_password 12345678:AAbcdEfghCH1vGbCasdfSAs0K5PALDsaw -1001234567890
  6. рдбреЙрдХрд░ рд╕рдореВрд╣ рдореЗрдВ рд╣рдорд╛рд░реА рд╕рджрд╕реНрдпрддрд╛ рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝реЗрдВ (рддрд╛рдХрд┐ рд╡реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХреЗрдВ):
    sudo usermod -aG docker helloworld_admin

рдмреИрдХрдПрдВрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб рдХреЗ рд▓рд┐рдП рджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд╛рдЗрдкрд▓рд╛рдЗрди

рдЖрдЗрдП рдЬреАрдердм рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕реАрдЖрдИ/рд╕реАрдбреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

рдмреИрдХрдПрдгреНрдб

рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ рддреИрдирд╛рддреА.рдЖрдИрдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓.

рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЬреАрдердм рдореЗрдВ рд╣рдореЗрдВ рдЬрд┐рди рд╕реАрдХреНрд░реЗрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЙрдиреНрд╣реЗрдВ рднрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░ рдЬрд╛рдПрдБ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> рд░рд╛рдЬ:

  • DOCKER_REGISTRY - рд╣рдорд╛рд░реЗ рдбреЙрдХрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (docker.helloworld.ru) рдХреЗ рд╣реЛрд╕реНрдЯ;
  • DOCKER_LOGIN - рдбреЙрдХрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ;
  • DOCKER_PASSWORD - рдЗрд╕рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб;
  • DEPLOY_HOST тАФ рд╡рд╣ рд╣реЛрд╕реНрдЯ рдЬрд╣рд╛рдВ Plesk рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдЙрдкрд▓рдмреНрдз рд╣реИ (рдЙрджрд╛рд╣рд░рдг: helloworld.ru:8443 рдпрд╛ 123.4.56.78: 8443);
  • DEPLOY_BACK_PROD_TOKEN - рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЛрдб-рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЛрдХрди (рд╣рдореЗрдВ рдпрд╣ Plesk рдкреГрд╖реНрда 4 рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рдорд┐рд▓рд╛);
  • DEPLOY_BACK_DEV_TOKEN - рд╕рд░реНрд╡рд░ рдкрд░ рджреЗрд╡ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЯреЛрдХрдиред

рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд░рд▓ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рддреАрди рдореБрдЦреНрдп рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ:

  • рд╣рдорд╛рд░реЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдЫрд╡рд┐ рдмрдирд╛рдирд╛ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛;
  • рдПрдХ рддрд╛рдЬрд╛ рдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛;
  • рд╢рд╛рдЦрд╛ (рджреЗрд╡/рдорд╛рд╕реНрдЯрд░) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдВрдЫрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреИрдирд╛рддреАред

рджреГрд╢реНрдпрдкрдЯрд▓

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

рд╕рд╛рдЗрдЯ рд╕реЗрдЯрдЕрдк

Nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдирд╛

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

рдореИрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛ред

рдмреИрдХрдПрдгреНрдб

рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА

рджреГрд╢реНрдпрдкрдЯрд▓

рдлреНрд▓рд╛рд╕реНрдХ+рдПрдВрдЧреБрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдердм рдПрдХреНрд╢рди рдореЗрдВ рд╕реАрдЖрдИ/рд╕реАрдбреА
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг. рдЗрд╕рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕рднреА рдпреВрдЖрд░рдПрд▓ рдлрд╝реНрд░рдВрдЯрдПрдВрдб рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЬреБрдбрд╝реЗ рд░рд╣реЗрдВрдЧреЗ /api/ - рд╡реЗ рдкрд┐рдЫрд▓реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рдореАрдк рд╣реЛрдВрдЧреЗ (рдЗрд╕рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ, рд╕рднреА рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ /api/).

рдкрд░рд┐рдгрд╛рдо

рдЕрдм рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ helloworld.ru рдФрд░ dev.helloworld.ru (рдХреНрд░рдорд╢рдГ prod- рдФрд░ dev-environment) рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдлреНрд▓рд╛рд╕реНрдХ рдФрд░ рдПрдВрдЧреБрд▓рд░ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ Plesk рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Github Actions рдореЗрдВ рдПрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рдПред

рдореИрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдВрдХ рдХреА рдирдХрд▓ рдХрд░реВрдВрдЧрд╛: рдмреИрдХрдПрдВрдб, рдлрд╝реНрд░рдВрдЯ рдПрдВрдб.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ