Add install.sh
This commit is contained in:
parent
b63cf03b4d
commit
2e89267b52
63
install.sh
Normal file
63
install.sh
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "Updating system packages..."
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
|
||||||
|
echo "Installing prerequisites..."
|
||||||
|
sudo apt install -y apt-transport-https ca-certificates gnupg wget
|
||||||
|
|
||||||
|
echo "Adding Microsoft package repository for .NET 8..."
|
||||||
|
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
|
||||||
|
sudo dpkg -i packages-microsoft-prod.deb
|
||||||
|
sudo apt update
|
||||||
|
|
||||||
|
echo "Installing .NET 8 SDK and runtime..."
|
||||||
|
sudo apt install -y dotnet-sdk-8.0 aspnetcore-runtime-8.0
|
||||||
|
|
||||||
|
echo "Installing PostgreSQL..."
|
||||||
|
sudo apt install -y postgresql postgresql-contrib
|
||||||
|
sudo systemctl enable postgresql
|
||||||
|
sudo systemctl start postgresql
|
||||||
|
|
||||||
|
echo "Creating PostgreSQL user and database..."
|
||||||
|
sudo -u postgres psql <<EOF
|
||||||
|
CREATE USER api WITH PASSWORD 'abcd1234';
|
||||||
|
CREATE DATABASE apidatabase OWNER api;
|
||||||
|
GRANT ALL PRIVILEGES ON DATABASE apidatabase TO api;
|
||||||
|
EOF
|
||||||
|
|
||||||
|
APP_DIR=/opt/api
|
||||||
|
echo "Creating application directory $APP_DIR..."
|
||||||
|
sudo mkdir -p $APP_DIR
|
||||||
|
sudo chown $(whoami):$(whoami) $APP_DIR
|
||||||
|
|
||||||
|
echo "Copy your published .NET API files (DLL, appsettings.json) into $APP_DIR now."
|
||||||
|
read -p "Press Enter to continue after copying files..."
|
||||||
|
|
||||||
|
echo "Creating systemd service file..."
|
||||||
|
sudo tee /etc/systemd/system/mydotnetapi.service > /dev/null <<EOF
|
||||||
|
[Unit]
|
||||||
|
Description=My .NET Web API
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
WorkingDirectory=$APP_DIR
|
||||||
|
ExecStart=/usr/bin/dotnet $APP_DIR/Taekwondo.WebApi.dll
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
|
SyslogIdentifier=dotnet-api
|
||||||
|
User=$(whoami)
|
||||||
|
Environment=ASPNETCORE_ENVIRONMENT=Production
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "Reloading systemd daemon and starting mydotnetapi service..."
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable mydotnetapi
|
||||||
|
sudo systemctl start mydotnetapi
|
||||||
|
|
||||||
|
echo "Setup complete. Check service status with: sudo systemctl status mydotnetapi"
|
||||||
|
echo "Test your API endpoints with curl or Postman."
|
||||||
Loading…
x
Reference in New Issue
Block a user