
āĻāĻ āύāĻŋāĻŦāύā§āϧā§, āĻāĻŽāĻŋ Plesk āĻāύā§āĻā§āϰā§āϞ āĻĒā§āϝāĻžāύā§āϞ āĻāĻŦāĻ Github āĻ
ā§āϝāĻžāĻāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠CI/CD āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āĻāĻŽāĻžāϰ āĻ
āĻāĻŋāĻā§āĻāϤāĻž āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻŦāĨ¤ āĻāĻ āĻāĻŽāϰāĻž āĻļāĻŋāĻāĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āϏāĻšāĻ āĻĒā§āϰāĻā§āĻā§āĻ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āĻšāϝāĻŧ āϝāĻžāϰ āύāĻžāĻŽ "āĻšā§āϝāĻžāϞā§āĻāϝāĻŧāĻžāϰā§āϞā§āĻĄ"āĨ¤ āĻāĻāĻŋ āĻĢā§āϞāĻžāϏā§āĻ āĻĒāĻžāĻāĻĨāύ āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻā§ āϏā§āϞāĻžāϰāĻŋ āĻāϰā§āĻŽā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻŖāĻŋāĻ 8 āĻĢā§āϰāύā§āĻāĻāύā§āĻĄ āϏāĻš āϞā§āĻāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āϞāĻŋāĻā§āĻ: , .
āύāĻŋāĻŦāύā§āϧā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻ āĻāĻļā§, āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰāĻāϞā§āĻĒ āĻāĻŦāĻ āĻāϰ āĻ āĻāĻļāĻā§āϞāĻŋ āĻĻā§āĻāĻŦāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧāĻāĻŋāϤā§, āĻāĻŽāϰāĻž āĻā§āĻāĻžāĻŦā§ Plesk āϏā§āĻ āĻāĻĒ āĻāϰāĻŦ āĻāĻŦāĻ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻāĻā§āϏāĻā§āύāĻļāύ āĻāĻŦāĻ āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋ (DB, RabbitMQ, Redis, Docker, āĻāϤā§āϝāĻžāĻĻāĻŋ) āĻāύāϏā§āĻāϞ āĻāϰāĻŦ āϤāĻž āĻŦā§āϰ āĻāϰāĻŦāĨ¤
āϤā§āϤā§āϝāĻŧ āĻ āĻāĻļā§, āĻāĻŽāϰāĻž āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰā§āĻā§āĻā§āĻāĻā§ āĻāĻāĻāĻŋ dev āĻāĻŦāĻ prod āĻĒāϰāĻŋāĻŦā§āĻļā§ āϏāĻžāϰā§āĻāĻžāϰ⧠āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āϏā§āĻ āĻāĻĒ āĻāϰāϤ⧠āĻšāϝāĻŧāĨ¤ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻāĻŽāϰāĻž āϏāĻžāϰā§āĻāĻžāϰ⧠āϏāĻžāĻāĻāĻāĻŋ āĻāĻžāϞ⧠āĻāϰāĻŦāĨ¤
āĻāϰ āĻšā§āϝāĻžāĻ, āĻĒāϰāĻŋāĻāϝāĻŧ āĻĻāĻŋāϤ⧠āĻā§āϞ⧠āĻā§āĻāĻŋāĨ¤ āĻāĻŽāĻžāϰ āύāĻžāĻŽ āĻāϞā§āĻ āĻŦā§āϰā§āĻāĻ, āĻāĻŽāĻŋ āĻĄā§āĻŽāĻā§āϞāĻŋāĻ-āĻ āĻŦāύā§āϧāĻā§ āĻĒāϰāĻŋāĻāĻžāϞāĻāĻĻā§āϰ āĻāύā§āϝ CRM āĻāĻŋāĻŽā§āϰ āĻāĻāĻāύ āĻĢā§āϞāϏā§āĻā§āϝāĻžāĻ āĻĄā§āĻā§āϞāĻĒāĻžāϰāĨ¤
āĻĒā§āϰāĻā§āĻā§āĻ āϏāĻžāϰāϏāĻāĻā§āώā§āĻĒ
āĻĒā§āϰāĻĨāĻŽā§, āĻāϏā§āύ āĻĻā§āĻāĻŋ āĻĒā§āϰāĻā§āĻā§āĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ āĻĻā§āĻāĻŋ - āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻāĻŦāĻ āĻĢā§āϰāύā§āĻ - āĻāĻŦāĻ āĻā§āĻĄā§āϰ āĻāĻĒāϰ āϝāĻžāύāĨ¤
āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ: āĻĢā§āϞāĻžāϏā§āĻ + āϏā§āϞāĻžāϰāĻŋ
āĻĒāĻŋāĻāύā§āϰ āĻ āĻāĻļā§āϰ āĻāύā§āϝ, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ āύāĻŋāϝāĻŧā§āĻāĻŋ āϝāĻž āĻĒāĻžāĻāĻĨāύ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰā§āĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻŦā§āĻļ āĻāύāĻĒā§āϰāĻŋāϝāĻŧ: āĻĢā§āϞāĻžāϏā§āĻ āĻĢā§āϰā§āĻŽāĻāϝāĻŧāĻžāϰā§āĻ (āĻāĻĒāĻŋāĻāĻāϝāĻŧā§āϰ āĻāύā§āϝ) āĻāĻŦāĻ āϏā§āϞāĻžāϰāĻŋ (āĻāĻžāϏā§āĻ āĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ)āĨ¤ 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āĻāϰā§āĻŽā§āϰ āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻāϤā§āĻĨāĻžāĻĒāύā§āϰ āĻāύā§āϝ, āĻĄāĻžāĻāĻžāĻŦā§āϏ, āϰā§āĻĄāĻŋāϏ āĻāĻŦāĻ āϰâā§āϝāĻžāĻŦāĻŋāĻāĻāĻŽāĻāĻŋāĻ;docker-compose.test.ymlāϏā§āĻĨāĻžāĻĒāύāĻžāϰ āϏāĻŽāϝāĻŧ āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāύā§āϰ āĻāύā§āϝ;docker-compose.ymlāϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻāύā§āϝāĨ¤
āĻāĻŦāĻ āĻļā§āώ āĻĢā§āϞā§āĻĄāĻžāϰāĻāĻŋ āĻāĻŽāϰāĻž āĻāĻā§āϰāĻšā§ - . āĻāĻāĻŋ āϏā§āĻĨāĻžāĻĒāύā§āϰ āĻāύā§āϝ āĻļā§āϞ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϰāϝāĻŧā§āĻā§:
deploy.sh- āĻŽāĻžāĻāĻā§āϰā§āĻļāύ āĻāĻŦāĻ āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āϏā§āĻāύāĻžāĨ¤ āĻāĻŋāĻĨā§āĻŦ āĻ ā§āϝāĻžāĻāĻļāύ⧠āĻĒāϰā§āĻā§āώāĻž āϤā§āϰāĻŋ āĻāĻŦāĻ āĻāĻžāϞāĻžāύā§āϰ āĻĒāϰ⧠āϏāĻžāϰā§āĻāĻžāϰ⧠āĻāϞā§;rollback.sh- āϏāĻŽāĻžāĻŦā§āĻļā§āϰ āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϏāĻāϏā§āĻāϰāĻŖā§ āĻĒāĻžāϤā§āϰā§āϰ āϰā§āϞāĻŦā§āϝāĻžāĻ;curl_tg.sh- āĻā§āϞāĻŋāĻā§āϰāĻžāĻŽā§ āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻŦāĻŋāĻā§āĻāĻĒā§āϤāĻŋ āĻĒāĻžāĻ āĻžāύā§āĨ¤
āĻā§āĻŖāĻŋāĻ āĻāĻĒāϰ āϏāĻŽā§āĻŽā§āĻāĻāĻžāĻ
āĻŦā§āĻā§āϰ āϤā§āϞāύāĻžāϝāĻŧ āĻ āύā§āĻ āϏāĻšāĻāĨ¤ āϏāĻžāĻŽāύ⧠āϤāĻŋāύāĻāĻŋ āĻĒā§āώā§āĻ āĻž āϰāϝāĻŧā§āĻā§:
- āĻāĻŽā§āϞ āĻĒāĻžāĻ āĻžāύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĢāϰā§āĻŽ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āϰāϏā§āĻĨāĻžāύ āĻŦā§āϤāĻžāĻŽ āϏāĻš āĻĒā§āϰāϧāĻžāύ āĻĒā§āώā§āĻ āĻžāĨ¤
- āϞāĻāĻāύ āĻĒā§āώā§āĻ āĻžāϝāĻŧ.
- āύāĻŋāĻŦāύā§āϧāύ āĻĒā§āώā§āĻ āĻžāĨ¤
āĻŽā§āϞ āĻĒā§āώā§āĻ āĻžāĻāĻŋ āϤāĻĒāϏā§āĻŦā§ āĻĻā§āĻāĻžāϝāĻŧ:

āϰā§āĻā§ āĻĻā§āĻāĻŋ āĻĢāĻžāĻāϞ āĻāĻā§ Dockerfile и docker-compose.yml, āϏā§āĻāϏāĻžāĻĨā§ āĻĒāϰāĻŋāĻāĻŋāϤ āĻĢā§āϞā§āĻĄāĻžāϰ .ci-cd āĻĒāĻŋāĻāύā§āϰ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āϤā§āϞāύāĻžāϝāĻŧ āϏāĻžāĻŽāĻžāύā§āϝ āĻāĻŽ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āϏāĻš (āĻāϞāĻŽāĻžāύ āĻĒāϰā§āĻā§āώāĻžāĻā§āϞāĻŋāϰ āĻāύā§āϝ āϏā§āĻā§āϰāĻŋāĻĒā§āĻāĻā§āϞāĻŋ āϏāϰāĻžāύ⧠āĻšāϝāĻŧā§āĻā§)āĨ¤
Plesk āĻāĻāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒ āĻļā§āϰā§
āĻāϏā§āύ Plesk āϏā§āĻ āĻāĻĒ āĻāϰ⧠āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāĻāĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāĻŦāϏā§āĻā§āϰāĻŋāĻĒāĻļāύ āϤā§āϰāĻŋ āĻāϰ⧠āĻļā§āϰ⧠āĻāϰāĻŋāĨ¤
āĻāĻā§āϏāĻā§āύāĻļāύ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāĻā§āĻā§
āĻĒā§āϞā§āϏā§āĻā§, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāϰāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻāϰāĻāĻžāϰ:
DockerPlesk āĻ ā§āϝāĻžāĻĄāĻŽāĻŋāύ āĻĒā§āϝāĻžāύā§āϞ⧠āĻāύā§āĻā§āĻāύāĻžāϰāĻā§āϞāĻŋāϰ āĻ āĻŦāϏā§āĻĨāĻž āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāĻŦāĻ āĻĻā§āĻļā§āϝāϤ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤā§;GitāϏāĻžāϰā§āĻāĻžāϰ⧠āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āϧāĻžāĻĒ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤā§;Let's EncryptāĻŦāĻŋāύāĻžāĻŽā§āϞā§āϝ⧠TLS āĻļāĻāϏāĻžāĻĒāϤā§āϰ āϤā§āϰāĻŋ (āĻāĻŦāĻ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ-āύāĻŦā§āĻāϰāĻŖ) āĻāϰāϤā§;FirewallāĻāύāĻāĻžāĻŽāĻŋāĻ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻā§āϰ āĻĢāĻŋāϞā§āĻāĻžāϰāĻŋāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤā§āĨ¤
āĻāĻĒāύāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύ āĻŦāĻŋāĻāĻžāĻā§ Plesk āĻ ā§āϝāĻžāĻĄāĻŽāĻŋāύ āĻĒā§āϝāĻžāύā§āϞā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻā§āϞāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:

āĻāĻŽāϰāĻž āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻāύā§āϝ āĻŦāĻŋāĻļāĻĻ āϏā§āĻāĻŋāĻāϏ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻŦ āύāĻž, āĻĄāĻŋāĻĢāϞā§āĻ āϏā§āĻāĻŋāĻāϏ āĻāĻŽāĻžāĻĻā§āϰ āĻĄā§āĻŽā§ āĻāĻĻā§āĻĻā§āĻļā§āϝ⧠āĻāϰāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āϏāĻĻāϏā§āϝāϤāĻž āĻāĻŦāĻ āϏāĻžāĻāĻ āϤā§āϰāĻŋ āĻāϰā§āύ
āĻāϰāĻĒāϰā§, āĻāĻŽāĻžāĻĻā§āϰ helloworld.ru āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāĻŦāϏā§āĻā§āϰāĻŋāĻĒāĻļāύ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āϏā§āĻāĻžāύ⧠dev.helloworld.ru āϏāĻžāĻŦāĻĄā§āĻŽā§āύ āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
- helloworld.ru āĻĄā§āĻŽā§āύā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻžāĻŦāϏā§āĻā§āϰāĻŋāĻĒāĻļāύ āϤā§āϰāĻŋ āĻāϰā§āύ āĻāĻŦāĻ āϏāĻŋāϏā§āĻā§āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻāύā§āϝ āϞāĻāĻāύ-āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ:

āĻĒā§āώā§āĻ āĻžāϰ āύā§āĻā§ āĻŦāĻžāĻā§āϏāĻāĻŋ āĻā§āĻ āĻāϰā§āύ āϞā§āĻāϏ āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āĻĻāĻŋāϝāĻŧā§ āĻĄā§āĻŽā§āĻāύāĻāĻŋ āϏā§āϰāĻā§āώāĻŋāϤ āĻāϰā§āύāϝāĻĻāĻŋ āĻāĻŽāϰāĻž āϏāĻžāĻāĻā§āϰ āĻāύā§āϝ HTTPS āϏā§āĻ āĻāĻĒ āĻāϰāϤ⧠āĻāĻžāĻ:
- āĻāϰāĻĒāϰā§, āĻāĻ āϏāĻžāĻŦāϏā§āĻā§āϰāĻŋāĻĒāĻļāύā§, āĻāĻāĻāĻŋ āϏāĻžāĻŦāĻĄā§āĻŽā§āύ dev.helloworld.ru āϤā§āϰāĻŋ āĻāϰā§āύ (āϝāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāύāĻžāĻŽā§āϞā§āϝā§āϰ TLS āĻļāĻāϏāĻžāĻĒāϤā§āϰāĻ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āύ):

āϏāĻžāϰā§āĻāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāĻā§āĻā§
āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻžāϰ āĻāĻā§ OS Debian āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ āĻāĻŦāĻ āĻāύāϏā§āĻāϞ āĻāϰāĻž āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻĒā§āϝāĻžāύā§āϞ āĻĒā§āϞā§āϏā§āĻ āĻ āĻŦāϏāĻŋāĻĄāĻŋāϝāĻŧāĻžāύ 18.0.27.
āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§:
- PostgreSQL (āĻāĻŽāĻžāĻĻā§āϰ āĻā§āώā§āϤā§āϰā§, dev āĻāĻŦāĻ prod āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻāύā§āϝ āĻĻā§āĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏ āϏāĻš āĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻžāϰ āĻĨāĻžāĻāĻŦā§)āĨ¤
- RabbitMQ (āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻāύā§āϝ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻšā§āϏā§āĻā§āϰ āϏāĻžāĻĨā§ āĻāĻāĻ, āĻāĻāĻ āĻāĻĻāĻžāĻšāϰāĻŖ)āĨ¤
- āĻĻā§āĻāĻŋ Redis āĻāĻĻāĻžāĻšāϰāĻŖ (dev āĻāĻŦāĻ prod āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻāύā§āϝ)āĨ¤
- āĻĄāĻāĻžāϰ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ (āύāĻŋāϰā§āĻŽāĻŋāϤ āĻĄāĻāĻžāϰ āĻāĻŋāϤā§āϰāĻā§āϞāĻŋāϰ āϏā§āĻĨāĻžāύā§āϝāĻŧ āϏā§āĻā§āϰā§āĻā§āϰ āĻāύā§āϝ)āĨ¤
- āĻĄāĻāĻžāϰ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋāϰ āĻāύā§āϝ UIāĨ¤
āĻĒā§āϏā§āĻāĻā§āϰāĻŋ
Plesk āĻāϤāĻŋāĻŽāϧā§āϝ⧠PostgreSQL DBMS āĻāϰ āϏāĻžāĻĨā§ āĻāϏā§āĻā§, āĻāĻŋāύā§āϤ⧠āϏāϰā§āĻŦāĻļā§āώ āϏāĻāϏā§āĻāϰāĻŖ āύāϝāĻŧ (Plesk Obsidian āϞā§āĻāĻžāϰ āϏāĻŽāϝāĻŧ āĻĒā§āϏā§āĻāĻā§āϰā§āϏ āϏāĻāϏā§āĻāϰāĻŖ 8.4â10.8)āĨ¤ āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāύā§āϝ āϏāϰā§āĻŦāĻļā§āώ āϏāĻāϏā§āĻāϰāĻŖ āĻāĻžāĻ (āĻāĻ āϞā§āĻāĻžāϰ āϏāĻŽāϝāĻŧ 12.3), āϤāĻžāĻ āĻāĻŽāϰāĻž āĻāĻāĻŋ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻŦāĨ¤
Postgres āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠Debian āĻāύā§āĻāĻžāϰāύā§āĻā§ āĻāϰ āĻĒā§āϰāĻā§āϰ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧāĨ¤), āϤāĻžāĻ āĻāĻŽāĻŋ āϤāĻžāĻĻā§āϰ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻŦ āύāĻž, āĻāĻŽāĻŋ āĻļā§āϧ⧠āĻāĻŽāĻžāύā§āĻĄ āĻĻā§āĻŦ:
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-āϏāĻžāϰā§āĻāĻžāϰ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻžāϞ⧠āĻāϰā§āύ:
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 āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĻāĻŋāĻā§ āĻāĻā§āύ⧠āϝāĻžāĻāĨ¤ āĻāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāϝāĻŧ Debian āĻŦāĻŋāώāϝāĻŧāĻāĻž āĻŦā§āĻļ āϏāĻšāĻ:
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
āĻāĻāύ āĻāĻŽāĻžāĻĻā§āϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻāύā§āϝ āĻļā§āώ āĻāĻĒāĻžāĻĻāĻžāύāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āϝāĻžāĻ - āϰā§āĻĄāĻŋāϏāĨ¤ āϏā§āϞāĻžāϰāĻŋ āĻāĻžāĻā§āϰ āĻĢāϞāĻžāĻĢāϞ āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻāύā§āϝ āĻāĻāĻŋ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāĻŦā§āĨ¤
āĻāĻŽāϰāĻž āĻāĻā§āϏāĻā§āύāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠dev āĻāĻŦāĻ prod āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻāύā§āϝ Redis āϏāĻš āĻĻā§āĻāĻŋ āĻĄāĻāĻžāϰ āĻāύā§āĻā§āĻāύāĻžāϰ āĻŦāĻžāĻĄāĻŧāĻžāĻŦ Docker Plesk āĻāύā§āϝ.
- āĻāĻŽāϰāĻž āĻĒā§āϞā§āϏā§āĻā§ āϝāĻžāĻ, āĻāĻā§āϏāĻā§āύāĻļāύ āĻŦāĻŋāĻāĻžāĻā§ āϝāĻžāύ, āĻĄāĻāĻžāϰ āĻāĻā§āϏāĻā§āύāĻļāύāĻāĻŋ āϏāύā§āϧāĻžāύ āĻāϰāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāĻŋ (āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻŦāĻŋāύāĻžāĻŽā§āϞā§āϝ⧠āϏāĻāϏā§āĻāϰāĻŖ āĻĒā§āϰāϝāĻŧā§āĻāύ):

- āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻāĻā§āϏāĻā§āύāĻļāύ⧠āϝāĻžāύ, āĻ
āύā§āϏāύā§āϧāĻžāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŋāϤā§āϰāĻāĻŋ āĻā§āĻāĻā§āύ
redis bitnamiāĻāĻŦāĻ āϏāϰā§āĻŦāĻļā§āώ āϏāĻāϏā§āĻāϰāĻŖ āĻāύāϏā§āĻāϞ āĻāϰā§āύ:
- āĻāĻŽāϰāĻž āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻž āĻāύā§āĻā§āĻāύāĻžāϰ⧠āϝāĻžāĻ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻāϰāĻŋ: āĻĒā§āϰā§āĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ, āϏāϰā§āĻŦāĻžāϧāĻŋāĻ āĻŦāϰāĻžāĻĻā§āĻĻāĻā§āϤ RAM āĻāĻāĻžāϰ, āĻĒāϰāĻŋāĻŦā§āĻļ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ⧠āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻŦāĻ āĻāϞāĻŋāĻāĻŽ āĻŽāĻžāĻāύā§āĻ āĻāϰā§āύ:

- āĻāĻŽāϰāĻž āĻĒā§āϰā§āĻĄ āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻāύā§āϝ 2-3 āϧāĻžāĻĒāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰāĻŋ, āϏā§āĻāĻŋāĻāϏ⧠āĻāĻŽāϰāĻž āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻŋ: āĻĒā§āϰā§āĻ, āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ, āϰâā§āϝāĻžāĻŽ āĻāĻāĻžāϰ āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ⧠āĻāϞāĻŋāĻāĻŽ āĻĢā§āϞā§āĻĄāĻžāϰā§āϰ āĻĒāĻĨ:

