thorrak / fermentrack

A replacement web interface for BrewPi
MIT License
138 stars 61 forks source link

Last version break pi zero W #766

Open NicolasDesvignes opened 1 year ago

NicolasDesvignes commented 1 year ago

Hi, i used for years fermentrack on a pi zero W, it worked fine, now i a 502 bad gateway and i can't force a fresh install, the setup told me ./install.sh *** ERROR: This is an armv6l Pi (e.g. Pi Zero, Zero W, or Original RPi) which isn't capable of running Fermentrack. Exiting.

So i can't use my ispindel, why did you break the pi zero W compatibility?

thorrak commented 1 year ago

Fermentrack is built on top of a number of Packages by other developers, some of which unfortunately stopped supporting builds for ARMv6. Although Fermentrack itself doesn’t have any incompatibility, if those packages don’t support it then there’s not much that can be done.

Keeping the above in mind, if you want to play guinea pig, I can try to quickly produce an install script that doesn’t immediately kick back on an ARMv6 and you can give it a whirl. I don’t recall which specific package was causing issues, so it’s possible that it was something like zmq which I no longer use. Installation may take ages, and could ultimately fail, but if you’re interested in giving it a shot I can see what I can pull together.

NicolasDesvignes commented 1 year ago

i would to, or can you give me an old version that i can run on my pi zero w, i just use it to track fermentation with ispindel, i don't use any other fonctions

thorrak commented 1 year ago

I just updated the Fermentrack Tools script to allow you to set a flag to override the Pi Zero check. Let me know if you have any questions (and if it works!)

NicolasDesvignes commented 1 year ago

Thank you I'm not in the install setup, locked at What port would you like to access Fermentrack on? [80]: ::: 80 is a valid port for installation. Continuing. *** ERROR: Port 6379 is required by Redis, but is currently in use. Installation cannot continue.

thorrak commented 1 year ago

Thank you I'm not in the install setup, locked at What port would you like to access Fermentrack on? [80]: ::: 80 is a valid port for installation. Continuing. *** ERROR: Port 6379 is required by Redis, but is currently in use. Installation cannot continue.

Are you installing on the same SD card as an existing installation? If so, the issue is that you have an existing installation of redis. I believe - but have not tested - that you can just uninstall this by running sudo apt-get remove redis-server

That said, my recommendation here would definitely be to use a brand new SD card rather than trying to install over the old one if possible. There's likely some other things (nginx configuration stands out) that you will need to reconfigure as a result of installing over an old version that would be cleaned up if you were installing fresh.

NicolasDesvignes commented 1 year ago

i used an existing installation the install ended with latest: Pulling from jdbeeler/fermentrack ERROR: no matching manifest for linux/arm/v6 in the manifest list entries Pulling django (jdbeeler/fermentrack:latest)... latest: Pulling from jdbeeler/fermentrack ERROR: no matching manifest for linux/arm/v6 in the manifest list entries Total reclaimed space: 0B ::: Waiting for Fermentrack install to initialize and become responsive. ::: Fermentrack may take up to 3 minutes to first boot as the database is being initialized. ..........................................................................................missing. *** ERROR: Unable to find an initialized, responsive instance of Fermentrack

thorrak commented 1 year ago

Ok. I can attempt a fix for that but it will take a bit to build. Keep your fingers crossed - this will be the moment of truth.

NicolasDesvignes commented 1 year ago

oh, thank you ! i stay tuned, and i crossed my fingers.

thorrak commented 1 year ago

I managed to get it to build, but had to remove one of the upstream dependencies for numpy. To use the image I just built, run ./install.sh -z -i testing from your fermentrack-tools directory.

Let me know how it goes -- I'm curious now!

NicolasDesvignes commented 1 year ago

with two parameter, it can't be launch sudo ./install.sh -z -i testing ./install.sh : option non permise -- z Invalid option: - Usage: ./install.sh [-h] [-n] [-p <port_number>] [-i <image>] Options: -h This help -n Run non interactive installation -p <port_number> Specify port to access Fermentrack -i <image> Docker image tag (defaults to 'latest') -z Ignore Pi Zero check

with only -i testing it looping on Waiting for PostgreSQL to become available... Traceback (most recent call last): File "<stdin>", line 3, in <module> File "/usr/local/lib/python3.9/site-packages/psycopg2/__init__.py", line 51, in <module> from psycopg2._psycopg import ( # noqa ModuleNotFoundError: No module named 'psycopg2._psycopg' Waiting for PostgreSQL to become available...

thorrak commented 1 year ago

I just fixed it so that the -z parameter should now work, and also pushed out something that might fix the psycopg2 issue. Try re-running ./install.sh -z -i testing and see if it helps.

NicolasDesvignes commented 1 year ago

i still have the psycopg2 issue :( i think i'll try to found an old fork to try it. Thanks for your help

thorrak commented 11 months ago

Were you able to get it working with the older fork?

NicolasDesvignes commented 11 months ago

hi, i'm trying to install again. Freshly installed bullseye on pi zero w I ran https://github.com/thorrak/fermentrack-tools/blob/master/non_docker_install/install.sh, then

::: Running updateCronCircus.sh from the script repo *** ERROR: Could not find updateCronCircus.sh! I don't find this file in the directory, have you a copy of this file please?

thorrak commented 11 months ago

That script - updateCronCircus - was designed to specifically launch Circus which was the former Fermentrack process manager. Fermentrack no longer uses circus, and thus that script is no longer necessary.

The install script you are referencing - in non_docker_install - is just a frozen version of the install script from two years ago which attempts to perform a non-dockerized installation. It has not been updated for the latest versions of Fermentrack hence why it still references Circus.

Due to the number of environmental/instance-specific issues caused by non-docker installs I no longer encourage or support their use. Fermentrack’s code supports non-docker installations so if you want to go down that path you could do it manually, but there is no working, automated install script that I am aware of.

Although I do not encourage them, if you (or someone else reading this) do decide to go with a non-docker install and want to update the install script in fermentrack-tools to work with the latest versions of Fermentrack, I will merge a PR that updates it. I won’t update documentation to steer users towards it, however, as supporting non-docker installs is too much of a resource drain.

thorrak commented 11 months ago

Separately, I will note that it seems like docker isn’t the issue here but Postgres. Is that correct?

An easier solution might be to tweak the configuration to use SQLite instead of Postgres, and strip that requirement.