Sign inSign up

welotec/smartems

By welotec

•Updated 3 months ago

Welotec Smart Element Management System

Image
3

10K+

welotec/smartems repository overview

⁠Welotec SMART EMS - Central Device Management for Welotec Devices (4G LTE Routers and Edge Gateways)

With the Welotec SMART EMS Container users benefit from a straight-forward device management system for Welotec devices like 4G LTE Routers and Edge Gateways. It enables a remote management of device configurations and firmware, deployment of zero-touch mass rollouts, and generation device diagnostics, on demand.

Learn more about our solution here: https://www.welotec.com/product/welotec-smart-ems/⁠

The functionality of Welotec SMART EMS can be extended by our solution VPN Security Suite. This enables building secure VPN infrastructures and creation of E2E-connections with devices and machines in the field. Learn more about our solution here: https://www.welotec.com/product/welotec-vpn-security-suite/⁠

In case of interest, please get in touch: https://www.welotec.com/contact/⁠

⁠System Requirements

Operating System: Docker compatible Linux-OS (e.g. Ubuntu, …) 
Software packages:docker.io docker-compose  
Processor: 64-Bit support (min. 1,8 GHz) ​ 
Memory: 4 GB RAM (8 GB recommended) ​ 
Mass Storage: 64 GB HDD (128 GB RAID1 recommended) ​ 
Network: min. 1x GBit Ethernet​ 

SMART EMS is released as docker container. System should have following application installed:

Docker Engine - minimum version 19.03.8
Installation procedures for those applications can be found at:
https://docs.docker.com/engine/install/⁠

For easy commissioning, we recommend Docker-compose
Docker-compose - minimum version 1.25.0
https://docs.docker.com/compose/install//⁠

⁠How to run SMART EMS

  1. Download and install Docker Engine (see System Requirements)
  2. Download and install Docker-compose (see System Requirements)
  3. Download SMART EMS via Docker pull command
  4. Run SMART EMS with the Docker-compose
⁠Docker-compose

To start, a Docker-Compose file (.yml) docker-compose is required. This can be started with docker-compose -f smartems-compose.yml up -d

name: "smartems"

