From 82bf535915b32674a5ab2db3ee136f6924414afd Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Thu, 28 Sep 2023 08:18:24 +0200 Subject: [PATCH] new readme --- README.md | 68 ++++++++++++++++++++++++++++++++++++++++ examples/env.example | 32 ++++++++++--------- examples/snapshot01.json | 1 + 3 files changed, 87 insertions(+), 14 deletions(-) create mode 100644 README.md create mode 100644 examples/snapshot01.json diff --git a/README.md b/README.md new file mode 100644 index 00000000..2e44aa8a --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +# Devicehub + +Devicehub is a distributed IT Asset Management System focused in reusing devices, created under the project [eReuse.org](https://www.ereuse.org) + +This README explains how to install and use Devicehub. [The documentation](http://devicehub.ereuse.org) explains the concepts and the API. + +Devicehub is built with [Teal](https://github.com/ereuse/teal) and [Flask](http://flask.pocoo.org). + +# Installing +Please visit the [Manual Installation](#README_MANUAL_INSTALLATION.md) for understand how you can install locally or deploy in a server. + +# Docker +You have a docker compose file for to do a automated deployment. In the next steps we can see as run and use. + +1. Download the sources: +``` + git clone https://github.com/eReuse/devicehub-teal.git + cd devicehub-teal +``` + +2. You need decide one dir in your system for share documents between your system and the dockers. +For us only as example we use "/tmp/dhub/" and need create it: +``` + mkdir /tmp/dhub +``` + +3. 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 +``` + +4. 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 this parameters for default as a test, but you need add values in this three variables: +``` + API_DLT + API_DLT_TOKEN + API_RESOLVER +``` + +5. run the dockers: +``` + docker compose up +``` +For stop the docker you can use Ctl+c and if you run again "compose up" you maintain the datas and infrastructure. + +6. If you want down the volumens and remove the datas, you can use: +``` + docker compose down -v +``` + +7. 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 already running container: +``` + docker exec -it ${target_docker_image} bash +``` + +For to know the valid value for ${target_docker_image} you can use: +``` + docker ps +` diff --git a/examples/env.example b/examples/env.example index a97f9373..eacd34a6 100644 --- a/examples/env.example +++ b/examples/env.example @@ -1,13 +1,20 @@ +# Please fill in these three variables +API_DLT='{ONE_URL}' +API_DLT_TOKEN='{ONE_TOKEN}' +API_RESOLVER='{ONE_URL}' + +# Database Variables DB_USER='dhub' DB_PASSWORD='ereuse' DB_HOST='localhost' -DB_DATABASE='devicehub' -API_DLT='http://$IP_API_DLT' -API_DLT_TOKEN='$TOKEN' -API_RESOLVER='http://$IP_API_RESOLVER' +DB_DATABASE='dpp' +SCHEMA='dbtest' +DB_SCHEMA='dbtest' + # TODO this should be guessed by DEVICEHUB_HOST, and avoid hardcode of ID_FEDERATED -ID_FEDERATED='$ID' -URL_MANUALS='http://$IP_MANUALS' +SERVER_ID_FEDERATED='DH12' +CLIENT_ID_FEDERATED='DH20' +URL_MANUALS='http://localhost:4000' #SERVER_ID_DEVICEHUB_HOST='http://devicehub-server-id.example.com' SERVER_ID_DEVICEHUB_HOST='http://localhost:5000' @@ -17,17 +24,14 @@ SERVER_ID_SERVICE='server_id' CLIENT_ID_SERVICE='client_id' HOST='localhost' -SCHEMA='dbtest' -DB_SCHEMA='dbtest' +EMAIL_DEMO='user@example.com' +PASSWORD_DEMO='1234' -EMAIL_DEMO='user@example.org' -PASSWORD_DEMO='changeme' - -JWT_PASS='changeme' -SECRET_KEY='changeme' +JWT_PASS='7KU4ZzsEfe' +SECRET_KEY='ffa96bac894ccaa070c23dfe18fd900eda2eebcbd5dac8b34db9b54ecec81501' # important to import snapshots (step 15) # rel path starts with ./ #SNAPSHOTS_PATH='./relpath/to/snapshots' # full path starts with / -SNAPSHOTS_PATH='/fullpath/to/snapshots' +SNAPSHOTS_PATH='/tmp/dhub_docker/snapshots' diff --git a/examples/snapshot01.json b/examples/snapshot01.json new file mode 100644 index 00000000..5697413f --- /dev/null +++ b/examples/snapshot01.json @@ -0,0 +1 @@ +{"closed": true, "components": [{"actions": [], "manufacturer": "Intel Corporation", "model": "82579LM Gigabit Network Connection", "serialNumber": "00:11:11:11:11:00", "speed": 1000.0, "type": "NetworkAdapter", "variant": "04", "wireless": false}, {"actions": [], "manufacturer": "Intel Corporation", "model": "7 Series/C216 Chipset Family High Definition Audio Controller", "serialNumber": null, "type": "SoundCard"}, {"actions": [], "format": "DIMM", "interface": "DDR3", "manufacturer": "Micron", "model": "16KTF51264AZ", "serialNumber": "AAAAAAAA", "size": 4096.0, "speed": 1600.0, "type": "RamModule"}, {"actions": [{"endTime": "2022-10-11T13:45:31.239555+00:00", "severity": "Info", "startTime": "2021-10-11T09:45:19.623967+00:00", "steps": [{"endTime": "2021-10-11T11:05:28.090897+00:00", "severity": "Info", "startTime": "2021-10-11T09:45:19.624163+00:00", "type": "StepZero"}, {"endTime": "2021-10-11T13:45:31.239402+00:00", "severity": "Info", "startTime": "2021-10-11T11:05:28.091255+00:00", "type": "StepRandom"}], "type": "EraseSectors"}, {"assessment": true, "commandTimeout": 30, "currentPendingSectorCount": 0, "elapsed": 60, "length": "Short", "lifetime": 18720, "offlineUncorrectable": 0, "powerCycleCount": 2147, "reallocatedSectorCount": 0, "reportedUncorrectableErrors": 0, "severity": "Info", "status": "Completed without error", "type": "TestDataStorage"}, {"elapsed": 11, "readSpeed": 119.0, "type": "BenchmarkDataStorage", "writeSpeed": 32.7}], "interface": "ATA", "manufacturer": "Seagate", "model": "ST3500418AS", "serialNumber": "AAAAAAAA", "size": 500000.0, "type": "HardDrive", "variant": "CC46"}, {"actions": [{"elapsed": 0, "rate": 25540.36, "type": "BenchmarkProcessor"}, {"elapsed": 8, "rate": 7.6939, "type": "BenchmarkProcessorSysbench"}], "address": 64, "brand": "Core i5", "cores": 4, "generation": 3, "manufacturer": "Intel Corp.", "model": "Intel Core i5-3470 CPU @ 3.20GHz", "serialNumber": null, "speed": 1.6242180000000002, "threads": 4, "type": "Processor"}, {"actions": [], "manufacturer": "Intel Corporation", "memory": null, "model": "Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller", "serialNumber": null, "type": "GraphicCard"}, {"actions": [], "biosDate": "2012-08-07T00:00:00", "firewire": 0, "manufacturer": "LENOVO", "model": "MAHOBAY", "pcmcia": 0, "ramMaxSize": 32, "ramSlots": 4, "serial": 1, "serialNumber": null, "slots": 4, "type": "Motherboard", "usb": 3, "version": "9SKT39AUS"}], "device": {"actions": [{"elapsed": 1, "rate": 0.6507, "type": "BenchmarkRamSysbench"}], "chassis": "Tower", "manufacturer": "LENOVO", "model": "3227A2G", "serialNumber": "AAAAAAAA", "sku": "LENOVO_MT_3227", "type": "Desktop", "version": "ThinkCentre M92P"}, "elapsed": 187302510, "endTime": "2016-11-03T17:17:01.116554+00:00", "software": "Workbench", "type": "Snapshot", "uuid": "ae913de1-e639-476a-ad9b-78eabbe4628b", "version": "11.0b11"} \ No newline at end of file