.github | ||
docker | ||
docs | ||
ereuse_devicehub | ||
examples | ||
scripts | ||
tests | ||
.babelrc.json | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.prettierrc.json | ||
alembic.ini | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
Definition-dpp.md | ||
development-setup.md | ||
docker-compose.yml | ||
licences.txt | ||
LICENSE.txt | ||
Makefile | ||
MANIFEST.in | ||
package.json | ||
pyproject.toml | ||
README.md | ||
README_MANUAL_INSTALLATION.md | ||
requirements-dev.txt | ||
requirements-prod.txt | ||
requirements.in | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
tox.ini |
Devicehub
Devicehub is a distributed IT Asset Management System focused on reusing digital devices, created under the project eReuse.org
This README explains how to install and use Devicehub. The documentation explains the concepts and the API.
Devicehub is built with Teal and Flask.
Installing
Please visit the Manual Installation to understand the detailed steps to install it locally or deploy it on a server.
Docker
There is a Docker compose file for an automated deployment. In the next steps, we can see how to run and use it.
- Download the sources:
git clone https://github.com/eReuse/devicehub-teal.git
cd devicehub-teal
- You need to decide on one directory in your system for sharing documents between your system and the dockers. As an example we use "/tmp/dhub/" and need to create it:
mkdir /tmp/dhub
-
If you want to initialize your DeviceHub instance with sample device snapshop you can copy your snapshots, copy your snapshots in this directory. If you don't have any snapshots copy one of the example directory. Otherwise, the device inventory of your DeviceHub instance will be empty and ready to add new devices. To register new devices, the workbench software can be run on a device to generate a hardware snapshot that can be uploaded to your DeviceHub instance.
-
Copy your snapshots in this directory. If you don't have any snapshots copy one of the example directory.
cp examples/snapshot01.json /tmp/dhub
- Modify the file with environment variables in the file .env You can see one example in examples/env If you don't have one, please copy the examples/env file and modify the basic vars
cp examples/env.example .env
You can use these parameters for default as a test, but you need to add values in these three variables:
API_DLT
API_DLT_TOKEN
API_RESOLVER
You can use that .env as a default for a test deployment, but these variables need to be initialized. These values should come from a deployed API_DLT connector service instance.
- run the dockers:
docker compose up
To stop the dockers you can use Ctl+C, and if you run again "compose up" you'll maintain the data and infrastructure.
In the screen you can see all the process of install. If there are any problem you can see this errors in the screen.
If the last line you see one text like this, exited whit code:
devicehub-teal-devicehub-id-client-1 exited with code 1
Then the install went wrong.
If the deployment was end-to-end successful (two running Devicehub instances successfully connected to the DLT backend selected in the .env file), you can see this text in the last lines:
devicehub-teal-devicehub-id-client-1 | * Running on http://172.28.0.2:5000/ (Press CTRL+C to quit)
devicehub-teal-devicehub-id-server-1 | * Running on all addresses.
devicehub-teal-devicehub-id-server-1 | WARNING: This is a development server. Do not use it in a production deployment.
devicehub-teal-devicehub-id-server-1 | * Running on http://172.28.0.5:5000/ (Press CTRL+C to quit)
- If you want to down the volumes and remove the data, you can use:
docker compose down -v
- If you want to enter a shell inside a new container:
docker run -it --entrypoint= ${target_docker_image} bash
If you want to enter a shell on an already running container:
docker exec -it ${target_docker_image} bash
To know the valid value for ${target_docker_image} you can use:
docker ps
- These are the details for use in this implementation:
devicehub with port 5000 (http://localhost:5000) is the identity provider of OIDC and have user user5000@example.com
devicehub with port 5001 (http://localhost:5001) is the client identity of OIDC and have user user5001@example.com
You can change these values in the .env file
- If you want use Workbench for this instances you need go to
http://localhost:5001/workbench/
with the user demo and next download the settings and ISO files. Follow the instructions that appear on the help page.