#actualiza
tu raspbian
sudo apt-get update
sudo apt-get upgrade -y
#baja el runtime y el SDK
de dotnet core 3.1
wget https://download.visualstudio.microsoft.com/download/pr/67766a96-eb8c-4cd2-bca4-ea63d2cc115c/7bf13840aa2ed88793b7315d5e0d74e6/dotnet-sdk-3.1.100-linux-arm.tar.gz
wget
https://download.visualstudio.microsoft.com/download/pr/60d21925-7f8f-4004-9afe-aebd041d2d4a/0db2946738642d7f88f71f7800522e8c/dotnet-runtime-3.1.0-linux-arm.tar.gz
#creamos la carpeta donde
quedará alojado el NetCore
mkdir dotnet-arm32
tar zxf dotnet-sdk-3.1.100-linux-arm.tar.gz -C $HOME/dotnet-arm32
tar zxf dotnet-runtime-3.1.0-linux-arm.tar.gz -C $HOME/dotnet-arm32
#solo puede ejecutar
comandos .NET Core dentro de la carpeta dotnet-arm32. Para hacer que el comando
"dotnet" se pueda ejecutar en todas partes, debe hacer algo como
variables de entorno, que vincularán la carpeta dotnet-arm32 al nivel del
sistema.
export DOTNET_ROOT=$HOME/dotnet-arm32
export PATH=$PATH:$HOME/dotnet-arm32
#Crea una app por consola
para validar que funciono la instalacion
mkdir hello-netcore3.1
cd hello-netcore3.1/
dotnet new console
#para ejecutar el hola Mundo
dotnet run
dotnet run
#Creamos la carpeta web
mkdir AspnetApp
cd AspnetApp/
#ahora podemos crear una
app web con VS2019 , puede ser cualquiera solo debemos tener cuidado al
publicar, ya que debe ser usando Framework-Dependent (FDD) y Portable. ya que
esto se ejecutará nativamente en la Raspberry Pi
#en mi caso mi app se
llama aspnetapp y para llamarla es colocando:
dotnet aspnetapp.dll
# si
ahora queremos que se auto ejecute
sudo
nano .profile
# y
agregamos esto al final del archivo.
export DOTNET_ROOT=$HOME/dotnet-arm32
export PATH=$PATH:$HOME/dotnet-arm32
# para
validar que corre en todas las IPs de la máquina.
dotnet aspnetapp --urls "http://*:8080"
#finalmente
hosteamos con nginx.
sudo apt-get
install nginx -y
sudo
/etc/init.d/nginx start
#
respaldamos el archivo, siempre es bueno respaldar.
mv
/etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
#creamos
el nuevo archivo
sudo nano /etc/nginx/sites-available/default
server {
listen 80 default_server;
server_name _;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Host by Nginx with auto-restart capability
First, install and start Nginx:
sudo nginx -t
sudo nginx -s reload
sudo nano /etc/systemd/system/kestrel-aspnetapp.service
[Unit]
Description=ASP.NET Core 3.1 App - AspNet
[Service]
WorkingDirectory=/home/pi/aspnetApp
ExecStart=/home/pi/dotnet-arm32/dotnet /home/pi/aspnetApp/aspnetapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-AspnetApp
User=pi
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
sudo systemctl enable kestrel-aspnetapp.service
sudo systemctl start kestrel-aspnetapp.service
sudo systemctl status kestrel-aspnetapp.service
server {
listen 80 default_server;
server_name _;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Host by Nginx with auto-restart capability
First, install and start Nginx:
sudo nginx -t
sudo nginx -s reload
sudo nano /etc/systemd/system/kestrel-aspnetapp.service
[Unit]
Description=ASP.NET Core 3.1 App - AspNet
[Service]
WorkingDirectory=/home/pi/aspnetApp
ExecStart=/home/pi/dotnet-arm32/dotnet /home/pi/aspnetApp/aspnetapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-AspnetApp
User=pi
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
sudo systemctl enable kestrel-aspnetapp.service
sudo systemctl start kestrel-aspnetapp.service
sudo systemctl status kestrel-aspnetapp.service
basado en https://edi.wang/post/2019/9/29/setup-net-core-30-runtime-and-sdk-on-raspberry-pi-4
editado por nuevo script bash de instalacion
https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh
No comments:
Post a Comment