āĻĄāĻāĻžāϰ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ
āĻŽā§āϞāĻŋāĻ āĻĒāϰāĻŋāώā§āĻŦāĻžāĻā§āϞāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻ, āϏāĻžāϰā§āĻāĻžāϰ⧠āĻāĻĒāύāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻĄāĻāĻžāϰ āĻāĻŽā§āĻ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āϰāĻžāĻāĻž āĻāĻžāϞ āĻšāĻŦā§āĨ¤ āϏā§āĻāĻžāĻā§āϝāĻŦāĻļāϤ, āϏāĻžāϰā§āĻāĻžāϰ āϏā§āĻĒā§āϏ āĻāĻāύ āĻŦā§āĻļ āϏāϏā§āϤāĻž (āĻ āĻŦāĻļā§āϝāĻ āĻāĻāĻāĻŋ DockerHub āϏāĻžāĻŦāϏā§āĻā§āϰāĻŋāĻĒāĻļāύā§āϰ āĻā§āϝāĻŧā§ āϏāϏā§āϤāĻž), āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻā§āĻŦāĻ āϏāĻšāĻāĨ¤
āĻāĻŽāϰāĻž āĻĨāĻžāĻāϤ⧠āĻāĻžāĻ:
- āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ-āϏā§āϰāĻā§āώāĻŋāϤ āĻĄāĻāĻžāϰ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āĻāĻāĻāĻŋ āϏāĻžāĻŦāĻĄā§āĻŽā§āύ⧠āĻ ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ ;
- āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ⧠āĻāĻŦāĻŋ āĻĻā§āĻāĻžāϰ āĻāύā§āϝ UI, āĻāĻāĻžāύ⧠āĻāĻĒāϞāĻŦā§āϧ .
āĻāĻ āĻāĻžāĻā§āϰ āĻāύā§āϝ:
- āĻāϏā§āύ āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāĻŦāϏā§āĻā§āϰāĻŋāĻĒāĻļāύ⧠Plesk-āĻ āĻĻā§āĻāĻŋ āϏāĻžāĻŦāĻĄā§āĻŽā§āύ āϤā§āϰāĻŋ āĻāϰāĻŋ: docker.helloworld.ru āĻāĻŦāĻ docker-ui.helloworld.ru, āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻāύā§āϝ āϞā§āĻāϏ āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āϏāĻžāϰā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻŋāĨ¤
- āĻĢāĻžāĻāϞāĻāĻŋ 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' - SSH-āĻāϰ āĻ
āϧā§āύā§, āĻāĻŽāϰāĻž āĻĄāĻāĻžāϰ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āĻŽā§āϞāĻŋāĻ āĻ
āύā§āĻŽā§āĻĻāύā§āϰ āĻāύā§āϝ .htpasswd āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻŦ:
htpasswd -bBc .htpasswd hw_docker_admin hw_docker_password - āĻĒāĻžāϤā§āϰ āϏāĻāĻā§āϰāĻš āĻāĻŦāĻ āĻāϤā§āϤā§āϞāύ:
docker-compose up -d - āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ Nginx āĻāĻŽāĻžāĻĻā§āϰ āĻĒāĻžāϤā§āϰ⧠āĻĒā§āύāĻāύāĻŋāϰā§āĻĻā§āĻļāĻŋāϤ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ Plesk āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
docker.helloworld.ru āĻāĻŦāĻ docker-ui.helloworld.ru āϏāĻžāĻŦāĻĄā§āĻŽā§āύā§āϰ āĻāύā§āϝ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§āϞāĻŋ āĻāϰāĻž āĻĻāϰāĻāĻžāϰ:
āĻ āϧā§āϝāĻžāϝāĻŧ āĻĻā§āĻŦ āϏāϰāĻā§āĻāĻžāĻŽ āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāĻāĻā§ āϝāĻžāύ āĻĄāĻāĻžāϰ āĻĒā§āϰāĻā§āϏāĻŋ āύāĻŋāϝāĻŧāĻŽ:

āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āĻā§āĻāύāĻžāϰ⧠āĻĒā§āϰāĻā§āϏāĻŋ āĻāύāĻāĻžāĻŽāĻŋāĻ āĻā§āϰāĻžāĻĢāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽ āϝā§āĻ āĻāϰā§āύ:

- āĻāĻŽāϰāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŋ āϝ⧠āĻāĻŽāϰāĻž āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻŽā§āĻļāĻŋāύ āĻĨā§āĻā§ āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āĻā§āĻāύāĻžāϰ⧠āϞāĻ āĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ:
$ 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 - āĻĄāĻāĻžāϰ-ui.helloworld.ru āϏāĻžāĻŦāĻĄā§āĻŽā§āύā§āϰ āĻ
āĻĒāĻžāϰā§āĻļāύāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻž āϝāĻžāĻ:

āĻāĻĒāύāĻŋ āĻŦā§āϰāĻžāĻāĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āĻā§āϞāĻŋāĻ āĻāϰāϞā§, āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻāĻāĻāĻŋ āĻ āύā§āĻŽā§āĻĻāύ āĻāĻāύā§āĻĄā§ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻŦā§ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻžāĻā§ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āύāĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϞāĻŋāĻāϤ⧠āĻšāĻŦā§āĨ¤ āĻāϰ āĻĒāϰā§, āĻāĻŽāϰāĻž āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϤāĻžāϞāĻŋāĻāĻž āϏāĻš āĻāĻāĻāĻŋ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰāĻŋāϤ āĻšāĻŦ (āĻāĻĒāĻžāϤāϤ, āĻāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āĻāĻžāϞāĻŋ āĻĨāĻžāĻāĻŦā§):
Plesk āĻĢāĻžāϝāĻŧāĻžāϰāĻāϝāĻŧāĻžāϞ⧠āĻĒā§āϰā§āĻ āĻā§āϞāĻž āĻšāĻā§āĻā§
āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋ āĻāύāϏā§āĻāϞ āĻāĻŦāĻ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰā§āĻāĻā§āϞāĻŋ āĻā§āϞāϤ⧠āĻšāĻŦā§ āϝāĻžāϤ⧠āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋ āĻĄāĻāĻžāϰ āĻāύā§āĻā§āĻāύāĻžāϰ āĻāĻŦāĻ āĻŦāĻžāĻšā§āϝāĻŋāĻ āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻĨā§āĻā§ āĻ ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ āĻšāϝāĻŧāĨ¤
āĻāĻŽāϰāĻž āĻāĻā§ āĻāύāϏā§āĻāϞ āĻāϰāĻž Plesk-āĻāϰ āĻāύā§āϝ āĻĢāĻžāϝāĻŧāĻžāϰāĻāϝāĻŧāĻžāϞ āĻāĻā§āϏāĻā§āύāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāϰāĻž āϝāĻžāϝāĻŧ āϤāĻž āĻĻā§āĻāĻž āϝāĻžāĻāĨ¤
- āϝāĻžāĻ āĻā§āϞ āĻ āϏā§āĻāĻŋāĻāϏ > āϏā§āĻāĻŋāĻāϏ > āĻĢāĻžāϝāĻŧāĻžāϰāĻāϝāĻŧāĻžāϞ:

- āϝāĻžāĻ Plesk āĻĢāĻžāϝāĻŧāĻžāϰāĻāϝāĻŧāĻžāϞ āύāĻŋāϝāĻŧāĻŽ āϏāĻāĻļā§āϧāύ āĻāϰā§āύ > āĻāĻžāϏā§āĻāĻŽ āύāĻŋāϝāĻŧāĻŽ āϝā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āĻĄāĻāĻžāϰ āϏāĻžāĻŦāύā§āĻā§āϰ āĻāύā§āϝ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻāĻŋāϏāĻŋāĻĒāĻŋ āĻĒā§āϰā§āĻāĻā§āϞāĻŋ āĻā§āϞā§āύ (172.0.0.0 / 8):
RabbitMQ: 1883, 4369, 5671-5672, 25672, 61613-61614
āϰā§āĻĄāĻŋāϏ: 32785, 32786
- āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻ āϝā§āĻ āĻāϰāĻŦ āϝāĻž PostgreSQL āĻĒā§āϰā§āĻ āĻāĻŦāĻ RabbitMQ āĻŽā§āϝāĻžāύā§āĻāĻŽā§āύā§āĻ āĻĒā§āϝāĻžāύā§āϞāĻā§āϞāĻŋāĻā§ āĻŦāĻšāĻŋāϰā§āĻŦāĻŋāĻļā§āĻŦā§ āĻā§āϞāĻŦā§:

- āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āύ āĻŦā§āϤāĻžāĻŽāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āύāĻŋāϝāĻŧāĻŽāĻā§āϞāĻŋ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āύ:

Github āĻ ā§āϝāĻžāĻāĻļāύ⧠CI/CD āϏā§āĻ āĻāĻĒ āĻāϰāĻž āĻšāĻā§āĻā§
āĻāϞā§āύ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻāϰā§āώāĻŖā§āϝāĻŧ āĻ āĻāĻļā§ āύā§āĻŽā§ āĻāϏāĻŋ - āĻāĻāĻāĻŋ āĻ āĻŦāĻŋāĻā§āĻāĻŋāύā§āύ āĻāύā§āĻāĻŋāĻā§āϰā§āĻļāύ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āϏā§āĻ āĻāĻĒ āĻāϰāĻž āĻāĻŦāĻ āϏāĻžāϰā§āĻāĻžāϰ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰāĻāϞā§āĻĒ āϏāϰāĻŦāϰāĻžāĻš āĻāϰāĻžāĨ¤
āĻāĻ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻĻā§āĻāĻŋ āĻ āĻāĻļ āĻāĻ āĻŋāϤ āĻšāĻŦā§:
- āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāύ⧠(āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ) - Github āĻĒāĻžāĻļā§;
- āĻāϞāĻŽāĻžāύ āĻŽāĻžāĻāĻā§āϰā§āĻļāύ (āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ) āĻāĻŦāĻ āĻāύā§āĻā§āĻāύāĻžāϰ āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž - āϏāĻžāϰā§āĻāĻžāϰā§āĨ¤
Plesk āĻ āϏā§āĻĨāĻžāĻĒāύ āĻāϰā§āύ
āĻāϏā§āύ āĻĒā§āϰāĻĨāĻŽā§ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒāϝāĻŧā§āύā§āĻāĻāĻŋ āύāĻŋāϝāĻŧā§ āĻāĻžāĻ āĻāϰāĻŋ (āĻāĻžāϰāĻŖ āĻĒā§āϰāĻĨāĻŽāĻāĻŋ āĻāĻāĻŋāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§)āĨ¤
āĻāĻŽāϰāĻž Plesk-āĻāϰ āĻāύā§āϝ Git āĻāĻā§āϏāĻā§āύāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻŦāĨ¤
āĻāĻāĻāĻŋ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻĄ āĻĒāϰāĻŋāĻŦā§āĻļ āϏāĻš āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰā§āύāĨ¤
- āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻšā§āϝāĻžāϞā§āĻāϝāĻŧāĻžāϰā§āϞā§āĻĄ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§āϰ āϏāĻžāĻŦāϏā§āĻā§āϰāĻŋāĻĒāĻļāύ⧠āϝāĻžāĻ āĻāĻŦāĻ āĻāĻŋāĻ āϏāĻžāĻŦāϏā§āĻāĻļāύ⧠āϝāĻžāĻ:

- "āϰāĻŋāĻŽā§āĻ āĻāĻŋāĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ" āĻā§āώā§āϤā§āϰ⧠āĻāĻŽāĻžāĻĻā§āϰ Github āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āĻāĻāĻāĻŋ āϞāĻŋāĻā§āĻ āϏāύā§āύāĻŋāĻŦā§āĻļ āĻāϰāĻžāύ āĻāĻŦāĻ āĻĄāĻŋāĻĢāϞā§āĻ āĻĢā§āϞā§āĻĄāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āύ
httpdocsāĻ āύā§āϝā§āϰ āĻāĻžāĻā§ (āϝā§āĻŽāύ/httpdocs/hw_back):
- āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āϧāĻžāĻĒ āĻĨā§āĻā§ SSH āĻĒāĻžāĻŦāϞāĻŋāĻ āĻā§ āĻ āύā§āϞāĻŋāĻĒāĻŋ āĻāϰā§āύ āĻāĻŦāĻ āĻāĻāĻž Github āϏā§āĻāĻŋāĻāϏā§āĨ¤
- āϧāĻžāĻĒ 2-āĻ āϏā§āĻā§āϰāĻŋāύ⧠āĻāĻā§ āĻā§āϞāĻŋāĻ āĻāϰā§āύ, āϤāĻžāϰāĻĒāϰ⧠āĻāĻŽāϰāĻž Plesk-āĻāϰ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻĒā§āύāĻāύāĻŋāϰā§āĻĻā§āĻļāĻŋāϤ āĻšāĻŦāĨ¤ āĻāĻāύ āĻāĻŽāĻžāĻĻā§āϰ āĻŽā§āϞ āĻļāĻžāĻāĻžāϰ āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋāϤ⧠āĻāĻĒāĻĄā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāϰāϤā§, āϝāĻžāύ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āϏā§āĻāĻŋāĻāϏ āĻāĻŦāĻ āĻŽāĻžāύ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āύ
Webhook URL(āĻāĻŋāĻĨā§āĻŦ āĻ ā§āϝāĻžāĻāĻļāύ āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻŋ āĻĒāϰ⧠āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§):
- āĻĒā§āϰā§āĻŦāĻŦāϰā§āϤ⧠āĻ
āύā§āĻā§āĻā§āĻĻ āĻĨā§āĻā§ āϏā§āĻā§āϰāĻŋāύ⧠āĻ
ā§āϝāĻžāĻāĻļāύ āĻĢāĻŋāϞā§āĻĄā§, āϏā§āĻĨāĻžāĻĒāύāĻž āĻāĻžāϞ⧠āĻāϰāϤ⧠āϏā§āĻā§āϰāĻŋāĻĒā§āĻāĻāĻŋ āĻĒā§āϰāĻŦā§āĻļ āĻāϰāĻžāύ:
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}- āĻĒāϰāĻŋāĻŦā§āĻļ (dev/prod), āĻāĻŽāĻžāĻĻā§āϰ āĻā§āώā§āϤā§āϰā§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 - āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāĻŦāϏā§āĻā§āϰāĻŋāĻĒāĻļāύ āĻĨā§āĻā§ āĻĄāĻāĻžāϰ āĻā§āϰā§āĻĒā§ āĻāĻāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āϝā§āĻā§āϤ āĻāϰā§āύ (āϝāĻžāϤ⧠āϤāĻžāϰāĻž āĻāύā§āĻā§āĻāύāĻžāϰāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§):
sudo usermod -aG docker helloworld_admin
āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ āĻāĻŦāĻ āĻĢā§āϰāύā§āĻāĻāύā§āĻĄā§āϰ āĻāύā§āϝ dev āĻĒāϰāĻŋāĻŦā§āĻļ āĻāĻāĻāĻāĻžāĻŦā§ āϏā§āĻ āĻāĻĒ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
Github āĻ ā§āϝāĻžāĻāĻļāύ⧠āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ
āĻāĻŋāĻĨā§āĻŦ āĻ ā§āϝāĻžāĻāĻļāύ⧠āĻāĻŽāĻžāĻĻā§āϰ CI/CD āĻĒāĻžāĻāĻĒāϞāĻžāĻāύā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻ āĻāĻļ āϏā§āĻ āĻāĻĒ āĻāϰāĻžāϰ āĻĻāĻŋāĻā§ āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻž āϝāĻžāĻāĨ¤
āĻŦā§āϝāĻžāĻ-āĻāύā§āĻĄ
āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ .
āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āĻĒāĻžāϰā§āϏ āĻāϰāĻžāϰ āĻāĻā§, āĻāϏā§āύ Github-āĻ āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻā§āĻĒāύ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāĻā§āϞāĻŋ āĻĒā§āϰāĻŖ āĻāϰāĻŋāĨ¤ āĻāĻāĻŋ āĻāϰāϤā§, āϝāĻžāύ āϏā§āĻāĻŋāĻāϏ -> āĻā§āĻĒāύā§āϝāĻŧāϤāĻž:
DOCKER_REGISTRY- āĻāĻŽāĻžāĻĻā§āϰ āĻĄāĻāĻžāϰ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϰ āĻšā§āϏā§āĻ (docker.helloworld.ru);DOCKER_LOGIN- āĻĄāĻāĻžāϰ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āϞāĻāĻāύ āĻāϰā§āύ;DOCKER_PASSWORD- āĻāĻāĻŋ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ;DEPLOY_HOSTâ āĻšā§āϏā§āĻ āϝā§āĻāĻžāύ⧠Plesk āĻ ā§āϝāĻžāĻĄāĻŽāĻŋāύ āĻĒā§āϝāĻžāύā§āϞ āĻāĻĒāϞāĻŦā§āϧ (āĻāĻĻāĻžāĻšāϰāĻŖ: : 8443 āĻŦāĻž :8443);DEPLOY_BACK_PROD_TOKEN- āϏāĻžāϰā§āĻāĻžāϰ⧠āĻĒā§āϰā§āĻĄ-āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āĻā§āύ (āĻāĻŽāϰāĻž āĻāĻāĻŋ Plesk p. 4-āĻ āϏā§āĻĨāĻžāĻĒāύāĻžāϝāĻŧ āĻĒā§āϝāĻŧā§āĻāĻŋ);DEPLOY_BACK_DEV_TOKEN- āϏāĻžāϰā§āĻāĻžāϰ⧠āĻĄā§āĻ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤ⧠āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻāύā§āϝ āĻā§āĻā§āύāĨ¤
āϏā§āĻĨāĻžāĻĒāύāĻž āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻšāĻ āĻāĻŦāĻ āϤāĻŋāύāĻāĻŋ āĻĒā§āϰāϧāĻžāύ āϧāĻžāĻĒ āύāĻŋāϝāĻŧā§ āĻāĻ āĻŋāϤ:
- āĻāĻŽāĻžāĻĻā§āϰ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ⧠āĻāĻŦāĻŋāĻāĻŋ āύāĻŋāϰā§āĻŽāĻžāĻŖ āĻāĻŦāĻ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž;
- āĻāĻāĻāĻŋ āϏāĻĻā§āϝ āύāĻŋāϰā§āĻŽāĻŋāϤ āĻāĻŋāϤā§āϰā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āĻāĻāĻāĻŋ āĻĒāĻžāϤā§āϰ⧠āĻĒāϰā§āĻā§āώāĻž āĻāϞāĻā§;
- āĻļāĻžāĻāĻžāϰ (dev/master) āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻĒāĻāύā§āĻĻāϏāĻ āĻĒāϰāĻŋāĻŦā§āĻļā§ āϏā§āĻĨāĻžāĻĒāύāĻžāĨ¤
āϏāĻžāĻŽāύā§āϰ āĻ āĻāĻļ
āĻŦā§āĻā§āϰ āĻĨā§āĻā§ āĻāĻāĻā§ āĻāϞāĻžāĻĻāĻžāĨ¤ āĻāĻāĻŋāϤ⧠āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāύā§āϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĒāĻĻāĻā§āώā§āĻĒā§āϰ āĻ āĻāĻžāĻŦ āϰāϝāĻŧā§āĻā§ āĻāĻŦāĻ āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻāύā§āϝ āĻā§āĻā§āύāĻā§āϞāĻŋāϰ āύāĻžāĻŽ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āĨ¤ āϏāĻžāĻŽāύā§āϰ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞā§āϰ āĻā§āĻĒāύā§āϝāĻŧāϤāĻžāĻā§āϞāĻŋ, āϝāĻžāĻāĻšā§āĻ, āĻāϞāĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻĒā§āϰāĻŖ āĻāϰāĻž āĻĻāϰāĻāĻžāϰāĨ¤
āϏāĻžāĻāĻ āϏā§āĻāĻāĻĒ
Nginx āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒā§āϰāĻā§āϏāĻŋ āĻā§āϰāĻžāĻĢāĻŋāĻ
āĻāĻā§āĻāĻž, āĻāĻŽāϰāĻž āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ āĻāϏā§āĻāĻŋāĨ¤ āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ Nginx āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āĻā§āĻāύāĻžāϰ⧠āĻāύāĻāĻžāĻŽāĻŋāĻ āĻāĻŦāĻ āĻāĻāĻāĻā§āϝāĻŧāĻŋāĻ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻā§āϰ āĻĒā§āϰāĻā§āϏāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻ āĻŦāĻļā§āώāĨ¤ āĻāĻŽāϰāĻž āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻĄāĻāĻžāϰ āϰā§āĻāĻŋāϏā§āĻā§āϰāĻŋ āϏā§āĻāĻāĻĒā§āϰ 5 āϧāĻžāĻĒā§ āĻāĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āĻāĻāĻžāϰ āĻāϰā§āĻāĻŋāĨ¤ dev āĻāĻŦāĻ prod āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻĒāĻŋāĻāύ⧠āĻāĻŦāĻ āϏāĻžāĻŽāύā§āϰ āĻ āĻāĻļāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻāĻ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤
āĻāĻŽāĻŋ āϏā§āĻāĻŋāĻāϏā§āϰ āϏā§āĻā§āϰāĻŋāύāĻļāĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻŦāĨ¤
āĻŦā§āϝāĻžāĻ-āĻāύā§āĻĄ