services:
  smartems:
    container_name: "smartems-3.5.1"
    image: "welotec/smartems:3.5.1"
    restart: always
    networks:
      - "smartems-network"
    depends_on:
      - "smartems-database"
    ports:
      - 80:80
      - 443:443
      - 18443:18443
    volumes:
      - "smartems-volume-filestorage:/var/www/application/filestorage"
      - "smartems-volume-archive:/var/www/application/archive"
    environment:
      APPLICATION_SESSION_TIMEOUT: 900
      APPLICATION_UPPERCASE_FIRMWARE_VERSIONS: ""
      # Application can be configured to handle SSL certificates in 3 ways:
      # 1. Use acme client to obtain and renew SSL certificates
      # 2. Provide application with your own SSL certificates
      # 3. Use predefined SSL certificates
      #
      # 1. To use acme client please fill following variables:
      # APPLICATION_SSL_CERTIFICATE_ACME_CLIENT_DOMAINS - Comma-separated list of domains to obtain a certificate for
      # APPLICATION_SSL_CERTIFICATE_ACME_CLIENT_EMAIL - Email address for important account notifications
      # APPLICATION_SSL_CERTIFICATE_FILE_CHAIN - Should be empty ("")
      # APPLICATION_SSL_CERTIFICATE_FILE_KEY - Should be empty ("")
      #
      # 2. To provide your own SSL certificates please fill:
      # APPLICATION_SSL_CERTIFICATE_ACME_CLIENT_DOMAINS - Should be empty ("")
      # APPLICATION_SSL_CERTIFICATE_ACME_CLIENT_EMAIL - Should be empty ("")
      # APPLICATION_SSL_CERTIFICATE_FILE_CHAIN - Location of file in "smartems-volume-filestorage" that contains certificate in the PEM format
      # APPLICATION_SSL_CERTIFICATE_FILE_KEY - Location of file in "smartems-volume-filestorage" that contains secret key in the PEM format
      #
      # 3. To use predefined SSL certificates please fill:
      # APPLICATION_SSL_CERTIFICATE_ACME_CLIENT_DOMAINS - Should be empty ("")
      # APPLICATION_SSL_CERTIFICATE_ACME_CLIENT_EMAIL - Should be empty ("")
      # APPLICATION_SSL_CERTIFICATE_FILE_CHAIN - Should be empty ("")
      # APPLICATION_SSL_CERTIFICATE_FILE_KEY - Should be empty ("")
      #
      # When APPLICATION_SSL_CERTIFICATE_* variables will be filled incorrectly (i.e. all 4 variables will be filled) application will fallback to predefined SSL certificates.
      APPLICATION_SSL_CERTIFICATE_ACME_CLIENT_DOMAINS: ""
      APPLICATION_SSL_CERTIFICATE_ACME_CLIENT_EMAIL: ""
      APPLICATION_SSL_CERTIFICATE_FILE_CHAIN: ""
      APPLICATION_SSL_CERTIFICATE_FILE_KEY: ""
      APPLICATION_DATABASE_URL: "mysql://smartems:database-password@smartems-database:3306/smartems?serverVersion=mariadb-11.4.7&charset=utf8mb4"
      APPLICATION_PHPFPM_PM_MAX_CHILDREN: "15"
      APPLICATION_PHP_MAX_FILE_UPLOADS: "20"
      APPLICATION_PHP_UPLOAD_MAX_FILESIZE: "20M"
      APPLICATION_PHP_MEMORY_LIMIT: "256M"
      APPLICATION_PHP_POST_MAX_SIZE: "20M"
      APPLICATION_PHP_MAX_INPUT_TIME: "60"
      APPLICATION_PHP_MAX_EXECUTION_TIME: "60"
      APPLICATION_PHP_TIMEZONE: "Europe/Berlin"
      # Using SSL connection with MySQL requires configuring MySQL server as well. APPLICATION_MYSQL_* variables are used by application (client)
      # MySQL CA certificate for SSL connection - leave empty to disable, or set location of file in "smartems-volume-filestorage" that contains CA certificate in the PEM format
      APPLICATION_MYSQL_SSL_CA: ""
      # Should client verify servers certificate (true or false)
      APPLICATION_MYSQL_SERVER_VALIDATION: "true"
      # MySQL client private key to authenticate MySQL user e.g. ALTER USER 'alice'@'%' REQUIRE X509;
      # Leave empty to disable, or set location of file in "smartems-volume-filestorage" that contains client private key in the PEM format
      APPLICATION_MYSQL_SSL_KEY: ""
      # MySQL client certificate to authenticate MySQL user e.g. ALTER USER 'alice'@'%' REQUIRE X509;
      # Leave empty to disable, or set location of file in "smartems-volume-filestorage" that contains client certificate in the PEM format
      APPLICATION_MYSQL_SSL_CERT: ""
      # For more information check documentation and https://mariadb.com/kb/en/securing-connections-for-client-and-server/
      
      # Disable default redirect from HTTP to HTTPS by setting this value to "true"
      APPLICATION_DISABLE_HTTPS_REDIRECT: "false"
      # For more details see: https://symfony.com/doc/5.4/deployment/proxies.html
      APPLICATION_TRUSTED_PROXIES: ""
      # If docker container is behind proxy or load balancer it might be useful to setup trusted proxies so symfony will get host from X-FORWARDED-FOR-HOST header and ClientIp from X-FORWARDED-FOR
      # by default trusted_headers are set to "forwarded,x-forwarded-for,x-forwarded-host,x-forwarded-proto,x-forwarded-port,x-forwarded-prefix"
      APPLICATION_TRUSTED_HEADERS: ""
      # Trusted hosts limits request's hostname that application will respond to
      # If the incoming request's hostname doesn't match one of the regular expressions in this list, the application won't respond and the user will receive a 400 response
      # e.g. if set to "\.welotec\.com$,\.welotec\.de$" only hostnames which end with welotec.com or welotec.de will be served
      # For more details see: https://symfony.com/doc/5.4/reference/configuration/framework.html#trusted-hosts
      APPLICATION_TRUSTED_HOSTS: ""

      # HTTP Server headers for CORS
      # Leave empty to disable adding specific header type to HTTP servers response
      # For more details see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Credentials
      APPLICATION_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS: ""
      APPLICATION_HEADER_ACCESS_CONTROL_ALLOW_HEADERS: ""
      APPLICATION_HEADER_ACCESS_CONTROL_ALLOW_METHODS: ""
      APPLICATION_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: ""
      # For downloading files application uses 'Content-Security-Policy, Strict-Transport-Security, Content-Disposition' headers
      # For uploading files application (TUS server) requires 'Upload-Key, Upload-Checksum, Upload-Length, Upload-Offset, Upload-Metadata, Tus-Version, Tus-Resumable, Tus-Extension, Location' headers
      APPLICATION_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS: ""
      APPLICATION_HEADER_ACCESS_CONTROL_MAX_AGE: ""
      APPLICATION_HEADER_CROSS_ORIGIN_EMBEDDER_POLICY: ""
      APPLICATION_HEADER_CROSS_ORIGIN_OPENER_POLICY: ""
      APPLICATION_HEADER_CROSS_ORIGIN_RESOURCE_POLICY: ""
      APPLICATION_HEADER_X_CONTENT_TYPE_OPTIONS: ""
      APPLICATION_HEADER_X_FRAME_OPTIONS: ""
      # If no value is set, the default value will be used "max-age=63072000"
      APPLICATION_HEADER_STRICT_TRANSPORT_SECURITY: ""
      # This value will override deprecated APPLICATION_CONTENT_SECURITY_POLICY_HEADER
      # The HTTP Content-Security-Policy response header controls resources the user agent is allowed to load
      # Example values:
      # 'frame-ancestors "none";'
      # 'frame-ancestors "self" https://www.example.org;'
      # 'img-src "none"; frame-ancestors "self" https://www.example.org;'
      APPLICATION_HEADER_CONTENT_SECURITY_POLICY: 'frame-ancestors "none";'
      TZ: "Europe/Berlin"

  smartems-database:
    container_name: "smartems-database-3.5.1"
    image: mariadb:11.4.7
    restart: always
    networks:
      - "smartems-network"
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
      MYSQL_DATABASE: "smartems"
      MYSQL_USER: "smartems"
      MYSQL_PASSWORD: "database-password"
      TZ: "Europe/Berlin"
    volumes:
      - "smartems-volume-database:/var/lib/mysql"

