{"id":19486220,"url":"https://github.com/textbook/flash","last_synced_at":"2025-04-25T18:31:49.844Z","repository":{"id":45947968,"uuid":"54749712","full_name":"textbook/flash","owner":"textbook","description":"A project dashboard that works.","archived":false,"fork":false,"pushed_at":"2023-06-30T17:02:53.000Z","size":199,"stargazers_count":5,"open_issues_count":9,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T14:16:14.937Z","etag":null,"topics":["ci","ci-cd","cicd","dashboard","flask","information-radiator","python"],"latest_commit_sha":null,"homepage":"https://textbook-flash-e2b3c7d3ff67.herokuapp.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/textbook.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-25T21:55:57.000Z","updated_at":"2023-06-30T16:07:16.000Z","dependencies_parsed_at":"2022-09-26T21:31:42.353Z","dependency_job_id":null,"html_url":"https://github.com/textbook/flash","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textbook%2Fflash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textbook%2Fflash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textbook%2Fflash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textbook%2Fflash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/textbook","download_url":"https://codeload.github.com/textbook/flash/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250872191,"owners_count":21500773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci","ci-cd","cicd","dashboard","flask","information-radiator","python"],"created_at":"2024-11-10T20:35:41.704Z","updated_at":"2025-04-25T18:31:49.176Z","avatar_url":"https://github.com/textbook.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Flash\n=====\n\n.. image:: https://github.com/textbook/flash/actions/workflows/push.yml/badge.svg\n  :target: https://github.com/textbook/flash/actions/workflows/push.yml\n  :alt: GitHub Actions Build Status\n\n.. image:: https://coveralls.io/repos/github/textbook/flash/badge.svg?branch=main\n  :target: https://coveralls.io/github/textbook/flash?branch=main\n  :alt: Test Coverage\n\n.. image:: https://api.codacy.com/project/badge/grade/cef9c42119be41fc99ff7e89ffdd8cd6\n  :target: https://www.codacy.com/app/j-r-sharpe-github/flash\n  :alt: Other Code Issues\n\n.. image:: https://img.shields.io/badge/license-ISC-blue.svg\n  :target: https://github.com/textbook/flash/blob/main/LICENSE\n  :alt: ISC License\n\n`Flask`_ + Dashboard = Flash. A project dashboard *that works*.\n\n\nDeploying it\n------------\n\n1. **Heroku**\n\n   |Deploy to Heroku|_\n\n2. **Cloud Foundry**\n\n   Flash can easily be deployed to any `Cloud Foundry`_ environment. An\n   example ``manifest.yml`` is included with the project, showing how to\n   configure the deployment with an app name and a random route. Once you\n   have installed the CLI and selected an appropriate target org and space,\n   you can simply ``cf push``.\n\n3. **Docker**\n\n   Alternatively, build a Docker container as below and deploy to an online\n   container hosting service.\n\nConfiguring it\n--------------\n\nThere are three environment variables that Flash is aware of:\n\n* ``PORT`` - the port to bind to (defaults to 5000)\n* ``FLASK_SECRET_KEY`` - the secret key for `Flask sessions`_ (they aren't\n  currently used, but it's good practice to set it to a random value)\n* ``FLASH_CONFIG`` - the configuration, described below\n\nThe configuration, either saved in ``config.json`` at the project root or as the\n``$FLASH_CONFIG`` environment variable, should look like::\n\n    {\n      \"project_name\": \u003cname of the project\u003e,\n      \"services\": [\n        {\n          \"name\": \"tracker\",\n          \"api_token\": \u003cyour API token\u003e,\n          \"project_id\": \u003cyour project ID\u003e\n        }\n      ]\n    }\n\nIf both the environment variable and the config file are provided, the\nenvironment variable takes precedence.\n\nIf loading from ``config.json``, any value in the ``\"services\"`` settings that\n``$LOOKS_LIKE_THIS`` (leading ``$``, capital letters and underscores only) will\nbe assumed to be an environment variable and retrieved accordingly. This lets\nyou version control most of your configuration without leaking API tokens and\nother secrets.\n\nSettings\n........\n\n* ``project_name`` - the project's name to display in the footer (defaults to\n  ``\"unnamed\"``)\n* ``services`` - an array of service configurations (see `flash_services`_ for\n  details and configuration options)\n* ``style`` - the stylesheet to use (defaults to ``\"default\"``, which is\n  currently the only option...)\n* ``project_end`` - the end data and time of the project, in any format accepted\n  by `Moment.js`_. If provided, a countdown to this point will be shown in the\n  footer (no default, if not provided no countdown is shown).\n\nRunning it\n----------\n\nIf you just want to run Flash locally, you can use the included ``Dockerfile``\nto build and run a `Docker`_ container. This is a two-step process, after which\nFlash will be available at ``http://localhost:5000``::\n\n    docker build -t textbook/flash .\n    docker run -p 5000:80 textbook/flash\n\nIf your ``config.json`` includes environment variable references, or you want\nto override the configuration completely with ``$FLASH_CONFIG``, you can supply\nenvironment variables at ``docker run`` time with the ``-e`` command.\n\nDeveloping it\n-------------\n\nThe easiest way to install Flash for development is:\n\n1. Install the dependencies: ``pip3 install -r requirements.txt``\n\n2. Install the package in development mode: ``python3 setup.py develop``\n\n3. To run it locally, edit ``flash/config.json`` or provide ``$FLASH_CONFIG``\n   then run: ``python3 scripts/launch.py``\n\n4. To run the tests, use ``python setup.py test`` or run ``py.test`` directly.\n   In the latter case, use ``--runslow --Chrome`` (or another browser of your\n   choice) to include the integration tests, and see `the docs`_ for\n   ``pytest-pylint`` configuration options. For the integration tests you\n   will need to ensure that ``chromedriver`` is on your PATH; on OS X, you can\n   simply ``brew cask install chromedriver``.\n\nThe templates are written using the `Jinja2`_ template language.\n\nThunder\n-------\n\n`Thunder`_ is a new branch in the Flash repository that might eventually replace\nthe original. It switches the framework from Flask to `Tornado`_, allowing\nasynchronous processing and websockets.\n\n.. _Cloud Foundry: https://cloudfoundry.org/\n.. _Codeship: https://codeship.com/\n.. _Docker: https://docs.docker.com/\n.. _Flask: http://flask.pocoo.org/\n.. _Flask sessions: https://flask.palletsprojects.com/en/2.3.x/quickstart/#sessions\n.. _flash_services: https://github.com/textbook/flash_services\n.. _Jinja2: http://jinja.pocoo.org/docs/dev/\n.. _GitHub: https://github.com/\n.. |Deploy to Heroku| image:: https://www.herokucdn.com/deploy/button.svg\n.. _Deploy to Heroku: https://heroku.com/deploy\n.. _Moment.js: http://momentjs.com/\n.. _Pivotal Tracker: https://www.pivotaltracker.com/\n.. _the docs: https://pypi.python.org/pypi/pytest-pylint\n.. _Thunder: https://github.com/textbook/flash/tree/thunder\n.. _Tornado: http://www.tornadoweb.org/en/stable/\n.. _Travis CI: https://travis-ci.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftextbook%2Fflash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftextbook%2Fflash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftextbook%2Fflash/lists"}