āϏāĻžāĻŽāύā§āϰ āĻ āĻāĻļ

ĐŖŅĐžŅĐŊĐĩĐŊиĐĩ ŅŅĐžŅĐŊĐĩĐŊиĐĩ. āϏāĻŽāϏā§āϤ āĻāĻāĻāϰāĻāϞ āĻĢā§āϰāύā§āĻāĻāύā§āĻĄ āĻāύā§āĻā§āĻāύāĻžāϰ⧠āĻĒā§āϰāĻā§āϏāĻŋ āĻāϰāĻž āĻšāĻŦā§, āĻāϰ āϏāĻžāĻĨā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āĻāĻžāĻĄāĻŧāĻž /api/ - āϤāĻžāϰāĻž āĻĒāĻŋāĻāύā§āϰ āĻĒāĻžāϤā§āϰ⧠āĻĒā§āϰāĻā§āϏāĻŋ āĻāϰāĻž āĻšāĻŦā§ (āϤāĻžāĻ āĻĒāĻŋāĻāύā§āϰ āĻĒāĻžāϤā§āϰā§, āϏāĻŽāϏā§āϤ āĻšā§āϝāĻžāύā§āĻĄāϞāĻžāϰāĻĻā§āϰ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻšāĻŦā§ /api/).
āĻĢāϞāĻžāĻĢāϞ
āĻāĻāύ āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāĻāĻāĻāĻŋ helloworld.ru āĻāĻŦāĻ dev.helloworld.ru (āϝāĻĨāĻžāĻā§āϰāĻŽā§ prod- āĻāĻŦāĻ dev-āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ) āĻ āĻĒāĻžāĻāϝāĻŧāĻž āĻāĻāĻŋāϤāĨ¤
āϏāĻžāĻŽāĻā§āϰāĻŋāĻāĻāĻžāĻŦā§, āĻāĻŽāϰāĻž āĻļāĻŋāĻā§āĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻĢā§āϞāĻžāϏā§āĻ āĻāĻŦāĻ āĻ ā§āϝāĻžāĻā§āĻā§āϞāĻžāϰ⧠āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāϤ⧠āĻšāϝāĻŧ āĻāĻŦāĻ āĻāĻŋāĻĨā§āĻŦ āĻ ā§āϝāĻžāĻāĻļāύ⧠āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĒāϞāĻžāĻāύ āϏā§āĻ āĻāĻĒ āĻāϰāϤ⧠āĻšāϝāĻŧ āϝāĻžāϤ⧠āĻāĻāĻŋ Plesk āĻāϞāĻŽāĻžāύ āĻāĻāĻāĻŋ āϏāĻžāϰā§āĻāĻžāϰ⧠āϰā§āϞ āĻāĻāĻ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
āĻāĻŽāĻŋ āĻā§āĻĄ āϏāĻš āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞāĻā§āϞāĻŋāϰ āϞāĻŋāĻā§āĻāĻā§āϞāĻŋ āύāĻāϞ āĻāϰāĻŦ: , .
āĻāϤā§āϏ: www.habr.com
