fastiot.cli.common.infrastructure_services module¶
- pydantic model fastiot.cli.common.infrastructure_services.NatsService[source]¶
-
field name:
str
= 'nats'¶ Name of the external service, e.g. mariadb. Per convention these names should be in lower case
-
field image:
str
= 'nats:latest'¶ Name of the image
-
field ports:
List
[InfrastructureServicePort
] = [InfrastructureServicePort(container_port=4222, default_port_mount=4222, env_var='FASTIOT_NATS_PORT')]¶
-
field name:
- pydantic model fastiot.cli.common.infrastructure_services.MariaDBService[source]¶
Here, all relevant environment variables are listed to build a MariaDB Service,
-
field name:
str
= 'mariadb'¶ Name of the external service, e.g. mariadb. Per convention these names should be in lower case
-
field image:
str
= 'mariadb:10.8'¶ Name of the image
-
field ports:
List
[InfrastructureServicePort
] = [InfrastructureServicePort(container_port=3306, default_port_mount=3306, env_var='FASTIOT_MARIA_DB_PORT')]¶
-
field environment:
List
[InfrastructureServiceEnvVar
] = [InfrastructureServiceEnvVar(name='MYSQL_ROOT_USER', default='root', env_var='FASTIOT_MARIA_DB_USER'), InfrastructureServiceEnvVar(name='MYSQL_ROOT_PASSWORD', default='12345', env_var='FASTIOT_MARIA_DB_PASSWORD'), InfrastructureServiceEnvVar(name='MYSQL_INITDB_SKIP_TZINFO', default='yes', env_var='')]¶
-
field password_env_vars:
List
[str
] = ['FASTIOT_MARIA_DB_PASSWORD']¶ List of environment variables containing a password. Those will be filled with random passwords for new projects automatically.
-
field volumes:
List
[InfrastructureServiceVolume
] = [InfrastructureServiceVolume(container_volume='/var/lib/mysql', env_var='FASTIOT_MARIA_DB_VOLUME')]¶
-
field name:
- pydantic model fastiot.cli.common.infrastructure_services.MongoDBService[source]¶
Here, all relevant environment variables are listed to build a MongoDB Service,
-
field name:
str
= 'mongodb'¶ Name of the external service, e.g. mariadb. Per convention these names should be in lower case
-
field image:
str
= 'mongo:5.0'¶ Name of the image
-
field ports:
List
[InfrastructureServicePort
] = [InfrastructureServicePort(container_port=27017, default_port_mount=27017, env_var='FASTIOT_MONGO_DB_PORT')]¶
-
field environment:
List
[InfrastructureServiceEnvVar
] = [InfrastructureServiceEnvVar(name='MONGO_INITDB_ROOT_USERNAME', default='root', env_var='FASTIOT_MONGO_DB_USER'), InfrastructureServiceEnvVar(name='MONGO_INITDB_ROOT_PASSWORD', default='12345', env_var='FASTIOT_MONGO_DB_PASSWORD')]¶
-
field password_env_vars:
List
[str
] = ['FASTIOT_MONGO_DB_PASSWORD']¶ List of environment variables containing a password. Those will be filled with random passwords for new projects automatically.
-
field volumes:
List
[InfrastructureServiceVolume
] = [InfrastructureServiceVolume(container_volume='/data/db', env_var='FASTIOT_MONGO_DB_VOLUME')]¶
-
field compose_extras:
List
[InfrastructureServiceComposeExtras
] = [InfrastructureServiceComposeExtras(option_name='mem_limit', env_var='FASTIOT_MONGO_DB_MEM_LIMIT')]¶
-
field name:
- pydantic model fastiot.cli.common.infrastructure_services.MongoDB4Service[source]¶
Infrastructure service for a MongoDB in version 4. This is the latest version to work with a Raspberry Pi 4 (s. https://stackoverflow.com/questions/68419196 for more details)
-
field name:
str
= 'mongodb4'¶ Name of the external service, e.g. mariadb. Per convention these names should be in lower case
-
field image:
str
= 'mongo:4.4.18'¶ Name of the image
-
field name:
- pydantic model fastiot.cli.common.infrastructure_services.InfluxDBService[source]¶
Here, all relevant environment variables are listed to build a InfluxDB Service,
-
field name:
str
= 'influxdb'¶ Name of the external service, e.g. mariadb. Per convention these names should be in lower case
-
field image:
str
= 'influxdb:2.0'¶ Name of the image
-
field ports:
List
[InfrastructureServicePort
] = [InfrastructureServicePort(container_port=8086, default_port_mount=8086, env_var='FASTIOT_INFLUX_DB_PORT')]¶
-
field environment:
List
[InfrastructureServiceEnvVar
] = [InfrastructureServiceEnvVar(name='DOCKER_INFLUXDB_INIT_USERNAME', default='influx_db_admin', env_var='FASTIOT_INFLUX_DB_USER'), InfrastructureServiceEnvVar(name='DOCKER_INFLUXDB_INIT_PASSWORD', default='mf9ZXfeLKuaL3HL7w', env_var='FASTIOT_INFLUX_DB_PASSWORD'), InfrastructureServiceEnvVar(name='DOCKER_INFLUXDB_INIT_MODE', default='setup', env_var='FASTIOT_INFLUX_DB_MODE'), InfrastructureServiceEnvVar(name='DOCKER_INFLUXDB_INIT_ORG', default='FASTIOT', env_var='FASTIOT_INFLUX_DB_ORG'), InfrastructureServiceEnvVar(name='DOCKER_INFLUXDB_INIT_BUCKET', default='things', env_var='FASTIOT_INFLUX_DB_BUCKET'), InfrastructureServiceEnvVar(name='DOCKER_INFLUXDB_INIT_ADMIN_TOKEN', default='12345', env_var='FASTIOT_INFLUX_DB_TOKEN')]¶
-
field password_env_vars:
List
[str
] = ['FASTIOT_INFLUX_DB_TOKEN', 'FASTIOT_INFLUX_DB_PASSWORD']¶ List of environment variables containing a password. Those will be filled with random passwords for new projects automatically.
-
field volumes:
List
[InfrastructureServiceVolume
] = [InfrastructureServiceVolume(container_volume='/var/lib/influxdb2', env_var='FASTIOT_INFLUX_DB_VOLUME')]¶
-
field name:
- pydantic model fastiot.cli.common.infrastructure_services.TimeScaleDBService[source]¶
Here, all relevant environment variables are listed to build a TimeScaleDB Service,
-
field name:
str
= 'timescaledb'¶ Name of the external service, e.g. mariadb. Per convention these names should be in lower case
-
field image:
str
= 'timescale/timescaledb:latest-pg14'¶ Name of the image
-
field ports:
List
[InfrastructureServicePort
] = [InfrastructureServicePort(container_port=5432, default_port_mount=5432, env_var='FASTIOT_TIME_SCALE_DB_PORT')]¶
-
field environment:
List
[InfrastructureServiceEnvVar
] = [InfrastructureServiceEnvVar(name='POSTGRES_USER', default='postgres', env_var='FASTIOT_TIME_SCALE_DB_USER'), InfrastructureServiceEnvVar(name='POSTGRES_PASSWORD', default='12345', env_var='FASTIOT_TIME_SCALE_DB_PASSWORD'), InfrastructureServiceEnvVar(name='POSTGRES_DB', default='fastiot_db', env_var='FASTIOT_TIME_SCALE_DB_DATABASE')]¶
-
field host_name_env_var:
str
= 'FASTIOT_TIME_SCALE_DB_HOST'¶ The environment variable setting the hostname. This variable needs special attention: When working in a local development environment this defaults to localhost. Within a docker network the value needs to be the docker-internal hostname.
-
field password_env_vars:
List
[str
] = ['FASTIOT_TIME_SCALE_DB_PASSWORD']¶ List of environment variables containing a password. Those will be filled with random passwords for new projects automatically.
-
field volumes:
List
[InfrastructureServiceVolume
] = [InfrastructureServiceVolume(container_volume='/var/lib/postgresql/data', env_var='FASTIOT_TIME_SCALE_DB_VOLUME')]¶
-
field name:
- pydantic model fastiot.cli.common.infrastructure_services.RedisService[source]¶
Here, all relevant environment variables are listed to build a Redis Service,
-
field name:
str
= 'redis'¶ Name of the external service, e.g. mariadb. Per convention these names should be in lower case
-
field image:
str
= 'redis:7'¶ Name of the image
-
field ports:
List
[InfrastructureServicePort
] = [InfrastructureServicePort(container_port=6379, default_port_mount=6379, env_var='FASTIOT_REDIS_PORT')]¶
-
field environment:
List
[InfrastructureServiceEnvVar
] = [InfrastructureServiceEnvVar(name='REDIS_PASSWORD', default='12345', env_var='FASTIOT_REDIS_PASSWORD')]¶
-
field password_env_vars:
List
[str
] = ['FASTIOT_REDIS_PASSWORD']¶ List of environment variables containing a password. Those will be filled with random passwords for new projects automatically.
-
field volumes:
List
[InfrastructureServiceVolume
] = [InfrastructureServiceVolume(container_volume='/data', env_var='FASTIOT_REDIS_VOLUME')]¶
-
field name:
- pydantic model fastiot.cli.common.infrastructure_services.ElasticSearch[source]¶
Here, all relevant environment variables are listed to build an ElasticSearch Service,
-
field name:
str
= 'elasticsearch'¶ Name of the external service, e.g. mariadb. Per convention these names should be in lower case
-
field image:
str
= 'docker.elastic.co/elasticsearch/elasticsearch:7.17.8'¶ Name of the image
-
field password_env_vars:
List
[str
] = ['FASTIOT_ELASTICSEARCH_PASSWORD']¶ List of environment variables containing a password. Those will be filled with random passwords for new projects automatically.
-
field ports:
List
[InfrastructureServicePort
] = [InfrastructureServicePort(container_port=9200, default_port_mount=9200, env_var='FASTIOT_ELASTICSEARCH_PORT')]¶
-
field environment:
List
[InfrastructureServiceEnvVar
] = [InfrastructureServiceEnvVar(name='ELASTIC_PASSWORD', default='12345', env_var='FASTIOT_ELASTICSEARCH_PASSWORD'), InfrastructureServiceEnvVar(name='ES_JAVA_OPTS', default='-Xmx256m -Xms256m', env_var=''), InfrastructureServiceEnvVar(name='discovery.type', default='single-node', env_var=''), InfrastructureServiceEnvVar(name='cluster.name', default='single-node-cluster', env_var=''), InfrastructureServiceEnvVar(name='network.host', default='0.0.0.0', env_var='')]¶
-
field volumes:
List
[InfrastructureServiceVolume
] = [InfrastructureServiceVolume(container_volume='/usr/share/elasticsearch/data', env_var='FASTIOT_ELASTICSEARCH_VOLUME')]¶
-
field name: