A platform for realizing smart cities by freely displaying and managing data stored in the underlying software "FIWARE" in a variety of formats.
- It is provided by docker-compose.
- It has been tested on Ubuntu 20.04 with docker-compose 1.16.1 and docker 20.10.7 installed.
-
git clone
-
Change work directory.
~/StarSeeker$ cd StarSeeker
-
Configure some parameters in .env.
-
MongoDB user and password
-
PostgreSQL user and password
-
Initial parameters for maps (longitude, latitude, zoom value)
~/StarSeeker/StarSeeker$ cp _env .env ~/StarSeeker/StarSeeker$ vi .env # Congire parameters by your favorite editor :-)
-
-
Start containers.
~/StarSeeker/StarSeeker$ docker-compose up -d
-
Create a working directory for an operator terminal and copy from samples.
~/StarSeeker/StarSeeker$ cd operator ~/StarSeeker/StarSeeker/operator$ cp -r samples work
-
Edit the management tables and data csv's.
- Tenant definitions: tenant.xlsx
- Service path definitions: servicepath.xlsx
- Data category definitions: category.xlsx
- Point dataset definitions and data: point.xlsx
- Surface dataset definitions and data: surface.xlsx
-
Share .env and start the operator terminal.
~/StarSeeker/StarSeeker/operator$ ln -s ../.env .env ~/StarSeeker/StarSeeker/operator$ docker-compose up -d
-
Enter the operator terminal container.
~/StarSeeker/StarSeeker/operator$ docker exec -it op /bin/bash root@op:/work#
-
Convert *.xlsx to *.csv, if necessarily.
root@op:/work# ./xlsx2csv-all.sh
Note: Environment variables $DSN
and $BROKER
are already defined by docker-compose.
-
Register tenant defitions.
root@op:/work# ss_conductor tenant create tenant.csv # dry-run root@op:/work# ss_conductor tenant create tenant.csv --send $DSN # register definitions
-
Register service path definitions.
root@op:/work# ss_conductor servicepath create servicepath.csv # dry-run root@op:/work# ss_conductor servicepath create servicepath.csv --send $DSN # register definitions
-
Register category definitions.
root@op:/work# ss_conductor category create category.csv # dry-run root@op:/work# ss_conductor category create category.csv --send $DSN # register definitions
-
Register dataset definitions.
root@op:/work# ss_conductor dataset create point.csv # dry-run root@op:/work# ss_conductor dataset create point.csv --send $DSN # register definitions
-
Confirm datasets.
- Open http://DockerHost:3000 in your browser.
- Categories and datasets are selectable in hamburger menu.
-
Register data in orion.
root@op:/work# ss_conductor data create point_data.csv # dry-run root@op:/work# ss_conductor data create point_data.csv --send $BROKER # Register data
-
Confirm data.
-
Http-get entities from the operator terminal. (not docker host)
root@op:/work# curl -s http://orion:1026/v2/entities?limit=500 root@op:/work# curl -s http://orion:1026/v2/entities?limit=500 | python -c '\ import pprint;\ import json;\ import sys;\ pprint.pprint(json.loads(sys.stdin.read()))' # pretty print by python
-
-
Copy images in frontend server
~/StarSeeker/StarSeeker$ cp operator/samples/img/* site/frontend/public/img
-
Remove images in frontend server
~/StarSeeker/StarSeeker$ rm site/frontend/public/img/*
-
Remove data from orion
root@op:/work# ss_conductor data delete point_data.csv # dry-run root@op:/work# ss_conductor data delete point_data.csv --send $BROKER # Remove data
-
Remove dataset definitions.
root@op:/work# ss_conductor dataset delete point.csv # dry-run root@op:/work# ss_conductor dataset delete point.csv --send $DSN # remove definitions
-
Remove category definitions.
root@op:/work# ss_conductor category delete category.csv # dry-run root@op:/work# ss_conductor category delete category.csv --send $DSN # remove definitions
-
Remove service path definitions.
root@op:/work# ss_conductor servicepath delete servicepath.csv # dry-run root@op:/work# ss_conductor servicepath delete servicepath.csv --send $DSN # remove definitions
-
Remove tenants definitions.
root@op:/work# ss_conductor tenant delete tenant.csv # dry-run root@op:/work# ss_conductor tenant delete tenant.csv --send $DSN # remove definitions
-
How to reflect to the management DB
- Use
ss_conductor
to define tenants, service paths, categories, and datasets in the management database, and to register data in Fiware orion broker.
- Use
-
Multitenancy and entity service path function
- StarSeeker supports FIWARE Orion's multitenacy and entity service path functions.
- StarSeeker front-end server returns categories, datasets, and data from Orion related the tenant (defined in
T_TENANT
) and the service path (defined inT_SERVICE_PATH
). - Because www browsers like chrome, edge and safari http-gets without tenant and service path headers, the front end server returns categories, datasets, and data for
NULL
as tenant andNULL
as service path to them. Therefore the administrator should use a reverse proxy server that addsfiware-service
andfiware-servicepath
headers and fowards requests to the fron-end server.
-
Visit http://localhost:3000 from your browser.
-
Select a category.
-
Selecting a Data Set.
-
View details.
-
Stop containers.
~/StarSeeker/StarSeeker/operator$ docker-compose down ~/StarSeeker/StarSeeker/operator$ cd .. ~/StarSeeker/StarSeeker/$ docker-compose down