From 2fa6d822a23464a59fb69618dace4297d89ff13d Mon Sep 17 00:00:00 2001 From: JonathanHerrewijnen Date: Sun, 24 Dec 2023 21:01:34 +0000 Subject: [PATCH] Flask web-app init commit --- .gitignore | 3 + 2023-12-24-old/Readme.md | 36 +++++++ .../herreweb_backend}/.vscode/launch.json | 0 .../herreweb_backend/__init__.py | 0 .../herreweb_backend/asgi.py | 0 .../herreweb_backend/settings.py | 0 .../herreweb_backend/urls.py | 0 .../herreweb_backend/utils.py | 0 .../herreweb_backend/wsgi.py | 0 .../herreweb_backend}/manage.py | 0 .../herreweb_backend}/project/admin.py | 0 .../project/migrations/0001_initial.py | 0 ...ct_image_alter_project_rtd_url_and_more.py | 0 .../project/migrations/__init__.py | 0 .../herreweb_backend}/project/models.py | 0 .../herreweb_backend}/project/serializers.py | 0 .../herreweb_backend}/project/views.py | 0 .../herreweb_backend}/static/GHIDRA_1.png | Bin .../static/project_images/1.png | Bin .../GHIDRA_1.png | Bin .../static/project_images/GHIDRA_1.png | Bin .../project_images/GHIDRA_1_nL03hOP.png | Bin .../static/project_images/logo-600w.png | Bin .../static/project_images/tallies.jpeg | Bin .../static/project_images/title/GHIDRA_1.png | Bin .../herreweb_frontend}/.gitignore | 0 .../herreweb_frontend}/.vscode/launch.json | 0 .../herreweb_frontend}/README.md | 0 .../herreweb_frontend}/package-lock.json | 0 .../herreweb_frontend}/package.json | 0 .../herreweb_frontend}/public/favicon.ico | Bin .../herreweb_frontend}/public/index.html | 0 .../herreweb_frontend}/public/logo192.png | Bin .../herreweb_frontend}/public/logo512.png | Bin .../herreweb_frontend}/public/manifest.json | 0 .../herreweb_frontend}/public/robots.txt | 0 .../herreweb_frontend}/src/components/App.js | 0 .../src/components/AppFooter.js | 0 .../src/components/AppHeader.js | 0 .../src/components/Projects.js | 0 .../herreweb_frontend}/src/index.js | 0 .../herreweb_frontend}/src/reportWebVitals.js | 0 .../herreweb_frontend}/src/setupTests.js | 0 .../herreweb_frontend}/src/static/App.css | 0 .../src/static/AppFooter.css | 0 .../src/static/AppHeader.css | 0 .../src/static/Projects.css | 0 .../herreweb_frontend}/src/static/index.css | 0 .../herreweb_frontend}/src/static/logo.svg | 0 2023-12-24-old/requirements.txt | 5 + .../snowstorm-min.js | 0 Dockerfile | 23 +++++ Readme.md | 39 ++------ app.py | 91 ++++++++++++++++++ config/repositories.txt | 2 + docker-compose.yml | 8 ++ requirements.txt | 7 +- .../documentation/.vscode/settings.json | 3 + .../documentation/Makefile | 24 +++++ .../documentation/make.bat | 35 +++++++ .../documentation/source/conf.py | 31 ++++++ .../documentation/source/dependencies.rst | 16 +++ .../documentation/source/hardware/index.rst | 91 ++++++++++++++++++ .../hardware/tally-schematics-simple.png | Bin 0 -> 90944 bytes .../documentation/source/index.rst | 65 +++++++++++++ .../documentation/source/kerk_tally.jpeg | Bin 0 -> 91249 bytes .../documentation/source/migration.rst | 26 +++++ .../documentation/source/overview.drawio | 1 + .../documentation/source/overview.rst | 47 +++++++++ .../documentation/source/patches.rst | 50 ++++++++++ .../documentation/source/server/index.rst | 63 ++++++++++++ .../documentation/source/troubleshooting.rst | 37 +++++++ templates/index.html | 14 +++ 73 files changed, 679 insertions(+), 38 deletions(-) create mode 100644 2023-12-24-old/Readme.md rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/.vscode/launch.json (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/herreweb_backend/__init__.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/herreweb_backend/asgi.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/herreweb_backend/settings.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/herreweb_backend/urls.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/herreweb_backend/utils.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/herreweb_backend/wsgi.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/manage.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/project/admin.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/project/migrations/0001_initial.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/project/migrations/0002_alter_project_image_alter_project_rtd_url_and_more.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/project/migrations/__init__.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/project/models.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/project/serializers.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/project/views.py (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/static/GHIDRA_1.png (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/static/project_images/1.png (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/static/project_images/.blob/GHIDRA_1.png (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/static/project_images/GHIDRA_1.png (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/static/project_images/GHIDRA_1_nL03hOP.png (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/static/project_images/logo-600w.png (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/static/project_images/tallies.jpeg (100%) rename {herreweb_backend => 2023-12-24-old/herreweb_backend}/static/project_images/title/GHIDRA_1.png (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/.gitignore (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/.vscode/launch.json (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/README.md (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/package-lock.json (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/package.json (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/public/favicon.ico (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/public/index.html (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/public/logo192.png (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/public/logo512.png (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/public/manifest.json (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/public/robots.txt (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/components/App.js (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/components/AppFooter.js (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/components/AppHeader.js (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/components/Projects.js (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/index.js (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/reportWebVitals.js (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/setupTests.js (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/static/App.css (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/static/AppFooter.css (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/static/AppHeader.css (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/static/Projects.css (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/static/index.css (100%) rename {herreweb_frontend => 2023-12-24-old/herreweb_frontend}/src/static/logo.svg (100%) create mode 100644 2023-12-24-old/requirements.txt rename snowstorm-min.js => 2023-12-24-old/snowstorm-min.js (100%) create mode 100644 Dockerfile create mode 100644 app.py create mode 100644 config/repositories.txt create mode 100644 docker-compose.yml create mode 100644 static/wifi-tally_Oostendam/documentation/.vscode/settings.json create mode 100644 static/wifi-tally_Oostendam/documentation/Makefile create mode 100644 static/wifi-tally_Oostendam/documentation/make.bat create mode 100644 static/wifi-tally_Oostendam/documentation/source/conf.py create mode 100644 static/wifi-tally_Oostendam/documentation/source/dependencies.rst create mode 100644 static/wifi-tally_Oostendam/documentation/source/hardware/index.rst create mode 100644 static/wifi-tally_Oostendam/documentation/source/hardware/tally-schematics-simple.png create mode 100644 static/wifi-tally_Oostendam/documentation/source/index.rst create mode 100644 static/wifi-tally_Oostendam/documentation/source/kerk_tally.jpeg create mode 100644 static/wifi-tally_Oostendam/documentation/source/migration.rst create mode 100644 static/wifi-tally_Oostendam/documentation/source/overview.drawio create mode 100644 static/wifi-tally_Oostendam/documentation/source/overview.rst create mode 100644 static/wifi-tally_Oostendam/documentation/source/patches.rst create mode 100644 static/wifi-tally_Oostendam/documentation/source/server/index.rst create mode 100644 static/wifi-tally_Oostendam/documentation/source/troubleshooting.rst create mode 100644 templates/index.html diff --git a/.gitignore b/.gitignore index 2a18fcf..a78b9ae 100644 --- a/.gitignore +++ b/.gitignore @@ -160,3 +160,6 @@ cython_debug/ #.idea/ # dump/ + +#herreweb_site +repositories/ diff --git a/2023-12-24-old/Readme.md b/2023-12-24-old/Readme.md new file mode 100644 index 0000000..621b53c --- /dev/null +++ b/2023-12-24-old/Readme.md @@ -0,0 +1,36 @@ +# Herreweb Site +Internally build website for [Herreweb](https://www.herreweb.nl). + +## Getting Started +To help contribute to the website, install dependencies in a ``Virtual Environment``: + +``` +python3 -m venv venv +source venv/bin/activate +pip3 install -r requirements.txt +``` + +## Project documentation +As with all Herreweb projects, the docs are provided in their stand-alone ``ReadTheDocs`` environment. + +When contributing to the project, make sure you write your documentation. + +To view the documentation, navigate to **documentation/readthedocs** and run the following commands: + +``` +make html +cd build/html +python3 -m http.server +``` +The website can be accessed at **localhost:8000** + +## Development +To run the backend server navigate to ``herreweb_backend/`` and run: + +> python3 manage.py runserver + +And for the frontend, navigate to ``herreweb_frontend`` and run: + +> npm start + +The file servers are accessible on ports 8000 and 3000. diff --git a/herreweb_backend/.vscode/launch.json b/2023-12-24-old/herreweb_backend/.vscode/launch.json similarity index 100% rename from herreweb_backend/.vscode/launch.json rename to 2023-12-24-old/herreweb_backend/.vscode/launch.json diff --git a/herreweb_backend/herreweb_backend/__init__.py b/2023-12-24-old/herreweb_backend/herreweb_backend/__init__.py similarity index 100% rename from herreweb_backend/herreweb_backend/__init__.py rename to 2023-12-24-old/herreweb_backend/herreweb_backend/__init__.py diff --git a/herreweb_backend/herreweb_backend/asgi.py b/2023-12-24-old/herreweb_backend/herreweb_backend/asgi.py similarity index 100% rename from herreweb_backend/herreweb_backend/asgi.py rename to 2023-12-24-old/herreweb_backend/herreweb_backend/asgi.py diff --git a/herreweb_backend/herreweb_backend/settings.py b/2023-12-24-old/herreweb_backend/herreweb_backend/settings.py similarity index 100% rename from herreweb_backend/herreweb_backend/settings.py rename to 2023-12-24-old/herreweb_backend/herreweb_backend/settings.py diff --git a/herreweb_backend/herreweb_backend/urls.py b/2023-12-24-old/herreweb_backend/herreweb_backend/urls.py similarity index 100% rename from herreweb_backend/herreweb_backend/urls.py rename to 2023-12-24-old/herreweb_backend/herreweb_backend/urls.py diff --git a/herreweb_backend/herreweb_backend/utils.py b/2023-12-24-old/herreweb_backend/herreweb_backend/utils.py similarity index 100% rename from herreweb_backend/herreweb_backend/utils.py rename to 2023-12-24-old/herreweb_backend/herreweb_backend/utils.py diff --git a/herreweb_backend/herreweb_backend/wsgi.py b/2023-12-24-old/herreweb_backend/herreweb_backend/wsgi.py similarity index 100% rename from herreweb_backend/herreweb_backend/wsgi.py rename to 2023-12-24-old/herreweb_backend/herreweb_backend/wsgi.py diff --git a/herreweb_backend/manage.py b/2023-12-24-old/herreweb_backend/manage.py similarity index 100% rename from herreweb_backend/manage.py rename to 2023-12-24-old/herreweb_backend/manage.py diff --git a/herreweb_backend/project/admin.py b/2023-12-24-old/herreweb_backend/project/admin.py similarity index 100% rename from herreweb_backend/project/admin.py rename to 2023-12-24-old/herreweb_backend/project/admin.py diff --git a/herreweb_backend/project/migrations/0001_initial.py b/2023-12-24-old/herreweb_backend/project/migrations/0001_initial.py similarity index 100% rename from herreweb_backend/project/migrations/0001_initial.py rename to 2023-12-24-old/herreweb_backend/project/migrations/0001_initial.py diff --git a/herreweb_backend/project/migrations/0002_alter_project_image_alter_project_rtd_url_and_more.py b/2023-12-24-old/herreweb_backend/project/migrations/0002_alter_project_image_alter_project_rtd_url_and_more.py similarity index 100% rename from herreweb_backend/project/migrations/0002_alter_project_image_alter_project_rtd_url_and_more.py rename to 2023-12-24-old/herreweb_backend/project/migrations/0002_alter_project_image_alter_project_rtd_url_and_more.py diff --git a/herreweb_backend/project/migrations/__init__.py b/2023-12-24-old/herreweb_backend/project/migrations/__init__.py similarity index 100% rename from herreweb_backend/project/migrations/__init__.py rename to 2023-12-24-old/herreweb_backend/project/migrations/__init__.py diff --git a/herreweb_backend/project/models.py b/2023-12-24-old/herreweb_backend/project/models.py similarity index 100% rename from herreweb_backend/project/models.py rename to 2023-12-24-old/herreweb_backend/project/models.py diff --git a/herreweb_backend/project/serializers.py b/2023-12-24-old/herreweb_backend/project/serializers.py similarity index 100% rename from herreweb_backend/project/serializers.py rename to 2023-12-24-old/herreweb_backend/project/serializers.py diff --git a/herreweb_backend/project/views.py b/2023-12-24-old/herreweb_backend/project/views.py similarity index 100% rename from herreweb_backend/project/views.py rename to 2023-12-24-old/herreweb_backend/project/views.py diff --git a/herreweb_backend/static/GHIDRA_1.png b/2023-12-24-old/herreweb_backend/static/GHIDRA_1.png similarity index 100% rename from herreweb_backend/static/GHIDRA_1.png rename to 2023-12-24-old/herreweb_backend/static/GHIDRA_1.png diff --git a/herreweb_backend/static/project_images/1.png b/2023-12-24-old/herreweb_backend/static/project_images/1.png similarity index 100% rename from herreweb_backend/static/project_images/1.png rename to 2023-12-24-old/herreweb_backend/static/project_images/1.png diff --git a/herreweb_backend/static/project_images/.blob/GHIDRA_1.png b/2023-12-24-old/herreweb_backend/static/project_images/.blob/GHIDRA_1.png similarity index 100% rename from herreweb_backend/static/project_images/.blob/GHIDRA_1.png rename to 2023-12-24-old/herreweb_backend/static/project_images/.blob/GHIDRA_1.png diff --git a/herreweb_backend/static/project_images/GHIDRA_1.png b/2023-12-24-old/herreweb_backend/static/project_images/GHIDRA_1.png similarity index 100% rename from herreweb_backend/static/project_images/GHIDRA_1.png rename to 2023-12-24-old/herreweb_backend/static/project_images/GHIDRA_1.png diff --git a/herreweb_backend/static/project_images/GHIDRA_1_nL03hOP.png b/2023-12-24-old/herreweb_backend/static/project_images/GHIDRA_1_nL03hOP.png similarity index 100% rename from herreweb_backend/static/project_images/GHIDRA_1_nL03hOP.png rename to 2023-12-24-old/herreweb_backend/static/project_images/GHIDRA_1_nL03hOP.png diff --git a/herreweb_backend/static/project_images/logo-600w.png b/2023-12-24-old/herreweb_backend/static/project_images/logo-600w.png similarity index 100% rename from herreweb_backend/static/project_images/logo-600w.png rename to 2023-12-24-old/herreweb_backend/static/project_images/logo-600w.png diff --git a/herreweb_backend/static/project_images/tallies.jpeg b/2023-12-24-old/herreweb_backend/static/project_images/tallies.jpeg similarity index 100% rename from herreweb_backend/static/project_images/tallies.jpeg rename to 2023-12-24-old/herreweb_backend/static/project_images/tallies.jpeg diff --git a/herreweb_backend/static/project_images/title/GHIDRA_1.png b/2023-12-24-old/herreweb_backend/static/project_images/title/GHIDRA_1.png similarity index 100% rename from herreweb_backend/static/project_images/title/GHIDRA_1.png rename to 2023-12-24-old/herreweb_backend/static/project_images/title/GHIDRA_1.png diff --git a/herreweb_frontend/.gitignore b/2023-12-24-old/herreweb_frontend/.gitignore similarity index 100% rename from herreweb_frontend/.gitignore rename to 2023-12-24-old/herreweb_frontend/.gitignore diff --git a/herreweb_frontend/.vscode/launch.json b/2023-12-24-old/herreweb_frontend/.vscode/launch.json similarity index 100% rename from herreweb_frontend/.vscode/launch.json rename to 2023-12-24-old/herreweb_frontend/.vscode/launch.json diff --git a/herreweb_frontend/README.md b/2023-12-24-old/herreweb_frontend/README.md similarity index 100% rename from herreweb_frontend/README.md rename to 2023-12-24-old/herreweb_frontend/README.md diff --git a/herreweb_frontend/package-lock.json b/2023-12-24-old/herreweb_frontend/package-lock.json similarity index 100% rename from herreweb_frontend/package-lock.json rename to 2023-12-24-old/herreweb_frontend/package-lock.json diff --git a/herreweb_frontend/package.json b/2023-12-24-old/herreweb_frontend/package.json similarity index 100% rename from herreweb_frontend/package.json rename to 2023-12-24-old/herreweb_frontend/package.json diff --git a/herreweb_frontend/public/favicon.ico b/2023-12-24-old/herreweb_frontend/public/favicon.ico similarity index 100% rename from herreweb_frontend/public/favicon.ico rename to 2023-12-24-old/herreweb_frontend/public/favicon.ico diff --git a/herreweb_frontend/public/index.html b/2023-12-24-old/herreweb_frontend/public/index.html similarity index 100% rename from herreweb_frontend/public/index.html rename to 2023-12-24-old/herreweb_frontend/public/index.html diff --git a/herreweb_frontend/public/logo192.png b/2023-12-24-old/herreweb_frontend/public/logo192.png similarity index 100% rename from herreweb_frontend/public/logo192.png rename to 2023-12-24-old/herreweb_frontend/public/logo192.png diff --git a/herreweb_frontend/public/logo512.png b/2023-12-24-old/herreweb_frontend/public/logo512.png similarity index 100% rename from herreweb_frontend/public/logo512.png rename to 2023-12-24-old/herreweb_frontend/public/logo512.png diff --git a/herreweb_frontend/public/manifest.json b/2023-12-24-old/herreweb_frontend/public/manifest.json similarity index 100% rename from herreweb_frontend/public/manifest.json rename to 2023-12-24-old/herreweb_frontend/public/manifest.json diff --git a/herreweb_frontend/public/robots.txt b/2023-12-24-old/herreweb_frontend/public/robots.txt similarity index 100% rename from herreweb_frontend/public/robots.txt rename to 2023-12-24-old/herreweb_frontend/public/robots.txt diff --git a/herreweb_frontend/src/components/App.js b/2023-12-24-old/herreweb_frontend/src/components/App.js similarity index 100% rename from herreweb_frontend/src/components/App.js rename to 2023-12-24-old/herreweb_frontend/src/components/App.js diff --git a/herreweb_frontend/src/components/AppFooter.js b/2023-12-24-old/herreweb_frontend/src/components/AppFooter.js similarity index 100% rename from herreweb_frontend/src/components/AppFooter.js rename to 2023-12-24-old/herreweb_frontend/src/components/AppFooter.js diff --git a/herreweb_frontend/src/components/AppHeader.js b/2023-12-24-old/herreweb_frontend/src/components/AppHeader.js similarity index 100% rename from herreweb_frontend/src/components/AppHeader.js rename to 2023-12-24-old/herreweb_frontend/src/components/AppHeader.js diff --git a/herreweb_frontend/src/components/Projects.js b/2023-12-24-old/herreweb_frontend/src/components/Projects.js similarity index 100% rename from herreweb_frontend/src/components/Projects.js rename to 2023-12-24-old/herreweb_frontend/src/components/Projects.js diff --git a/herreweb_frontend/src/index.js b/2023-12-24-old/herreweb_frontend/src/index.js similarity index 100% rename from herreweb_frontend/src/index.js rename to 2023-12-24-old/herreweb_frontend/src/index.js diff --git a/herreweb_frontend/src/reportWebVitals.js b/2023-12-24-old/herreweb_frontend/src/reportWebVitals.js similarity index 100% rename from herreweb_frontend/src/reportWebVitals.js rename to 2023-12-24-old/herreweb_frontend/src/reportWebVitals.js diff --git a/herreweb_frontend/src/setupTests.js b/2023-12-24-old/herreweb_frontend/src/setupTests.js similarity index 100% rename from herreweb_frontend/src/setupTests.js rename to 2023-12-24-old/herreweb_frontend/src/setupTests.js diff --git a/herreweb_frontend/src/static/App.css b/2023-12-24-old/herreweb_frontend/src/static/App.css similarity index 100% rename from herreweb_frontend/src/static/App.css rename to 2023-12-24-old/herreweb_frontend/src/static/App.css diff --git a/herreweb_frontend/src/static/AppFooter.css b/2023-12-24-old/herreweb_frontend/src/static/AppFooter.css similarity index 100% rename from herreweb_frontend/src/static/AppFooter.css rename to 2023-12-24-old/herreweb_frontend/src/static/AppFooter.css diff --git a/herreweb_frontend/src/static/AppHeader.css b/2023-12-24-old/herreweb_frontend/src/static/AppHeader.css similarity index 100% rename from herreweb_frontend/src/static/AppHeader.css rename to 2023-12-24-old/herreweb_frontend/src/static/AppHeader.css diff --git a/herreweb_frontend/src/static/Projects.css b/2023-12-24-old/herreweb_frontend/src/static/Projects.css similarity index 100% rename from herreweb_frontend/src/static/Projects.css rename to 2023-12-24-old/herreweb_frontend/src/static/Projects.css diff --git a/herreweb_frontend/src/static/index.css b/2023-12-24-old/herreweb_frontend/src/static/index.css similarity index 100% rename from herreweb_frontend/src/static/index.css rename to 2023-12-24-old/herreweb_frontend/src/static/index.css diff --git a/herreweb_frontend/src/static/logo.svg b/2023-12-24-old/herreweb_frontend/src/static/logo.svg similarity index 100% rename from herreweb_frontend/src/static/logo.svg rename to 2023-12-24-old/herreweb_frontend/src/static/logo.svg diff --git a/2023-12-24-old/requirements.txt b/2023-12-24-old/requirements.txt new file mode 100644 index 0000000..3b14feb --- /dev/null +++ b/2023-12-24-old/requirements.txt @@ -0,0 +1,5 @@ +django +sphinx +djangorestframework +django-cors-headers +Pillow diff --git a/snowstorm-min.js b/2023-12-24-old/snowstorm-min.js similarity index 100% rename from snowstorm-min.js rename to 2023-12-24-old/snowstorm-min.js diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0a7d3a0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +# Use an official Python runtime as a parent image +FROM python:3.9-slim AS base + +# Set the working directory in the container +WORKDIR /app + +# Copy the current directory contents into the container at /app +COPY . /app + +# Install any needed packages specified in requirements.txt +RUN --mount=type=cache,target=/root/.cache/pip pip install --no-cache-dir -r requirements.txt + +# Intermediate build stage (named 'dev' for example) +FROM base AS dev + +# Make port 5000 available to the world outside this container +EXPOSE 5000 + +# Define environment variable +ENV NAME World + +# Run app.py when the container launches +CMD ["flask", "run", "--host=0.0.0.0"] diff --git a/Readme.md b/Readme.md index 621b53c..863e047 100644 --- a/Readme.md +++ b/Readme.md @@ -1,36 +1,9 @@ -# Herreweb Site -Internally build website for [Herreweb](https://www.herreweb.nl). +This website aims to bring the -## Getting Started -To help contribute to the website, install dependencies in a ``Virtual Environment``: +Enable buildkit for docker: -``` -python3 -m venv venv -source venv/bin/activate -pip3 install -r requirements.txt -``` +```sudo DOCKER_BUILDKIT=1 docker build .``` +```sudo docker-compose build``` -## Project documentation -As with all Herreweb projects, the docs are provided in their stand-alone ``ReadTheDocs`` environment. - -When contributing to the project, make sure you write your documentation. - -To view the documentation, navigate to **documentation/readthedocs** and run the following commands: - -``` -make html -cd build/html -python3 -m http.server -``` -The website can be accessed at **localhost:8000** - -## Development -To run the backend server navigate to ``herreweb_backend/`` and run: - -> python3 manage.py runserver - -And for the frontend, navigate to ``herreweb_frontend`` and run: - -> npm start - -The file servers are accessible on ports 8000 and 3000. +Then run with: +```sudo docker-compose up``` \ No newline at end of file diff --git a/app.py b/app.py new file mode 100644 index 0000000..3c6d422 --- /dev/null +++ b/app.py @@ -0,0 +1,91 @@ +from flask import Flask, render_template, redirect +import subprocess, logging, os, shutil + +app = Flask(__name__, static_folder='static/') +os.chdir(os.path.dirname(os.path.abspath(__file__))) + + +def _git_clone(repository_url, destination_folder): + """ + Clone a repository. + """ + try: + subprocess.run(['git', 'clone', repository_url, destination_folder], check=True) + logging.info(f"Git clone successful for {repository_url}") + except subprocess.CalledProcessError as e: + logging.error(f"Git clone unsuccessful for {repository_url}. Error: {e}") + + +def _clone_repositories(): + """ + Loop over all repositories in config/repositories.txt and clone them one by one. + """ + with open('config/repositories.txt', 'r') as f: + repositories = f.readlines() + for repository in repositories: + repository_name = repository.split('/')[-1][:-4].rstrip('.') + _git_clone(repository.strip(), f'repositories/{repository_name}') + + +def _buid_docs(): + """ + Run Makefile (currently not working). + Move documentation to static to be served. + """ + for folder in os.listdir('repositories'): + logging.debug(f'Found {folder}.') + try: + subprocess.run('documentation/Makefile', shell=True, check=True) + except Exception as e: + logging.error(f'Failed on {folder}. {e}') + + try: + if not os.path.exists(f'static/{folder}'): + os.makedirs(f'static/{folder}') + shutil.move(f'repositories/{folder}/documentation', f'static/{folder}') + except Exception as e: + logging.error(f'Failed to move {folder} to static folder. {e}') + + +def _get_repository_folders(): + repository_path = 'repositories' + if os.path.exists(repository_path) and os.path.isdir(repository_path): + return [folder for folder in os.listdir(repository_path) if os.path.isdir(os.path.join(repository_path, folder))] + else: + return [] + + +@app.route('/') +def hello(): + """ + Render homepage. + """ + repository_folders = _get_repository_folders() + return render_template('index.html', repository_folders=repository_folders) + + +@app.route('/') +def serve_sphinx_docs(path='index.html'): + """ + Serve static path to each repository included in config/repositories.txt + """ + return app.send_static_file(path) + + +@app.route('/') +def repository_page(folder): + """ + Create a button for each project and reroute to readthedocs of said project. + """ + documentation_path = os.path.join('static', folder, 'documentation', 'build') + if os.path.exists(documentation_path): + html_file_path = os.path.join(documentation_path, 'index.html') + return redirect(html_file_path) + else: + return f"Documentation not found for repository folder: {folder}" + + +if __name__ == "__main__": + _clone_repositories() + _buid_docs() + app.run(debug=True, host='0.0.0.0', port=5002) diff --git a/config/repositories.txt b/config/repositories.txt new file mode 100644 index 0000000..71879e9 --- /dev/null +++ b/config/repositories.txt @@ -0,0 +1,2 @@ +https://git.herreweb.nl/JonathanHerrewijnen/HerrewebPy.git +https://git.herreweb.nl/EljakimHerrewijnen/wifi-tally_Oostendam.git \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..3b0f3ea --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3.8' +services: + web: + build: + context: . + target: dev # specify the build target if needed + ports: + - "5000:5000" diff --git a/requirements.txt b/requirements.txt index 3b14feb..575d634 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,2 @@ -django -sphinx -djangorestframework -django-cors-headers -Pillow +Flask==2.1.0 # or a later version +Werkzeug==2.0.0 diff --git a/static/wifi-tally_Oostendam/documentation/.vscode/settings.json b/static/wifi-tally_Oostendam/documentation/.vscode/settings.json new file mode 100644 index 0000000..a7d0fc7 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "esbonio.sphinx.confDir": "" +} \ No newline at end of file diff --git a/static/wifi-tally_Oostendam/documentation/Makefile b/static/wifi-tally_Oostendam/documentation/Makefile new file mode 100644 index 0000000..837d189 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/Makefile @@ -0,0 +1,24 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SPHINXAUTOBUILD = sphinx-autobuild +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +livehtml: + @$(SPHINXAUTOBUILD) -b html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/static/wifi-tally_Oostendam/documentation/make.bat b/static/wifi-tally_Oostendam/documentation/make.bat new file mode 100644 index 0000000..747ffb7 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/static/wifi-tally_Oostendam/documentation/source/conf.py b/static/wifi-tally_Oostendam/documentation/source/conf.py new file mode 100644 index 0000000..a94a64d --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/conf.py @@ -0,0 +1,31 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'Oostendam Tallies' +copyright = '2023, Eljakim' +author = 'Eljakim' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ + 'sphinx_rtd_theme', + 'sphinx.ext.todo', + "sphinxcontrib.drawio", +] + +templates_path = ['_templates'] +exclude_patterns = [] + + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'sphinx_rtd_theme' +html_static_path = ['_static'] diff --git a/static/wifi-tally_Oostendam/documentation/source/dependencies.rst b/static/wifi-tally_Oostendam/documentation/source/dependencies.rst new file mode 100644 index 0000000..2acab77 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/dependencies.rst @@ -0,0 +1,16 @@ +============ +Dependencies +============ + +Install the following Dependencies: + + * luarocks : ``sudo apt install luarocks`` + * busted : ``sudo luarocks install busted`` + * python3 : ``sudo apt install python3`` + * esptool : ``pip3 install esptool`` + * nodemcu-uploader : ``pip3 install nodemcu-uploader`` + +Install on the Server PC: + + * NodeJS : https://nodejs.org/ + * Next : ``npm install next`` \ No newline at end of file diff --git a/static/wifi-tally_Oostendam/documentation/source/hardware/index.rst b/static/wifi-tally_Oostendam/documentation/source/hardware/index.rst new file mode 100644 index 0000000..00ae2cb --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/hardware/index.rst @@ -0,0 +1,91 @@ +============== +Hardware Setup +============== + +This page describes the hardware setup for the tallies. +How to build the tallies and how to build and flash new firmware to the tallies. + +Build a Tally +============= + +For the tallies a classic ``RGB`` ledstrip is used instead of the more modern ``WS2812B`` standard. This ledstrip is connected as follows: + +.. image:: tally-schematics-simple.png + +Build the firmware +================== + +In order to build the firmware a ``Toolchain`` for cross compilation is required. +This toolchain is provided in the repository in ``nodemcu-firmware/``. +To build the code for the tallies, navigate to ``wifi-tally/tally/`` and run ``make``. + +.. code-block:: console + + $ make + # if it compiles it is syntactically valid + ../../nodemcu-firmware/luac.cross -o /dev/null src/init.lua + "busted" + ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● + 91 successes / 0 failures / 0 errors / 0 pending : 0.23373 seconds + +The resulting files are in the ``out/`` folder. + +Flash the firmware +================== +To flash the firmware, first put the device in flash mode. +You can do this by pressing and hodling the ``FLASH`` button and presing the ``RST`` button. +After that you can release the ``FLASH`` button. +Next, navigate to ``../wifi-tally/firmware`` and run ``install_firmware.sh``. + +.. code-block:: console + + $ ./install_firmware.sh + esptool.py v4.4 + Serial port /dev/ttyUSB0 + Connecting.... + Detecting chip type... Unsupported detection protocol, switching and trying again... + Connecting.... + Detecting chip type... ESP8266 + Chip is ESP8266EX + Features: WiFi + Crystal is 26MHz + MAC: 50:02:91:fd:ca:0a + Uploading stub... + Running stub... + Stub running... + Configuring flash size... + Flash will be erased from 0x00000000 to 0x00070fff... + Flash params set to 0x0020 + Compressed 462848 bytes to 301339... + Wrote 462848 bytes (301339 compressed) at 0x00000000 in 26.7 seconds (effective 138.9 kbit/s)... + Hash of data verified. + + Leaving... + + +.. note:: + If you receive an error about permissions, run ``sudo -E ./install_firmware.sh`` to mitigate permissions for the USB device. Also look in the ``troubleshooting`` section if you keep having issues. + +Flash the Application +===================== +Navigate to ``wifi-tally/tally`` and run ``install_application.sh``. + +.. note:: + Make sure to edit the ``out/tally-settings.ini`` for the correct wifi SSID and password. + +.. code:: console + + $ ./install_application.sh + opening port /dev/ttyUSB0 with 115200 baud + Preparing esp for transfer. + Transferring out/my-app.lc as out/my-app.lc + Transferring out/my-led.lc as out/my-led.lc + Transferring out/my-log-buffer.lc as out/my-log-buffer.lc + Transferring out/my-log.lc as out/my-log.lc + Transferring out/my-settings.lc as out/my-settings.lc + Transferring out/my-tally.lc as out/my-tally.lc + Transferring out/my-wifi.lc as out/my-wifi.lc + Transferring out/tally-settings.ini as out/tally-settings.ini + All done! + +The tally is ready! \ No newline at end of file diff --git a/static/wifi-tally_Oostendam/documentation/source/hardware/tally-schematics-simple.png b/static/wifi-tally_Oostendam/documentation/source/hardware/tally-schematics-simple.png new file mode 100644 index 0000000000000000000000000000000000000000..c1db8991d5f24cc535b010031f7b69926c985c4e GIT binary patch literal 90944 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 BO#J`= literal 0 HcmV?d00001 diff --git a/static/wifi-tally_Oostendam/documentation/source/index.rst b/static/wifi-tally_Oostendam/documentation/source/index.rst new file mode 100644 index 0000000..ee27636 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/index.rst @@ -0,0 +1,65 @@ +.. Oostendam Tallies documentation master file, created by + sphinx-quickstart on Mon Jan 23 22:14:59 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Tallies in Oostendam +==================== + +.. toctree:: + :maxdepth: 2 + :caption: Build: + + overview.rst + hardware/index.rst + server/index.rst + + +.. toctree:: + :maxdepth: 2 + :caption: Development: + + patches.rst + troubleshooting.rst + + +.. toctree:: + :maxdepth: 2 + :caption: Migrating: + + migration.rst + +Introduction +============ + +This document contains the documentation for the tallies used in the `Immanuelkapel in Oostendam `_. +The goal in this project is to provide *cheap* indicator lights to show which camera is active during the service. +This way the minister knows which of the camera's is active and use it during the service. + +This project relies heavily on an `existing project on github `_. +The main difference between this code and the project on github is the behaviour of the tally lights. + +Contact +******* + +To contact our church you can see our contact details below: + + ++-------------+----------------------------+ +| | Immanuëlkapel (Oostendam) | ++=============+============================+ +| Street | Pruimendijk 99 | ++-------------+----------------------------+ +| Postal code | 2989 AH Ridderkerk | ++-------------+----------------------------+ +| Phone | 078-6819880 | ++-------------+----------------------------+ + + +.. include:: dependencies.rst + +Result +****** +The tally in our Church in Oostendam: + +.. image:: kerk_tally.jpeg \ No newline at end of file diff --git a/static/wifi-tally_Oostendam/documentation/source/kerk_tally.jpeg b/static/wifi-tally_Oostendam/documentation/source/kerk_tally.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f5b03e97c5c4aea81651d8c0af42778238f95854 GIT binary patch literal 91249 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

bpHrMpN~rXYXyA^R0%uZBFR{1kK?HPvuK`VmSp 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 Z_WuBgH~t6b5Ap@)^V|ObwOr`_ + 3. Copy the config.json from the old PC (homedir + .wifi-tally.json) to the same location on the new PC. + 4. Run the server on the host PC(see below) + +Run server +========== +To run the server, navigate to ``wifi-tally/hub`` and execute ``run_server.sh`` + +.. code-block:: console + + $ ./run_server.sh + + > wifi-tally-hub@0.1.0 start + > node server.js --env=production + + Using mixer configuration "null" + No video mixer connected. + Listening for Tallies on 0.0.0.0:7411 + Web Server available on http://localhost:3000 + (node:117081) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time \ No newline at end of file diff --git a/static/wifi-tally_Oostendam/documentation/source/overview.drawio b/static/wifi-tally_Oostendam/documentation/source/overview.drawio new file mode 100644 index 0000000..0959e13 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/overview.drawio @@ -0,0 +1 @@ +3Vffb5swEP5reK0IBkofm6TdJrXStExq92jgAK8GR8Zpkv71O+D4NdI22ppWW17i+3y2z9/dZxuLLfLdJ83X2a2KQVqOHe8strQcZ+ayGf5VyL5BPJc1QKpFTE49sBJPQKBN6EbEUI4cjVLSiPUYjFRRQGRGGNdabcduiZLjVdc8hQmwiriconciNlmDBp7d459BpFm78symnpy3zgSUGY/VdgCxK4sttFKmaeW7BciKvJaXZtz1M71dYBoKc8yA82bAI5cb2tudSATFZvbthiHG/ZOptMlUqgour3p0rtWmiKGa1Uar97lRao3gDMGfYMyeksk3RiGUmVxSL+yEuR+0f1RTnXlkLXc0c23sW6Mwen8/NJpRjtfa/bjaageWhmtzWVUCApHkZSmiFr4Wso2p4aHa/LP0ElSqjY7Iy6GK5DoF8nK71KImQOWAwaCLBsmNeBzPzqk4086vzx82KIWH0+lM0mk5vsQg5iE20qrxnUtZrb3gOWiOjW91oZIbLtB5TqpgnONtJgys1rze9haFPs5ngjQulFS6HstiDkHScKzVAwx6/CiAMOnWewRtYPcy31Mm2wGMdEUHS0DmtlfprJVeNlCoa/899/5/KaXzD5US+zgpsT+Q0g0kp1dSkoAfHVRSfH4R2vZplNTdWO8hpeBfV82HisadisZ7J9FcTERzDSbKEPpSJGqSVSxPM06ChlI88bB2qIhaK1GYOiBvbnlLRLgUaVGxhhQAFv68KnOBb7NL6shFHNcVIXkIcs6jh7SujZGEqt9LQqGXI0XSv9eG1AcvCsg+m/nMHWmI5j6adZr7a8XBwEUlSYmJ/T0tXQhHZcp9/XhbgUZmTv8y8CCI3UPnWeCEzPff5jxjvjfOhXvkeea/wXnmvU42Vmv0gD63PMWjwLEvDeSnv0qCCA5fJWHgud4bXSVeYL8b9Wj2H0+NLPpPUHb1Cw== \ No newline at end of file diff --git a/static/wifi-tally_Oostendam/documentation/source/overview.rst b/static/wifi-tally_Oostendam/documentation/source/overview.rst new file mode 100644 index 0000000..e71e156 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/overview.rst @@ -0,0 +1,47 @@ +================ +Tallies Overview +================ + +This page gives a short overview of how the tallies work in relation to the camera's. A simple overview of the tallies in correlation between the server and the streamer is shown below: + +.. drawio-image:: overview.drawio + + + +Hardware +======== + +The hardware for the tallies is an ``esp8266`` microcontroller, as they can be found `on Amazon `_. +These microcontrollers are very cheap but are capable of using the ``802.11 b/g/n`` wifi standard(``IEEE``). + +A quick overview of the hardware: + + ++-------------------------+--------------------------------------+ +| Type | Value | ++=========================+======================================+ +| CPU | 32Bit RISC based on ``Xtensa lx106`` | ++-------------------------+--------------------------------------+ +| Instruction RAM | 32 KiB | ++-------------------------+--------------------------------------+ +| Instruction Cache | 32 KiB | ++-------------------------+--------------------------------------+ +| User Data RAM | 80 KiB | ++-------------------------+--------------------------------------+ +| System Data RAM | 16 KiB | ++-------------------------+--------------------------------------+ +| Flash Memory (External) | 4 MiB | ++-------------------------+--------------------------------------+ + +Of the 17 GPIO pins available, only 3 are used for the RGB colouring. +Wifi is used for communication between the tallies and a server that will tell the tally to turn on the lights. + +Software +======== +On the Host a ``NodeJS`` server is run that opens a websocket on port ``7411``. +This websockets waits for tallies to connect and sends data to them when connected. +The server also connects to the streamer, in our case a ``Black Magic ATEM`` that controls the camera's. +The streamer gives information about which camera is active which is passed to the tallies. + + + diff --git a/static/wifi-tally_Oostendam/documentation/source/patches.rst b/static/wifi-tally_Oostendam/documentation/source/patches.rst new file mode 100644 index 0000000..2d71f92 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/patches.rst @@ -0,0 +1,50 @@ +============= +Tally Patches +============= +This section describes the patches made to the software. These patches are provided in the repository so no user interaction is needed when building the firmware. + +LED patches +=========== +The goal of the patches is to: + + * Disable any signal leds on error, like no wifi connected or server not accessble + * Disable green led when on preview + +In order to add these patches the following code was edited in the firmware: + +.. code-block:: c + + _G.MyLed = { + signal that nothing is being done + initial = flashPattern("O", colors.BLUE), + waitForWifiConnection = flashPattern("Oo", colors.GREEN), + invalidSettingsFile = flashPattern("OoOoOooooooo", colors.BLUE, 2), + waitForWifiIp = flashPattern("OoOo", colors.BLUE), + waitForServerConnection = flashPattern("OoOooo", colors.BLUE), + onPreview = flashPattern("O", colors.GREEN), + onAir = flashPattern("O", colors.RED), + onRelease = flashPattern(".", colors.GREEN, nil, false), + onUnknown = flashPattern("Oooooooo", colors.BLUE, 2), + onHighlight = flashPattern("OoOoOoOo", colors.WHITE), + turnOff = flashPattern("O", colors.BLACK), + } + +This code block was replaced with the following: + +.. code-block:: c + + _G.MyLed = { + initial = flashPattern("O", colors.BLACK), + waitForWifiConnection = flashPattern("O", colors.BLACK), + invalidSettingsFile = flashPattern("O", colors.BLACK), + waitForWifiIp = flashPattern("O", colors.BLACK), + waitForServerConnection = flashPattern("O", colors.BLACK), + onPreview = flashPattern("O", colors.BLACK), + onAir = flashPattern("O", colors.RED), + onRelease = flashPattern("O", colors.BLACK), + onUnknown = flashPattern("O", colors.BLACK), + onHighlight = flashPattern("OoOoOoOo", colors.GREEN), + turnOff = flashPattern("O", colors.BLACK), + } + +Upon each signal the leds will change, but into the BLACK color and into RED when the camera is active. \ No newline at end of file diff --git a/static/wifi-tally_Oostendam/documentation/source/server/index.rst b/static/wifi-tally_Oostendam/documentation/source/server/index.rst new file mode 100644 index 0000000..3935ffd --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/server/index.rst @@ -0,0 +1,63 @@ +====== +Server +====== +The tallies require a server that will direct the tallies and figure out the status of the ``BlackMagic ATEM``. + +Build the server +================ +Navigate to ``wifi-tally/hub`` and run the ``build_server.sh``. + +.. code-block:: console + + $ ./build_server.sh + + > wifi-tally-hub@0.1.0 build + > next build + + Browserslist: caniuse-lite is outdated. Please run: + npx browserslist@latest --update-db + info - Creating an optimized production build + info - Compiled successfully + info - Collecting page data + [== ] info - Generating static pages (0/1)info - Finalizing page optimizati + info - Finalizing page optimization + + Page Size First Load JS + ┌ λ / 4.55 kB 94.4 kB + ├ /_app 0 B 59.2 kB + ├ ○ /404 3.01 kB 62.2 kB + ├ λ /config 1.48 kB 91.3 kB + └ λ /tally/[tallyName] 1.48 kB 91.3 kB + + First Load JS shared by all 59.2 kB + ├ chunks/07ed33f3.bca366.js 68 B + ├ chunks/commons.94f2cd.js 11 kB + ├ chunks/framework.9ec1f7.js 39.9 kB + ├ chunks/main.7e5158.js 7.2 kB + ├ chunks/pages/_app.627bfb.js 284 B + ├ chunks/webpack.e06743.js 751 B + └ css/ba2fd543a36dbb3ceef1.css 25.9 kB + + λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps) + ○ (Static) automatically rendered as static HTML (uses no initial props) + ● (SSG) automatically generated as static HTML + JSON (uses getStaticProps) + (ISR) incremental static regeneration (uses revalidate in getStaticProps) + + [ ===] info - Generating static pages (0/1)% + + +To run the server, navigate to ``wifi-tally/hub`` and execute ``run_server.sh`` + +.. code-block:: console + + $ ./run_server.sh + + > wifi-tally-hub@0.1.0 start + > node server.js --env=production + + Using mixer configuration "null" + No video mixer connected. + Listening for Tallies on 0.0.0.0:7411 + Web Server available on http://localhost:3000 + (node:117081) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time + +Depending on the OS of the stream PC you might need to create a new shell script to execute the **npm run start** command to run the server. \ No newline at end of file diff --git a/static/wifi-tally_Oostendam/documentation/source/troubleshooting.rst b/static/wifi-tally_Oostendam/documentation/source/troubleshooting.rst new file mode 100644 index 0000000..b0fa5c8 --- /dev/null +++ b/static/wifi-tally_Oostendam/documentation/source/troubleshooting.rst @@ -0,0 +1,37 @@ +=============== +Troubleshooting +=============== + +If you have issues with the ``esp8266`` not connecting on /dev/ttyUSB, but the device does show up in lsusb: + +.. code:: console + + $ lsusb + [..] + Bus 001 Device 019: ID 1a86:7523 QinHeng Electronics CH340 serial converter + [..] + +Then this might be related to a udev rule in Linux. +Removing this rule will stop udev from hijacking the USB device. + +.. code:: console + + sudo rm /usr/lib/udev/rules.d/*-brltty-*.rules + sudo udevadm control --reload-rules + sudo systemctl mask brltty.path + +ESPlorer +======== +``ESPlorer`` is a tool that allows you to flash firmware to the ESP8266 using a GUI. This is example code on how to build and run it: + +.. code-block:: consoleabap + + git clone https://github.com/4refr0nt/ESPlorer.git + + # Build it + ./mvnw clean package + + # Run it + java -jar target/ESPlorer.jar + +The ``ESPlorer`` can be used to interact with the ``esp8266`` and flash binaries using a GUI. \ No newline at end of file diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..bc9ffb0 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,14 @@ + + + + + + Repository Folders + + +

Repository Folders

+ {% for folder in repository_folders %} +
+ {% endfor %} + +