networks:
  smartems-network:
    name: "smartems-network-"
    driver: bridge

volumes:
  smartems-volume-filestorage:
    name: "smartems-volume-filestorage"

  smartems-volume-archive:
    name: "smartems-volume-archive"

  smartems-volume-database:
    name: "smartems-volume-database-"

⁠Disclaimer

As a service provider we are responsible according to § 7 Abs.1 TMG for our own contents on these pages according to the general laws. According to §§ 8 to 10 TMG, we are not obliged to monitor transmitted or stored third-party information or to investigate circumstances that indicate illegal activity. Obligations to remove or block the use of information in accordance with general laws remain unaffected by this. However, liability in this respect is only possible from the time of knowledge of a concrete violation of the law. As soon as we become aware of such infringements, we will remove the content immediately.

Liability for links

Our offer contains links to external websites of third parties on whose contents we have no influence. Therefore, we cannot assume any liability for these external contents. The respective provider or operator of the pages is always responsible for the contents of the linked pages. The linked pages were checked for possible legal infringements at the time of linking. Illegal contents were not recognisable at the time of linking.

A permanent control of the contents of the linked pages is not reasonable without concrete evidence of an infringement. As soon as we become aware of any legal infringements, we will remove such links immediately.

Copyright

The contents and works on these pages created by the site operators are subject to German copyright law. Duplication, processing, distribution and any form of commercialization of such material beyond the scope of the copyright law shall require the prior written consent of its respective author or creator. Downloads and copies of these pages are only permitted for private, non-commercial use.

Insofar as the content on this site was not created by the operator, the copyrights of third parties are respected. In particular, contents of third parties are marked as such. Should you nevertheless become aware of a copyright infringement, please inform us accordingly. As soon as we become aware of any infringements, we will remove such content immediately.

Tag summary

Content type

Image

Digest

sha256:a7a597fb5…

Size

69.6 MB

Last updated

3 months ago

docker pull welotec/smartems:3.5.2