├── README.md └── шаги по настройке.txt /README.md: -------------------------------------------------------------------------------- 1 | # DeployAspNetCoreGuide 2 | 3 | клоним репу \ 4 | apt install git \ 5 | cd /home \ 6 | git clone https://github.com/Excalib88/DeployGuide.git \ 7 | 8 | ставим .net core sdk \ 9 | wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb 10 | sudo dpkg -i packages-microsoft-prod.deb 11 | rm packages-microsoft-prod.deb 12 | 13 | sudo apt-get update && \ 14 | sudo apt-get install -y dotnet-sdk-6.0 \ 15 | 16 | sudo apt-get update && \ 17 | sudo apt-get install -y aspnetcore-runtime-6.0 \ 18 | 19 | собираем/запускаем приложение \ 20 | cd DeployGuide/DeployGuide \ 21 | dotnet run \ 22 | 23 | установка nginx \ 24 | sudo apt update \ 25 | sudo apt install nginx \ 26 | 27 | открытие портов \ 28 | sudo ufw status \ 29 | sudo ufw allow 'Nginx Full' \ 30 | sudo ufw allow 22 \ 31 | sudo ufw allow 80 \ 32 | sudo ufw allow 443 \ 33 | sudo ufw enable \ 34 | sudo ufw status \ 35 | 36 | настройка демона \ 37 | sudo nano /etc/systemd/system/kestrel-deploy-guide.service \ 38 | 39 | правим пути и энвы по необходимости и вставляем в созданный файл \ 40 | [Unit] 41 | Description=Example .NET Web API App running on Linux 42 | 43 | [Service] 44 | WorkingDirectory=/home/DeployGuide/DeployGuide 45 | ExecStart=/usr/bin/dotnet /home/DeployGuide/DeployGuide/bin/Debug/net6.0/DeployGuide.dll 46 | Restart=always 47 | # Restart service after 10 seconds if the dotnet service crashes: 48 | RestartSec=10 49 | KillSignal=SIGINT 50 | SyslogIdentifier=dotnet-example 51 | User=www-data 52 | #envs 53 | Environment=ASPNETCORE_ENVIRONMENT=Production 54 | Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false 55 | 56 | [Install] 57 | WantedBy=multi-user.target 58 | 59 | конец файла 60 | продолжаем настройку демона 61 | sudo systemctl enable kestrel-deploy-guide.service \ 62 | sudo systemctl start kestrel-deploy-guide.service \ 63 | sudo systemctl status kestrel-deploy-guide.service \ 64 | 65 | настройки nginx \ 66 | sudo nano /etc/nginx/sites-available/excalib.ru \ 67 | 68 | конфиг нжинкса проверь порт приложения в демоне \ 69 | 70 | server { 71 | listen 80; 72 | server_name excalib.ru; 73 | location / { 74 | proxy_pass http://127.0.0.1:5000; 75 | proxy_http_version 1.1; 76 | proxy_set_header Upgrade $http_upgrade; 77 | proxy_set_header Connection keep-alive; 78 | proxy_set_header Host $host; 79 | proxy_cache_bypass $http_upgrade; 80 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 81 | proxy_set_header X-Forwarded-Proto $scheme; 82 | } 83 | } 84 | #конец файла 85 | 86 | sudo ln -s /etc/nginx/sites-available/excalib.ru /etc/nginx/sites-enabled/ \ 87 | sudo nano /etc/nginx/nginx.conf 88 | 89 | #раскоментировать в http блоке 90 | #server_names_hash_bucket_size 64; 91 | 92 | #если после выполенения этой команды ошибок не получили то всё отлично проверяем (вводим ip в браузере и любуемся нашим сайтом) 93 | sudo systemctl restart nginx 94 | 95 | #настроил днсы(не забыл создать днс хост на стороне провайдера вдс) 96 | 97 | #настраиваем https с сертом letsencrypt certbot 98 | 99 | sudo apt install snapd \ 100 | sudo snap install core; sudo snap refresh core \ 101 | sudo snap install --classic certbot \ 102 | sudo ln -s /snap/bin/certbot /usr/bin/certbot \ 103 | #если нжинкс слушает 80ый порт то надо вырубить нжинкс \ 104 | sudo systemctl stop nginx 105 | 106 | sudo certbot --nginx -d excalib.ru \ 107 | sudo certbot renew --dry-run 108 | -------------------------------------------------------------------------------- /шаги по настройке.txt: -------------------------------------------------------------------------------- 1 | #клоним репу 2 | apt install git 3 | cd /home 4 | git clone https://github.com/Excalib88/DeployGuide.git 5 | 6 | #ставим .net core sdk 7 | wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb 8 | sudo dpkg -i packages-microsoft-prod.deb 9 | rm packages-microsoft-prod.deb 10 | 11 | sudo apt-get update && \ 12 | sudo apt-get install -y dotnet-sdk-6.0 13 | 14 | sudo apt-get update && \ 15 | sudo apt-get install -y aspnetcore-runtime-6.0 16 | 17 | # собираем/запускаем приложе 18 | cd DeployGuide/DeployGuide 19 | dotnet run 20 | 21 | #установка nginx 22 | sudo apt update 23 | sudo apt install nginx 24 | 25 | #открытие портов 26 | sudo ufw status 27 | sudo ufw allow 'Nginx Full' 28 | sudo ufw allow 22 29 | sudo ufw allow 80 30 | sudo ufw allow 443 31 | sudo ufw enable 32 | sudo ufw status 33 | 34 | #настройка демона 35 | sudo nano /etc/systemd/system/kestrel-deploy-guide.service 36 | 37 | #правим пути и энвы по необходимости и вставляем в созданный файл 38 | [Unit] 39 | Description=Example .NET Web API App running on Linux 40 | 41 | [Service] 42 | WorkingDirectory=/home/DeployGuide/DeployGuide 43 | ExecStart=/usr/bin/dotnet /home/DeployGuide/DeployGuide/bin/Debug/net6.0/DeployGuide.dll 44 | Restart=always 45 | # Restart service after 10 seconds if the dotnet service crashes: 46 | RestartSec=10 47 | KillSignal=SIGINT 48 | SyslogIdentifier=dotnet-example 49 | User=www-data 50 | #envs 51 | Environment=ASPNETCORE_ENVIRONMENT=Production 52 | Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false 53 | 54 | [Install] 55 | WantedBy=multi-user.target 56 | 57 | #конец файла 58 | #продолжаем настройку демона 59 | sudo systemctl enable kestrel-deploy-guide.service 60 | sudo systemctl start kestrel-deploy-guide.service 61 | sudo systemctl status kestrel-deploy-guide.service 62 | 63 | #настройки nginx 64 | sudo nano /etc/nginx/sites-available/excalib.ru 65 | 66 | #конфиг нжинкса проверь порт приложения в демоне 67 | 68 | server { 69 | listen 80; 70 | server_name excalib.ru; 71 | location / { 72 | proxy_pass http://127.0.0.1:5000; 73 | proxy_http_version 1.1; 74 | proxy_set_header Upgrade $http_upgrade; 75 | proxy_set_header Connection keep-alive; 76 | proxy_set_header Host $host; 77 | proxy_cache_bypass $http_upgrade; 78 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 79 | proxy_set_header X-Forwarded-Proto $scheme; 80 | } 81 | } 82 | #конец файла 83 | 84 | sudo ln -s /etc/nginx/sites-available/excalib.ru /etc/nginx/sites-enabled/ 85 | sudo nano /etc/nginx/nginx.conf 86 | 87 | #раскоментировать в http блоке 88 | #server_names_hash_bucket_size 64; 89 | 90 | #если после выполенения этой команды ошибок не получили то всё отлично проверяем (вводим ip в браузере и любуемся нашим сайтом) 91 | sudo systemctl restart nginx 92 | 93 | #настроил днсы(не забыл создать днс хост на стороне провайдера вдс) 94 | 95 | #настраиваем https с сертом letsencrypt certbot 96 | 97 | sudo apt install snapd 98 | sudo snap install core; sudo snap refresh core 99 | sudo snap install --classic certbot 100 | sudo ln -s /snap/bin/certbot /usr/bin/certbot 101 | #если нжинкс слушает 80ый порт то надо вырубить нжинкс 102 | sudo systemctl stop nginx 103 | 104 | sudo certbot --nginx -d excalib.ru 105 | sudo certbot renew --dry-run 106 | --------------------------------------------------------------------------------