SparkyFitness app installation fail

Hi folks,

I’m running TrueNAS CE v25.10.5 on my Beelink ME Mini. The apps I use are MeTube, Jellyfin, nginx proxy manager, Wordpress an Pi-hole. Now I’d like to install SparkyFitness as well, but the installation keeps failing. As far as I could figure out with ChatGPT the issue seems to be the postgreSQL update the app is trying to do during installation, which somehow isn’t working. Then the whole installation is cancelled.

Do you guys have any recommendations on what else I could try? I’m kind of a noob to this and don’t have any clue…

Postgres needs permission for uid 999 which in true as is the building netdata user. Grant that user permissions on the dataset you want to use for the postgres DB and it should run.

I tried, but i think i still did something wrong…

This is the error message:

[EFAULT] Failed ‘up’ action for ‘sparkyfitness’ app. Please check /var/log/app_lifecycle.log for more details

…and this is the app_lifecycle.log:

[2026/08/08 16:15:24] (ERROR) app_lifecycle.compose_action():58 - Failed ‘up’ action for ‘sparkyfitness’ app: Network ix-internal-sparkyfitness-sparky-net Creating\n Network ix-internal-sparkyfitness-sparky-net Created\n Container ix-sparkyfitness-postgres_upgrade-1 Creating\n Container ix-sparkyfitness-postgres_upgrade-1 Created\n Container ix-sparkyfitness-postgres-1 Creating\n Container ix-sparkyfitness-postgres-1 Created\n Container ix-sparkyfitness-server-1 Creating\n Container ix-sparkyfitness-server-1 Created\n Container ix-sparkyfitness-frontend-1 Creating\n Container ix-sparkyfitness-frontend-1 Created\n Container ix-sparkyfitness-postgres_upgrade-1 Starting\n Container ix-sparkyfitness-postgres_upgrade-1 Started\n Container ix-sparkyfitness-postgres_upgrade-1 Waiting\n Container ix-sparkyfitness-postgres_upgrade-1 Exited\n Container ix-sparkyfitness-postgres-1 Starting\n Container ix-sparkyfitness-postgres-1 Started\n Container ix-sparkyfitness-postgres-1 Waiting\n Container ix-sparkyfitness-postgres-1 Error\ndependency failed to start: container ix-sparkyfitness-postgres-1 is unhealthy\n

This is the current ACL:

User - apps - Modify
User - netdata - Modify
owner@ - netdata - Full Control
group@ - docker - Modify
Group - builtin_users - Modify
Group - builtin_administrators - Full Control
User - apps - Modify
User - truenas_admin - Modify
Group - www-data - Full Control
Group - docker - Full Control
Group - apps - Traverse

I’m sorry, I’m totally new to this and this is so confusing, i literally don’t know which setting is affecting or blocking what exactly…

Did you set the acls through the Dataset tab in the truenas gui or did you set them during the apps setup? During the apps setup theres a “enable acl” checkbox where you can set acl entrys. There’s also a force acl checkbox which may be checked for it to work

I set them in the Dataset tab beforehand. Should I try overwriting them in the app setup?

You can try, yes it shouldn’t hurt…

Didn’t hurt, but unfortunately failed again…

If i completely wiped my “sparkyfitness” dataset and the “backup”, “uploads“ and “postgres” child datasets, how should i set them up again? Could that help or is it nonsense?

give me like 20 minutes, i’m in the middle of someting right now. Then i’ll attempt a test install on my truenas and post back the steps if i was successfull

Nope, no chance. I also can’t get it to run.
I’ve tried:

  1. manually creating the datasets and setting permissions before starting the installation
  2. creating the datasets and setting acls during app installation, with/without checking the force acl checkbox and the automatic permissions checkbox
  3. Creating only a sparkyfitness dataset and then creating folders inside the Dataset, not child datasets for upload backup and postgres, it still fails.

But I believe it’s not failing because of postgres permissions for me. my app_lifecycle log says the ix-sparkyfitness-server-1 container is unhealthy, but not why…

Thank you for testing. Then I’ll wait and maybe try again with a later version…

I think I found the solution. It’s very picky about the passwords. You can run a live log of the docker at the time of install, and you’ll see what the real error is.

What I found was
(SPARKY_FITNESS_API_ENCRYPTION_KEY) has an invalid length (47). Expected 64 hex characters or 44 Base64 characters.

Then I used a tool to generate the key. Probably best to do the same thing for the auth secret as well. Though I don’t think the DB password is quite as picky.

openssl rand -hex 32

Cheers.

I suppose someone should add this info to the sparkyfitness installation doc, or the tooltip on the webui. I’m a bit too lazy to do the pull request and no longer feel like supporting github as well. Anyway, that should do it for y’all.

Based on the lack of videos, threads, and setup guides, I can only assume this was recently added.

Will you be able to provide a step-by-step guide on what settings allowed it to run to begin with?

Nevermind, I got it running :slight_smile: although, I didn’t have to input a 44 api encryption key, it was doing fine with the regular thing.

Alright, I gotta get back too high to type.

Uh, if anyone else is doing this project before I make the doc just do the following steps:

  1. Go to Dataset
  2. Create a Dataset, Generic option, name it “SparkyFitness”
  3. Create 3 more datasets under it, “BackupStorage”, “PostgreSQLDataStorage”, and “UploadsStorage”
  4. Now, we’re going to change permissions. For each folder, click on “Edit” in the permissions and do the following:
    1. For BackupStorage Dataset, change User to “apps” and Group to “apps”. Give User and Group Read/Write/Execute. No changes needed for Other.
    2. For UploadsStorage Dataset, change User to “apps” and Group to “apps”. Give User and Group Read/Write/Execute. No changes needed for Other.
    3. For PostgreSQLDataStorage Dataset, change User to “netdata” and Group to “docker”. Give User and Group Read/Write/Execute. No changes needed for Other
  5. MAKE SURE TO Click on Apply User/Group checkbox, for cautionary steps, if this checkbox isn’t checked off, your changes won’t save.
  6. Now we can install SparkyFitness and start the process
  7. Database password: In case it matters because there’s no tooltip or requirement that we’re aware of, I used a 21 character password.
  8. API Encryption Key and Auth Secret: I followed the tooltips instruction. “openssl rand -hex 32”
  9. Frontend URL: Doesn’t matter, put whatever you like.
  10. Don’t touch anything until you scroll down to Storage Configuration.
  11. Change all 3 storage item’s Type to Host Path (Path that already exists on the system)
  12. 1st one is Backup Storage, 2nd is Uploads Storage, and last one is PostgresQL Data Storage.
  13. and then just click Install. Ez PZ lemon squeazy.

Thanks for the help. I’ve been trying to install this app for months and haven’t been able to get it working.

One addition to the guide could be noting that the online APP_KEY generator creates codes like base64:Aqp3ZV9Vwr..., and you need to remember to remove the base64: part from the key.

Small edit for step #9 FrontEnd URL.

I’m getting an “Invalid Origin” error which prevents me from signing up, even though this is a local environment. Thanks to Zawatskyj from his GitHub bug report, you can mitigate this by setting the frontend URL to an IP address.

If you’re new at TrueNas, just put your nas IP and your SparkyFitness Port Number.

Ex: http :// :

and then it’ll work :slight_smile: