::: Triggering upgrade from branch dev ::: Waiting 1 second for Fermentrack to send updates if triggered from the web... ::: Stopping circus... ok ::: Updating from git... From https://github.com/thorrak/fermentrack - [deleted] (none) -> origin/brewbubbles - [deleted] (none) -> origin/dependabot/pip/django-3.1.13 - [deleted] (none) -> origin/dependabot/pip/django-3.1.14 - [deleted] (none) -> origin/dependabot/pip/requirements/django-3.1.13 HEAD is now at b2069a9 Update Changelog Already on 'dev' Your branch is behind 'origin/dev' by 45 commits, and can be fast-forwarded. (use "git pull" to update your local branch) Updating b2069a9..d04d54d Fast-forward .github/workflows/docker-hub-test.yml | 4 +- .github/workflows/docker-hub.yml | 14 +- .gitignore | 5 + app/models.py | 13 +- app/static/css/nord.fermentrack.css | 29 +++- .../fonts/glyphicons/flat-ui-icons-regular.eot | Bin 0 -> 5626 bytes .../fonts/glyphicons/flat-ui-icons-regular.svg | 140 +++++++++++++++ .../fonts/glyphicons/flat-ui-icons-regular.ttf | Bin 0 -> 5436 bytes .../fonts/glyphicons/flat-ui-icons-regular.woff | Bin 0 -> 7008 bytes app/templates/brewpi/temp_control_modal.html | 2 +- app/templates/device_dashboard.html | 4 +- app/templates/pin_list.html | 4 +- app/templates/site_config.html | 5 + app/views.py | 16 +- backup_files/staging/README.md | 3 + backups/__init__.py | 0 backups/admin.py | 3 + backups/apps.py | 5 + backups/forms.py | 21 +++ backups/management/__init__.py | 0 backups/management/commands/__init__.py | 0 backups/management/commands/generate_backup.py | 21 +++ backups/management/commands/restore_backup.py | 53 ++++++ backups/migrations/0001_initial.py | 29 ++++ backups/migrations/0002_auto_20210428_0440.py | 17 ++ backups/migrations/__init__.py | 0 backups/models.py | 120 +++++++++++++ backups/tasks.py | 0 .../templates/backups/backup_confirm_delete.html | 26 +++ backups/templates/backups/backup_detail.html | 29 ++++ backups/templates/backups/backup_form.html | 40 +++++ backups/templates/backups/backup_list.html | 51 ++++++ backups/templates/backups/backup_restore.html | 45 +++++ backups/urls.py | 17 ++ backups/views.py | 152 ++++++++++++++++ compose/production/django/Dockerfile | 6 +- compose/production/nginx/nginx.conf | 1 + docs/source/develop/changelog.rst | 24 +++ docs/source/installing/install.rst | 4 +- fermentrack_django/settings.py | 11 +- fermentrack_django/urls.py | 3 + firmware_flash/models.py | 6 - gravity/migrations/0005_brewbubbles_prep.py | 28 +++ gravity/models.py | 192 +++++++++++++++------ gravity/templates/gravity/gravity_dashboard.html | 4 +- .../templates/gravity/gravity_manage_ispindel.html | 2 +- gravity/templates/gravity/gravity_manage_tilt.html | 2 +- gravity/views.py | 2 +- requirements/base.txt | 10 +- requirements/docker-production.txt | 2 +- 50 files changed, 1069 insertions(+), 96 deletions(-) create mode 100644 app/static/vendor/flat-ui/fonts/glyphicons/flat-ui-icons-regular.eot create mode 100644 app/static/vendor/flat-ui/fonts/glyphicons/flat-ui-icons-regular.svg create mode 100644 app/static/vendor/flat-ui/fonts/glyphicons/flat-ui-icons-regular.ttf create mode 100644 app/static/vendor/flat-ui/fonts/glyphicons/flat-ui-icons-regular.woff create mode 100644 backup_files/staging/README.md create mode 100644 backups/__init__.py create mode 100644 backups/admin.py create mode 100644 backups/apps.py create mode 100644 backups/forms.py create mode 100644 backups/management/__init__.py create mode 100644 backups/management/commands/__init__.py create mode 100644 backups/management/commands/generate_backup.py create mode 100644 backups/management/commands/restore_backup.py create mode 100644 backups/migrations/0001_initial.py create mode 100644 backups/migrations/0002_auto_20210428_0440.py create mode 100644 backups/migrations/__init__.py create mode 100644 backups/models.py create mode 100644 backups/tasks.py create mode 100644 backups/templates/backups/backup_confirm_delete.html create mode 100644 backups/templates/backups/backup_detail.html create mode 100644 backups/templates/backups/backup_form.html create mode 100644 backups/templates/backups/backup_list.html create mode 100644 backups/templates/backups/backup_restore.html create mode 100644 backups/urls.py create mode 100644 backups/views.py create mode 100644 gravity/migrations/0005_brewbubbles_prep.py ::: Updating requirements via pip3... Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: Django==3.0.14 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 1)) (3.0.14) Requirement already satisfied: configobj in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 2)) (5.0.6) Requirement already satisfied: pytz==2020.4 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 8)) (2020.4) Requirement already satisfied: sentry-sdk in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 9)) (1.5.0) Requirement already satisfied: django-constance[database] in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 10)) (2.8.0) Requirement already satisfied: GitPython in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 11)) (3.1.24) Requirement already satisfied: zeroconf==0.28.7 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 12)) (0.28.7) Requirement already satisfied: circus<0.17.0,>=0.16.0 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 13)) (0.16.1) Requirement already satisfied: chaussette in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 15)) (1.3.0) Requirement already satisfied: huey>=2.0 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 16)) (2.4.2) Requirement already satisfied: pid in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 17)) (3.0.4) Requirement already satisfied: pyserial in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 18)) (3.5) Requirement already satisfied: pyudev in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 20)) (0.22.0) Requirement already satisfied: requests in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 21)) (2.26.0) Requirement already satisfied: esptool==2.8 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 23)) (2.8) Requirement already satisfied: packaging~=17.1 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 24)) (17.1) Requirement already satisfied: urllib3<1.26 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 26)) (1.25.11) Requirement already satisfied: redis==3.4.1 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 30)) (3.4.1) Requirement already satisfied: aioblescan==0.2.6 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 31)) (0.2.6) Requirement already satisfied: django-environ==0.4.5 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 33)) (0.4.5) Requirement already satisfied: whitenoise==5.2.0 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 34)) (5.2.0) Requirement already satisfied: cryptography==3.4.6 in /home/fermentrack/venv/lib/python3.7/site-packages (from -r requirements/base.txt (line 35)) (3.4.6) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))': /simple/uvicorn/ Requirement already satisfied: cffi>=1.12 in /home/fermentrack/venv/lib/python3.7/site-packages (from cryptography==3.4.6->-r requirements/base.txt (line 35)) (1.14.4) Requirement already satisfied: asgiref~=3.2 in /home/fermentrack/venv/lib/python3.7/site-packages (from Django==3.0.14->-r requirements/base.txt (line 1)) (3.3.1) Requirement already satisfied: sqlparse>=0.2.2 in /home/fermentrack/venv/lib/python3.7/site-packages (from Django==3.0.14->-r requirements/base.txt (line 1)) (0.4.1) Collecting django-downloadview==2.1.1 Downloading https://www.piwheels.org/simple/django-downloadview/django_downloadview-2.1.1-py3-none-any.whl (35 kB) Requirement already satisfied: setuptools in /home/fermentrack/venv/lib/python3.7/site-packages (from django-downloadview==2.1.1->-r requirements/base.txt (line 42)) (40.8.0) Collecting django-model-utils==4.1.1 Downloading https://www.piwheels.org/simple/django-model-utils/django_model_utils-4.1.1-py3-none-any.whl (32 kB) Requirement already satisfied: pyaes in /home/fermentrack/venv/lib/python3.7/site-packages (from esptool==2.8->-r requirements/base.txt (line 23)) (1.6.1) Requirement already satisfied: ecdsa in /home/fermentrack/venv/lib/python3.7/site-packages (from esptool==2.8->-r requirements/base.txt (line 23)) (0.16.1) Collecting pyzmq==22.3.0 Downloading https://www.piwheels.org/simple/pyzmq/pyzmq-22.3.0-cp37-cp37m-linux_armv6l.whl (6.7 MB) Collecting tarsafe==0.0.3 Downloading https://www.piwheels.org/simple/tarsafe/tarsafe-0.0.3-py3-none-any.whl (5.0 kB) Collecting uvicorn[standard]==0.13.4 Downloading https://www.piwheels.org/simple/uvicorn/uvicorn-0.13.4-py3-none-any.whl (46 kB) Requirement already satisfied: typing-extensions in /home/fermentrack/venv/lib/python3.7/site-packages (from uvicorn[standard]==0.13.4->-r requirements/base.txt (line 37)) (3.10.0.0) Requirement already satisfied: ifaddr>=0.1.7 in /home/fermentrack/venv/lib/python3.7/site-packages (from zeroconf==0.28.7->-r requirements/base.txt (line 12)) (0.1.7) Collecting click==7.* Downloading https://www.piwheels.org/simple/click/click-7.1.2-py2.py3-none-any.whl (84 kB) Collecting httptools==0.1.* Downloading https://www.piwheels.org/simple/httptools/httptools-0.1.2-cp37-cp37m-linux_armv6l.whl (234 kB) Collecting websockets==8.* Downloading https://www.piwheels.org/simple/websockets/websockets-8.1-cp37-cp37m-linux_armv6l.whl (78 kB) Requirement already satisfied: six in /home/fermentrack/venv/lib/python3.7/site-packages (from circus<0.17.0,>=0.16.0->-r requirements/base.txt (line 13)) (1.15.0) Requirement already satisfied: tornado<5.0,>=3.0 in /home/fermentrack/venv/lib/python3.7/site-packages (from circus<0.17.0,>=0.16.0->-r requirements/base.txt (line 13)) (4.5.3) Requirement already satisfied: psutil in /home/fermentrack/venv/lib/python3.7/site-packages (from circus<0.17.0,>=0.16.0->-r requirements/base.txt (line 13)) (5.8.0) Collecting huey>=2.0 Downloading https://www.piwheels.org/simple/huey/huey-2.4.3-py3-none-any.whl (73 kB) Requirement already satisfied: pyparsing>=2.0.2 in /home/fermentrack/venv/lib/python3.7/site-packages (from packaging~=17.1->-r requirements/base.txt (line 24)) (2.4.7) Requirement already satisfied: pycparser in /home/fermentrack/venv/lib/python3.7/site-packages (from cffi>=1.12->cryptography==3.4.6->-r requirements/base.txt (line 35)) (2.20) Collecting h11>=0.8 Downloading https://www.piwheels.org/simple/h11/h11-0.13.0-py3-none-any.whl (58 kB) Collecting python-dotenv>=0.13 Downloading https://www.piwheels.org/simple/python-dotenv/python_dotenv-0.20.0-py3-none-any.whl (17 kB) Collecting PyYAML>=5.1 Downloading https://www.piwheels.org/simple/pyyaml/PyYAML-6.0-cp37-cp37m-linux_armv6l.whl (45 kB) Collecting uvloop!=0.15.0,!=0.15.1,>=0.14.0 Downloading https://www.piwheels.org/simple/uvloop/uvloop-0.16.0-cp37-cp37m-linux_armv6l.whl (3.7 MB) Collecting watchgod>=0.6 Downloading https://www.piwheels.org/simple/watchgod/watchgod-0.8.2-py3-none-any.whl (12 kB) Collecting anyio<4,>=3.0.0 Downloading https://www.piwheels.org/simple/anyio/anyio-3.5.0-py3-none-any.whl (79 kB) Requirement already satisfied: idna>=2.8 in /home/fermentrack/venv/lib/python3.7/site-packages (from anyio<4,>=3.0.0->watchgod>=0.6->uvicorn[standard]==0.13.4->-r requirements/base.txt (line 37)) (2.10) Collecting sniffio>=1.1 Downloading https://www.piwheels.org/simple/sniffio/sniffio-1.2.0-py3-none-any.whl (10 kB) Requirement already satisfied: django-picklefield in /home/fermentrack/venv/lib/python3.7/site-packages (from django-constance[database]->-r requirements/base.txt (line 10)) (3.0.1) Collecting GitPython Downloading https://www.piwheels.org/simple/gitpython/GitPython-3.1.27-py3-none-any.whl (181 kB) Requirement already satisfied: gitdb<5,>=4.0.1 in /home/fermentrack/venv/lib/python3.7/site-packages (from GitPython->-r requirements/base.txt (line 11)) (4.0.5) Requirement already satisfied: smmap<4,>=3.0.1 in /home/fermentrack/venv/lib/python3.7/site-packages (from gitdb<5,>=4.0.1->GitPython->-r requirements/base.txt (line 11)) (3.0.4) Collecting pyudev Downloading https://www.piwheels.org/simple/pyudev/pyudev-0.23.2-py3-none-any.whl (56 kB) Collecting requests Downloading https://www.piwheels.org/simple/requests/requests-2.27.1-py2.py3-none-any.whl (63 kB) Requirement already satisfied: charset-normalizer~=2.0.0 in /home/fermentrack/venv/lib/python3.7/site-packages (from requests->-r requirements/base.txt (line 21)) (2.0.4) Requirement already satisfied: certifi>=2017.4.17 in /home/fermentrack/venv/lib/python3.7/site-packages (from requests->-r requirements/base.txt (line 21)) (2020.12.5) Collecting sentry-sdk Downloading https://www.piwheels.org/simple/sentry-sdk/sentry_sdk-1.5.10-py2.py3-none-any.whl (147 kB) Installing collected packages: sniffio, h11, click, anyio, websockets, watchgod, uvloop, uvicorn, requests, pyzmq, PyYAML, python-dotenv, httptools, tarsafe, sentry-sdk, pyudev, huey, GitPython, django-model-utils, django-downloadview Attempting uninstall: requests Found existing installation: requests 2.26.0 Uninstalling requests-2.26.0: Successfully uninstalled requests-2.26.0 Attempting uninstall: pyzmq Found existing installation: pyzmq 19.0.2 Uninstalling pyzmq-19.0.2: Successfully uninstalled pyzmq-19.0.2 Attempting uninstall: sentry-sdk Found existing installation: sentry-sdk 1.5.0 Uninstalling sentry-sdk-1.5.0: Successfully uninstalled sentry-sdk-1.5.0 Attempting uninstall: pyudev Found existing installation: pyudev 0.22.0 Uninstalling pyudev-0.22.0: Successfully uninstalled pyudev-0.22.0 Attempting uninstall: huey Found existing installation: huey 2.4.2 Uninstalling huey-2.4.2: Successfully uninstalled huey-2.4.2 Attempting uninstall: GitPython Found existing installation: GitPython 3.1.24 Uninstalling GitPython-3.1.24: Successfully uninstalled GitPython-3.1.24 Successfully installed GitPython-3.1.27 PyYAML-6.0 anyio-3.5.0 click-7.1.2 django-downloadview-2.1.1 django-model-utils-4.1.1 h11-0.13.0 httptools-0.1.2 huey-2.4.3 python-dotenv-0.20.0 pyudev-0.23.2 pyzmq-22.3.0 requests-2.27.1 sentry-sdk-1.5.10 sniffio-1.2.0 tarsafe-0.0.3 uvicorn-0.13.4 uvloop-0.16.0 watchgod-0.8.2 websockets-8.1 WARNING: You are using pip version 20.3.3; however, version 22.0.4 is available. You should consider upgrading via the '/home/fermentrack/venv/bin/python3.7 -m pip install --upgrade pip' command. ::: Running manage.py migrate... Operations to perform: Apply all migrations: admin, app, auth, backups, contenttypes, database, external_push, firmware_flash, gravity, sessions Running migrations: Applying backups.0001_initial... OK Applying backups.0002_auto_20210428_0440... OK Applying gravity.0005_brewbubbles_prep... OK ::: Running manage.py collectstatic... ::: Relaunching circus... ok ok ::: Complete!