SparkyFitness: Самостоятельно размещенная альтернатива MyFitnessPal для вашего Homelab
Узнайте, как установить и настроить SparkyFitness — самостоятельную альтернативу MyFitnessPal для безопасного отслеживания питания и фитнеса на вашем сервере. Полное руководство для энтузиастов Homelab.
Не указано
Подготовка сервера
Обновление системы и установка необходимых зависимостей
sudo apt update && sudo apt upgrade -yУстановка .NET 6
Добавление репозитория .NET и установка SDK
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install -y dotnet-sdk-6.0 aspnetcore-runtime-6.0Установка базы данных
Установка и настройка PostgreSQL
sudo apt install -y postgresql postgresql-contrib
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo -u postgres createdb sparkyfitness
sudo -u postgres psql -c "CREATE USER sparky WITH PASSWORD 'your_strong_password';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE sparkyfitness TO sparky;"Скачивание SparkyFitness
Создание директории и скачивание приложения
sudo mkdir -p /opt/sparkyfitness
sudo chown $USER:$USER /opt/sparkyfitness
cd /opt/sparkyfitness
wget https://github.com/SparkyFI/SparkyFitness/releases/download/v0.16.4.0/SparkyFitness-v0.16.4.0.zip
unzip SparkyFitness-v0.16.4.0.zipНастройка приложения
Конфигурация приложения и настройка SSL
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=sparkyfitness;Username=sparky;Password=your_strong_password;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"AppSettings": {
"AppVersion": "0.16.4.0",
"AppUrl": "https://your-domain.com",
"AdminEmail": "admin@example.com",
"UseDatabaseForImages": true,
"Jwt": {
"Key": "your-super-secret-jwt-key-change-this",
"Issuer": "SparkyFitness",
"Audience": "SparkyFitnessUsers",
"DurationInMinutes": 60
}
}
}Запуск приложения
Запуск приложения как службы
[Unit]
Description=SparkyFitness
After=network.target postgresql.service
[Service]
Type=simple
User=sparkyfitness
WorkingDirectory=/opt/sparkyfitness/SparkyFitness
ExecStart=/usr/bin/dotnet /opt/sparkyfitness/SparkyFitness/SparkyFitness.dll
Restart=always
RestartSec=10
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=ASPNETCORE_URLS=http://localhost:5000
[Install]
WantedBy=multi-user.target