Note from
Troubleshooting Technical Errors
Yesterday, my Indiekit docker failed to start on my Pi. I also couldn’t run npm audit fix despite reviewing and accepting npm approve-scripts --all.
As a beginner Node.js user, I am still very inexperienced. I tried removing the package.lock, node_modules/ and npm install from scratch but that didn’t fix it.
Maybe it is due to the Node version being pinned to version 22? Or was it the installation of sharp in the Dockerfile that caused it to break after updating the npm packages? I now have RUN npm ci --omit=optional --no-audit instead of RUN npm ci --include=optional --no-audit && npm install --platform=linux --arch=arm64 sharp.
In the end, I managed to fix it with the help of duck.ai (Claude Haiku 4.5) as I couldn’t work it out myself… but I am not sure what caused it.
Then, another failure came to my attention: a cron script that backs up all the content associated with Indiekit had been failing:
1git@codeberg.org: Permission denied (publickey).
2fatal: Could not read from remote repository.
3Please make sure you have the correct access rights
4and the repository exists.It backs up the content store (Codeberg Git repo), media store (S3 bucket), and MongoDB database. I fixed the cron clone/fetch by forcing the mirror to use the HTTPS repo URL with an access token (and non-interactive Git). I updated the mirror’s origin to the HTTPS token URL, then ran git fetch from cron without SSH.
1# Force mirror to use HTTPS and not SSH
2if [ -d "$REPO_MIRROR/.git" ]; then
3 git -C "$REPO_MIRROR" remote set-url origin "$REPO_URL"
4fi
5
6# Non-interactive fetch
7git -C "$REPO_MIRROR" fetch originOh, and a handy tool that helped me set the time for the cronjob was crontab.guru.
As much as I hate generative AI for all the slop; LLMs has aided me in solving technical backend difficulties such as these and I usually learn a thing or two during troubleshooting this way.




