[FutureTech] SmartSpace - the AI driven makerspace

After a bit of testing and the usual blood. sweet. coffee bings. Finally got a mqtt broker to function with a tickstack.

In this release of the CommunityGrid stack one will find a copy of mosca and the haas.io suite of applications. There’s also several automation points and the docker-compose has a bit of a domain language that can be used with other service files to better deploy to the grid.

Next round of upgrades will include nextcloud, owntracks, centralized octoprinter, and robot os.

Further improvements with tensorflow preformaning system analysis and auto provisioning is also planned but these are pending tighter integration with OpenFaaS, Minio, Volumerize, and Drone+Gitea.

Following these integrations ZeroTier would become part of the main entrypoint for services with a potential integration with killbill.

Code

Additional reading

2 Likes

Hi, computer science graduate here. This was hard to read :confused: there’s a lot of jargon on here.

Maybe try to rewrite it once the coffee wears off? :joy: :coffee::coffee::coffee::coffee::coffee::coffee::coffee::coffee::coffee:

it sounds exciting whatever it is!

1 Like

Notification server stack

While mosca (mqtt) is used as a communication backbone within IoT. Having a rest api that one can push and pull Notifications is very helpful. An example of this can be seen in:

Docker Stack file

---
version: '3.7'

volumes:
  gotify_data:

networks:
  default:
    external: true
    name: public

services:

  gotify:
    image: gotify/server
    
    volumes:
      - gotify_data:/app/data
      
    networks:
      default:
        aliases:
          - msgbus
          
    ports:
      - 9080:80/tcp
      
    deploy:
      labels:
        traefik.http.routers.gotify.rules: 'Host: msgbus.mainnet.dapla.net'
        traefik.http.routers.gotify.errors.network.backend: "error"                                                                                                                                                                     
        traefik.http.routers.gotify.errors.network.query: "/"                                                                                                                                                                             
        traefik.http.routers.gotify.errors.network.status: "404,500-511"
        traefik.http.routers.gotify.entrypoints: 'http,https,ws,wss'
        traefik.http.routers.gotify.priority: "5"
        traefik.port: "80"
        orbiter: "true"
        orbiter.up: "3"
        orbiter.down: "1"
        
      restart_policy:
        condition: on-failure
        max_attempts: 3
        delay: 5s
        
      replicas: 1

      rollback_config:
        parallelism: 2
        delay: 10s
        monitor: 10s
        order: start-first
        failure_action: continue

      update_config:
        parallelism: 2
        delay: 10s
        monitor: 10s
        order: start-first
        failure_action: rollback
 
...

OpenFaas has been dropped for favor of Iron Functions. Iron Function is a single go binary that provides functions-as-a-service (ie aws lamdba).

There’s a lot of effort behind OpenFaas and some great tech too so it would be revisited later but for general release the following docker stack is used.

Docker Stack files

---
version: '3.7'

networks:
  default:
    external: true
    name: 'public'

volumes:
    api_data:

services:
  api:
    image: iron/functions:latest
    networks:
      default:
        aliases:
          - api
    deploy:
      replicas: 1
      labels:
        traefik.frontend.priority: 10
        traefik.frontend.rule: 'Host:lambda.mainnet.dapla.net;PathPrefixStrip:/api'
        traefik.port: 8080
        traefik.network: 'public'
    volumes:
      - api_data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 8080

  ui:
    image: iron/functions-ui:0.0.2
    deploy:
      replicas: 1
      labels:
        traefik.frontend.priority: 10
        traefik.frontend.rule: 'Host:lambda.mainnet.dapla.net'
        traefik.port: 4000
        traefik.network: 'public'
    environment:
      API_URL: http://api:8080
    ports:
      - 4000/tcp
    networks:
      default:
  

@brenly Basically think what it takes to setup openstack or all the cool tech that aws offfers but simpler to deploy on any machine(s). Then add in anomaly detection ML with Node-RED codeless automation and homeassistant dashboards then you got a small part of what this whole thread / project is about.

1 Like

I understood about .0000000000001% of that, but I appreciate your enthusiasm, @denzuko!

1 Like

just now seeing this. asynchronous i take it? im trying to grind on asynchronous tech a lot lately. word on the street is some businesses that use dispatch ticket systems are for insane reasons still relying on heavy synchronous systems to send ticket data.

and if that asynchronous info can deploy on ANYTHING then, welp. that’s living in the future aint it.

1 Like