1. Подготовка:
Убедитесь, что на вашем сервере Ubuntu установлено .NET 8 SDK.
Выполните команду sudo apt update для обновления списка пакетов.
Выполните команду sudo apt install aspnetcore-runtime-8.0 для установки среды выполнения .NET 8.
Установите PostgreSQL.
Выполните команду sudo apt install postgresql postgresql-contrib для установки PostgreSQL и дополнительных утилит.
Создайте пользователя и базу данных для приложения.
Запустите sudo -u postgres psql для входа в оболочку PostgreSQL.
Выполните команду CREATE USER <имя_пользователя> WITH PASSWORD '<пароль>'; для создания пользователя.
Выполните команду CREATE DATABASE <имя_базы_данных> OWNER <имя_пользователя>; для создания базы данных.
Выйдите из оболочки PostgreSQL командой \q.
2. Настройка приложения:
Создайте файл appsettings.json или appsettings.Production.json для настройки конфигурации приложения.
Замените <connection string> на строку подключения к PostgreSQL.
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=<имя_базы_данных>;Username=<имя_пользователя>;Password=<пароль>"
}
}
Проверьте, что ваше приложение использует библиотеку Entity Framework Core с PostgreSQL провайдером.
Добавьте пакет Microsoft.EntityFrameworkCore.Sqlite в ваш проект.
Настройте контекст данных, используя DbContextOptionsBuilder и UseNpgsql для PostgreSQL.
3. Публикация приложения:
Создайте папку для развертывания приложения.
Опубликуйте приложение с помощью команды dotnet publish -c Release -o <папка_развертывания>.
Скопируйте все необходимые файлы и папки в папку развертывания, включая appsettings.json или appsettings.Production.json.
4. Запуск приложения:
Перейдите в папку развертывания приложения.
Запустите приложение с помощью команды dotnet <имя_исполняемого_файла>.dll.
5. Настройка для запуска приложения автоматически:
Создайте файл службы systemd для запуска приложения.
[Unit]
Description=My .NET Core 8 Application
After=network.target
[Service]
User=www-data
WorkingDirectory=/path/to/your/application
ExecStart=/usr/bin/dotnet /path/to/your/application/<имя_исполняемого_файла>.dll
Restart=always
RestartSec=30
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
Сохраните файл как my-app.service.
Скопируйте файл в systemctl/system/:
sudo cp my-app.service /etc/systemd/system/my-app.service
Перезагрузите демон systemd:
sudo systemctl daemon-reload
Запустите сервис:
sudo systemctl start my-app.service
Включите автозапуск сервиса при загрузке системы:
sudo systemctl enable my-app.service
Дополнительные советы:
Используйте Nginx или Apache для проксирования HTTP-запросов к вашему приложению.
Настройте SSL-сертификат для обеспечения безопасного доступа к вашему приложению.
Используйте инструменты мониторинга для отслеживания производительности вашего приложения.
Используйте Docker для упрощения развертывания приложения.
Важно:
Замените <имя_пользователя>, <пароль>, <имя_базы_данных>, <папка_развертывания> и <имя_исполняемого_файла>.dll на свои фактические значения.
Проверьте права доступа к папкам и файлам для правильной работы приложения.
Прочитайте документацию .NET 8 и PostgreSQL для получения дополнительной информации.