.. _installation:
Installation and Setup
======================
TethysDash uses `Tethys Platform `_ as the backend and React for the frontend.
Quick Installation
------------------
1. Create and activate a Python virtual environment (optional but recommended):
.. code-block:: bash
python3 -m venv test_env
source test_env/bin/activate
2. Install TethysDash:
.. code-block:: bash
pip install tethysdash
3. Setup Tethys and TethysDash databases/services:
.. code-block:: bash
tethysdash setup
4. Start Tethys Portal:
.. code-block:: bash
tethysdash start
Development Installation
------------------------
Install both Python/Tethys dependencies and Node dependencies for full development.
1. Create and activate a Python virtual environment (optional but recommended):
.. code-block:: bash
python3 -m venv test_env
source test_env/bin/activate
2. Clone the repository:
.. code-block:: bash
git clone https://github.com/tethysplatform/tethysapp-tethys_dash
cd tethysapp-tethys_dash/
3. Install the app in editable mode:
.. code-block:: bash
pip install -e .
4. Setup Tethys and TethysDash databases/services:
.. code-block:: bash
tethysdash setup
5. (Optional) Install plugin examples:
.. code-block:: bash
cd ..
git clone https://github.com/FIRO-Tethys/tethysdash_examples
cd tethysdash_examples
pip install -e .
6. Start Tethys Portal:
.. code-block:: bash
tethysdash start
Frontend Development
--------------------
The webpack dev server proxies the Tethys development server. Run both in separate terminals.
1. Install Node dependencies:
.. code-block:: bash
cd tethysapp-tethys_dash/
npm install --dev
2. Start Tethys development server:
.. code-block:: bash
tethys manage start
3. Start webpack development server (separate terminal):
.. code-block:: bash
npm start
Frontend Build
--------------
Build frontend assets before creating a Python distribution:
.. code-block:: bash
npm run build
Frontend Test
-------------
Lint and test the React frontend:
.. code-block:: bash
npm run lint
npm run test
Testing uses tools such as `eslint `_, `jest `_, `jsdom `_, and `Testing Library `_.
Websocket Configuration
-----------------------
Some visualizations (for example, Live Chat and Progress Updating) require WebSocket support.
To enable this, configure a Redis server and update the Tethys Portal configuration file accordingly.
For setup details, see the `Tethys Platform Django Channels documentation `_.