• Categories
  • Recent
  • Tags
  • Popular
  • Register
  • Login
  • Categories
  • Recent
  • Tags
  • Popular
  • Register
  • Login

Trouble with MC v2 install on RPi 4

Scheduled Pinned Locked Moved General Discussion
12 Posts 2 Posters 918 Views 1 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    wint0178
    last edited by jkandasa 23 Apr 2024, 13:38

    I am getting stuck in the final steps of installing MC server V2 on my RPi 4. After I have docker, influxdb, MQTT all instlalled and running on the Pi I can see they are running in my docker by running the following command "docker ps".

    I then attempt to install the MyController server, but it doesnt work. Near the end of the instructions I wrote and copied below, I am not able to start the MC server after editing the yaml file in nano. Any help would be greatly appreciated.


    Install Raspberry Pi OS 64-bit
    Start and setup with necessary updates
    Open Terminal and Web Browser
    In Web BRowser, go to www.mycontroller.org, www.forum.mycontroller.org, and https://get.docker.com
    In www.mycontroller.org, click on "Documentation" and navigate to "Install Docker"
    In terminal activate root user by typing
    sudo su

    Install Docker
    Begin installation of Docker by typing the following commands one at a time with enter after each
    'curl -fsSL https://get.docker.com -o install-docker.sh
    cat install-docker.sh
    sh install-docker.sh --dry-run
    sh install-docker.sh'

    (this one may take a few minutes, wait for "root@raspberrypi:/# to reappear)
    usermod -aG docker admin
    (if your non root user is "admin")
    systemctl enable docker.service
    systemctl start docker.service
    systemctl is-active docker.service
    (should return "active")

    Make MC Portable
    So that you are able to move your server from location to location, you will need to setup a Docker network to manage the changing IP addresses
    Enter the following in terminal:
    docker network create mycontroller

    Install InfluxDB
    Follow the instructions under "Install InfluxDB" for installation within Docker at www.mycontroller.org
    Enter the following text commands in terminal with enter after each.
    1.(this one may take a few minutes, wait for "root@raspberrypi:/# to reappear)
    mkdir -p /opt/apps/influxdb
    cd /opt/apps/influxdb

    docker run --rm influxdb:1.8.4 influxd config > influxdb.conf

    Open File Manager and navigate to /opt/apps/influxdb/influxdb.conf, double click to open and verify that it has roughly 150 lines of text in it.
    In Terminal type
    nano /opt/apps/influxdb/influxdb.conf
    (this should open the same file in terminal and allow you to edit it)
    Using the up and down arrows, scroll down to the line that reads "[monitor]" and change the following from
    store-enabled = true
    to
    store-enabled = false
    press control-O followed by enter to save
    press control-X to exit the nano editor

    Enter the following into terminal
    1. (to return to the highest level of the file directory)
    cd /
    2. (this one may take a few minutes, wait for "root@raspberrypi:/# to reappear)
    mkdir -p /opt/apps/influxdb/influxdb_data cd /opt/apps/influxdb

    docker run --detach --name mc_influxdb \
    --network mycontroller \
    --publish 8086:8086 \
    --volume $PWD/influxdb_data:/var/lib/influxdb \
    --volume $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro \
    --env TZ="Asia/Kolkata" \
    --restart unless-stopped \
    influxdb:1.8.4]

    Verify that the influxdb container is running in docker with the following code in terminal
    docker ps
    (this should show a list of running containers, only influxdb should appear right now)

    To see the Docker logs type in the following
    docker logs mc_influxdb
    To stop the influxdb in docker typle
    docker stop mc_influxdb
    To restart the influxdb in docker type
    docker restart mc_influxdb
    To uninstall influxdb in docker type
    docker stop mc_influxdb
    docker rm mc_influxdb

    Install natsio
    At www.mycontroller.org go to "Install natsio" and follow the directions as follows
    Type the following into Terminal
    cd /
    (the following will cause the Pi to download a few different things and install them, it can take a few minutes)
    docker run --detach --name mc_natsio \
    --network mycontroller \
    --publish 4222:4222 \
    --env TZ="Asia/Kolkata" \
    --restart unless-stopped \
    nats:2.2.2-alpine
    Verify that the natsio container is running in docker with the following code in terminal
    docker ps
    (this should show a list of running containers, only influxdb and natsio should appear right now)

    To see docker logs type the following
    docker logs mc_natsio
    To stop natsio type
    docker stop mc_natsio
    To restart natsio type
    docker restart mc_natsio
    To uninstall natsio type

    Install MQTT Broker in Docker
    at www.mycontroller.org navigate to "Install Mosquitto MQTT Broker" and follow the instructions as follows
    In terminal type the following commands to install the broker in docker
    # create mosquitto.conf
    mkdir -p /opt/apps/mosquitto
    cd /opt/apps/mosquitto

    cat << EOF > mosquitto.conf
    allow_anonymous true
    persistence false
    persistence_location /mosquitto/data/
    EOF
    (With the following, Pi will download some files which could take a little while)
    mkdir -p /opt/apps/mosquitto
    cd /opt/apps/mosquitto

    docker run -d --name mc_mosquitto \
    --network mycontroller \
    --publish 1883:1883 \
    --publish 9001:9001 \
    --volume $PWD/mosquitto.conf:/mosquitto/config/mosquitto.conf \
    --restart unless-stopped \
    eclipse-mosquitto:1.6.9
    Verify that the MQTT container is running in docker with the following code in terminal
    docker ps
    (this should show a list of running containers, influxdb, natsio, and MQTT should appear)

    To see docker logs type the followings
    docker logs mc_mosquitto
    To stop MQTT broker type
    docker stop mc_mosquitto
    To restart MQTT broker type
    docker restart mc_mosquitto
    To uninstall MQTT broker type
    docker stop mc_mosquitto
    docker rm mc_mosquitto

    Installing MyController Server v2.0
    AT www.mycontroller.org, navigate to "Install with container image" and follow the directions as follows
    Return to the root directory by typing
    cd /
    into terminal
    In terminal type the following commands to install MC v2
    mkdir -p /opt/apps/mycontroller/mc_home
    mkdir -p /opt/apps/mycontroller/mc_home/secure_share
    mkdir -p /opt/apps/mycontroller/mc_home/insecure_share
    Change your dirrectory and get the defaul yaml file
    cd /opt/apps/mycontroller

    curl https://raw.githubusercontent.com/mycontroller-org/backend/v2.0.0/resources/sample-docker-server.yaml \
    --output mycontroller.yaml
    Open the yaml file to edit in nano
    nano /opt/apps/mycontroller/mycontroller.yaml

    Like earlier, the nano command is a terminal-based text editor and you will see a file with many lines of text open in terminal.
    At the top you should see a line that reads something like
    "secret: 5a2f6ff25b0025aeae12ae096363b51a # !!! WARNING: CHANGE THIS SECRET !!!"
    The alpha-numeric secret must be changed to anything with 1 to 32 characters, but remember what you pick.

    Change the yaml file so the database for influxdb points to your machine's IP address as follows:

    bus:
      type: embedded
      topic_prefix: mc_server
      server_url: nats://mc_natsio:4222
      insecure: false
      connection_timeout: 10s
    
    
     metric:
        disabled: false
        type: influxdb
        uri: http://mc_influxdb:8086
        token:
        username:
        password:
        organization_name:
        bucket_name: mycontroller
        batch_size:
        flush_interval: 5s
        query_client_version:
    

    click control-o to save followed by enter
    click control-x to exit nano

    This is where I get hung up, but I'm not sure if I have settings above here incorrect or if there is something wrong with the following install/run commands.

    Start your MyController Server by entering the following text into terminal:

    docker run --detach --name mycontroller \
      --network mycontroller \
      --publish 8080:8080 \
      --publish 8443:8443 \
      --publish 9443:9443 \
      --volume $PWD/mc_home:/mc_home \
      --volume $PWD/mycontroller.yaml:/app/mycontroller.yaml \
      --env TZ="Asia/Kolkata" \ 
      --restart unless-stopped \
      docker.io/mycontroller/server:2.0.0
    

    In your web browser, check to make sure your server is running by going to http://localhost:8080 (or http://<your_ip>:8080)
    This should bring up a MyController login screen where your username AND password are both set to "admin"
    Login to verify that it is working.

    On system restart, resume docker containers with the following commands in terminal
    docker restart mc_influxdb
    docker restart mc_natsio
    docker restart mc_mosquitto
    docker restart

    1 Reply Last reply Reply Quote 0
    • W Offline
      wint0178
      last edited by 23 Apr 2024, 15:46

      Here is a screenshot of the docker system running with influxdb, natsio, and mqtt. Maybe something is wrong here? This was taken immediately after a system restart without running and apps or commands prior.

      dockerimage.png

      J 1 Reply Last reply 24 Apr 2024, 10:54 Reply Quote 0
      • J Offline
        jkandasa @wint0178
        last edited by 24 Apr 2024, 10:54

        @wint0178 What is the log do you see on the mycontroller container?

        docker logs mycontroller
        

        and what is the output of,

        docker ps -a
        

        This is where I get hung up, but I'm not sure if I have settings above here incorrect or if there is something wrong with the following install/run commands.

        Can you please elaborate? Does the terminal hung to return?

        W 5 Replies Last reply 25 Apr 2024, 01:14 Reply Quote 0
        • W Offline
          wint0178 @jkandasa
          last edited by jkandasa 25 Apr 2024, 01:14

          @jkandasa the response to
          docker logs mycontroller
          is Error response from daemon: No such container: mycontroller and the response to
          docker ps -a
          is:

          CONTAINER ID   IMAGE                     COMMAND                  CREATED      STATUS      PORTS                                                                                  NAMES
          8db9b7cb067c   eclipse-mosquitto:1.6.9   "/docker-entrypoint.…"   5 days ago   Up 5 days   0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 0.0.0.0:9001->9001/tcp, :::9001->9001/tcp   mc_mosquitto
          44cb484f6753   nats:2.2.2-alpine         "docker-entrypoint.s…"   5 days ago   Up 5 days   6222/tcp, 0.0.0.0:4222->4222/tcp, :::4222->4222/tcp, 8222/tcp                          mc_natsio
          5c81d7e95d1a   influxdb:1.8.4            "/entrypoint.sh infl…"   5 days ago   Up 5 days   0.0.0.0:8086->8086/tcp, :::8086->8086/tcp                                              mc_influxdb
          
          1 Reply Last reply Reply Quote 0
          • W Offline
            wint0178 @jkandasa
            last edited by 25 Apr 2024, 01:21

            @jkandasa I also checked the docker version as you asked and it is Docker version 26.0.2, build 3c863ff.

            You asked about my timezone, I am in US Central timezone, the same as Chicago.

            I assume if I uninstall docker to try and update it using the code you include in the documentation, as you suggested, that I will also need to reinstall influxdb, natsio, and mqtt. Is that correct?

            Finally, I am not familiar with vim, but I just installed it and will check it out. I'll keep you posted. Thank you for your help!

            1 Reply Last reply Reply Quote 0
            • W Offline
              wint0178 @jkandasa
              last edited by 25 Apr 2024, 01:34

              @jkandasa I opened the /opt/apps/mycontroller/mycontroller.yaml in vim and found it to reflect the changes that I had made in nano, so I made no other changes.

              1 Reply Last reply Reply Quote 0
              • W Offline
                wint0178 @jkandasa
                last edited by 25 Apr 2024, 01:55

                @jkandasa I was just messing with your install from executable binary instructions and I got the MC server running and can pull it up at localhost:8080. When I run docker ps -a I am still getting the same three services running: mqtt, influxdb, and natsio. Is this correct?

                1 Reply Last reply Reply Quote 0
                • W Offline
                  wint0178 @jkandasa
                  last edited by 25 Apr 2024, 02:38

                  @jkandasa the running server on localhost has a warning that the Metrics database is disabled. I assume this has to do with installing MC from the binary, but it feels like progress anyway.

                  J 1 Reply Last reply 25 Apr 2024, 03:12 Reply Quote 0
                  • J Offline
                    jkandasa @wint0178
                    last edited by jkandasa 25 Apr 2024, 03:12

                    @wint0178 Thanks for the details
                    I see you have an trailing space after \ ("--env TZ="Asia/Kolkata" \ "), that leads restart command not found
                    I have updated your timezone and removed the extra space, can you please try the following command to start the MyController server?

                    go to your mycontroller directory(root of mc_home and location of mycontroller.yaml) and run the following command

                    docker run  --detach --name mycontroller \
                      --network mycontroller \
                      --publish 8080:8080 \
                      --publish 8443:8443 \
                      --publish 9443:9443 \
                      --volume $PWD/mc_home:/mc_home \
                      --volume $PWD/mycontroller.yaml:/app/mycontroller.yaml \
                      --env TZ="America/Chicago" \
                      --restart unless-stopped \
                      docker.io/mycontroller/server:2.0.0
                    

                    If it doesn't comes up please run the following command, I just removed the --detach(don't run on background) and added --rm (remove the container on termination)

                    docker run  --rm --name mycontroller \
                      --network mycontroller \
                      --publish 8080:8080 \
                      --publish 8443:8443 \
                      --publish 9443:9443 \
                      --volume $PWD/mc_home:/mc_home \
                      --volume $PWD/mycontroller.yaml:/app/mycontroller.yaml \
                      --env TZ="America/Chicago" \
                      --restart unless-stopped \
                      docker.io/mycontroller/server:2.0.0
                    

                    I assume if I uninstall docker to try and update it using the code you include in the documentation, as you suggested, that I will also need to reinstall influxdb, natsio, and mqtt. Is that correct?

                    Yes, In the docker just removes the containers and creates from fresh.

                    I was just messing with your install from executable binary instructions and I got the MC server running and can pull it up at localhost:8080. When I run docker ps -a I am still getting the same three services running: mqtt, influxdb, and natsio. Is this correct?

                    executable is different than the docker. It will not be come under docker ps command.
                    It executes directly on the host system.
                    I would recommend to use docker version of mycontroller, for the portability and maintainability

                    the running server on localhost has a warning that the Metrics database is disabled. I assume this has to do with installing MC from the binary, but it feels like progress anyway.

                    This is because, executable which is running on outside of docker network and can not resolve the hostname used inside docker. If you replace hostname of mc_natsio, mc_influxdb to localhost on your mycontroller.yaml [1] should work. However, I would recommend to try the docker version of mycontroller.

                    [1] - If you apply this change, it will not work on docker version of mycontroller

                    W 2 Replies Last reply 25 Apr 2024, 16:56 Reply Quote 0
                    • W Offline
                      wint0178 @jkandasa
                      last edited by 25 Apr 2024, 16:56

                      @jkandasa said in Trouble with MC v2 install on RPi 4:

                      @wint0178 Thanks for the details
                      I see you have an trailing space after \ ("--env TZ="Asia/Kolkata" \ "), that leads restart command not found
                      I have updated your timezone and removed the extra space, can you please try the following command to start the MyController server?

                      Thank you so much! It looks like that single space was the issue, I had hoped it was something that simple and silly, but my knowledge is very limited and I don't think I would have figured that out. thanks again! I'll copy the full install instructions I wrote, the the changes you suggested, in a reply below.

                      1 Reply Last reply Reply Quote 1
                      • W Offline
                        wint0178 @jkandasa
                        last edited by wint0178 25 Apr 2024, 17:10

                        @jkandasa Here is the full set of my instructions that just worked.

                        Install Raspberry Pi OS 64-bit
                        Start and setup with necessary updates
                        Open Terminal and Web Browser
                        In Web BRowser, go to www.mycontroller.org, www.forum.mycontroller.org, and https://get.docker.com
                        In www.mycontroller.org, click on "Documentation" and navigate to "Install Docker"
                        In terminal activate root user by typing
                        sudo su

                        Install Docker
                        Begin installation of Docker by typing the following commands one at a time with enter after each
                        curl -fsSL https://get.docker.com -o install-docker.sh
                        cat install-docker.sh
                        sh install-docker.sh --dry-run
                        sh install-docker.sh

                        (this one may take a few minutes, wait for "root@raspberrypi:/# to reappear)
                        (change "admin" below if your root user name is different)
                        usermod -aG docker admin
                        systemctl enable docker.service
                        systemctl start docker.service
                        systemctl is-active docker.service
                        (should return "active")

                        Make MC Portable
                        So that you are able to move your server from location to location, you will need to setup a Docker network to manage the changing IP addresses
                        Enter the following in terminal:
                        docker network create mycontroller

                        Install InfluxDB
                        Follow the instructions under "Install InfluxDB" for installation within Docker at www.mycontroller.org
                        Enter the following text commands in terminal with enter after each.

                        (this one may take a few minutes, wait for "root@raspberrypi:/# to reappear)
                        mkdir -p /opt/apps/influxdb
                        cd /opt/apps/influxdb

                        docker run --rm influxdb:1.8.4 influxd config > influxdb.conf

                        Open File Manager and navigate to /opt/apps/influxdb/influxdb.conf, double click to open and verify that it has roughly 150 lines of text in it.

                        In Terminal type
                        nano /opt/apps/influxdb/influxdb.conf
                        (this should open the same file in terminal and allow you to edit it)

                        Using the up and down arrows, scroll down to the line that reads "[monitor]" and change the following from
                        store-enabled = true
                        to
                        store-enabled = false
                        press control-O followed by enter to save
                        press control-X to exit the nano editor

                        Enter the following into terminal
                        (to return to the highest level of the file directory)
                        cd /

                        (this one may take a few minutes, wait for "root@raspberrypi:/# to reappear)
                        mkdir -p /opt/apps/influxdb/influxdb_data
                        cd /opt/apps/influxdb

                        docker run --detach --name mc_influxdb \
                        --network mycontroller \
                        --publish 8086:8086 \
                        --volume $PWD/influxdb_data:/var/lib/influxdb \
                        --volume $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro \
                        --env TZ="America/Chicago" \
                        --restart unless-stopped \
                        influxdb:1.8.4

                        Verify that the influxdb container is running in docker with the following code in terminal
                        docker ps
                        (this should show a list of running containers, only influxdb should appear right now)

                        (For future reference)
                        To see the Docker logs type in the following
                        docker logs mc_influxdb
                        To stop the influxdb in docker typle
                        docker stop mc_influxdb
                        To restart the influxdb in docker type
                        docker restart mc_influxdb
                        To uninstall influxdb in docker type
                        docker stop mc_influxdb
                        docker rm mc_influxdb

                        Install natsio
                        At www.mycontroller.org go to "Install natsio" and follow the directions as follows
                        Type the following into Terminal
                        cd /

                        The following will cause the Pi to download a few different things and install them, it can take a few minutes.
                        docker run --detach --name mc_natsio \
                        --network mycontroller \
                        --publish 4222:4222 \
                        --env TZ="America/Chicago" \
                        --restart unless-stopped \
                        nats:2.2.2-alpine

                        Verify that the natsio container is running in docker with the following code in terminal
                        docker ps
                        (this should show a list of running containers, only influxdb and natsio should appear right now)

                        (For future reference)
                        To see docker logs type the following
                        docker logs mc_natsio
                        To stop natsio type
                        docker stop mc_natsio
                        To restart natsio type
                        docker restart mc_natsio
                        To uninstall natsio type
                        docker stop mc_natsio
                        docker rm mc_natsio

                        Install MQTT Broker in Docker
                        at www.mycontroller.org navigate to "Install Mosquitto MQTT Broker" and follow the instructions as follows

                        In terminal type the following commands to install the broker in docker
                        # create mosquitto.conf
                        mkdir -p /opt/apps/mosquitto
                        cd /opt/apps/mosquitto

                        cat << EOF > mosquitto.conf
                        allow_anonymous true
                        persistence false
                        persistence_location /mosquitto/data/
                        EOF

                        With the following, Pi will download some files which could take a little while.
                        mkdir -p /opt/apps/mosquitto
                        cd /opt/apps/mosquitto

                        docker run -d --name mc_mosquitto \
                        --network mycontroller \
                        --publish 1883:1883 \
                        --publish 9001:9001 \
                        --volume $PWD/mosquitto.conf:/mosquitto/config/mosquitto.conf \
                        --restart unless-stopped \
                        eclipse-mosquitto:1.6.9

                        Verify that the MQTT container is running in docker with the following code in terminal
                        docker ps
                        (this should show a list of running containers, influxdb, natsio, and MQTT should appear)

                        (For future reference)
                        To see docker logs type the followings
                        docker logs mc_mosquitto
                        To stop MQTT broker type
                        docker stop mc_mosquitto
                        To restart MQTT broker type
                        docker restart mc_mosquitto
                        To uninstall MQTT broker type
                        docker stop mc_mosquitto
                        docker rm mc_mosquitto

                        Installing MyController Server v2.0
                        AT www.mycontroller.org, navigate to "Install with container image" and follow the directions as follows
                        Return to the root directory by typing
                        cd /
                        into terminal

                        In terminal type the following commands to install MC v2
                        mkdir -p /opt/apps/mycontroller/mc_home
                        mkdir -p /opt/apps/mycontroller/mc_home/secure_share
                        mkdir -p /opt/apps/mycontroller/mc_home/insecure_share

                        Change your dirrectory and get the defaul yaml file
                        cd /opt/apps/mycontroller

                        curl https://raw.githubusercontent.com/mycontroller-org/backend/v2.0.0/resources/sample-docker-server.yaml \
                        --output mycontroller.yaml

                        Open the yaml file to edit in nano
                        nano /opt/apps/mycontroller/mycontroller.yaml

                        Like earlier, the nano command is a terminal-based text editor and you will see a file with many lines of text open in terminal.
                        At the top you should see a line that reads something like
                        "secret: 5a2f6ff25b0025aeae12ae096363b51a # !!! WARNING: CHANGE THIS SECRET !!!"
                        The alpha-numeric secret must be changed to anything with 1 to 32 characters, but remember what you pick.

                        Change the yaml file so the database for influxdb points to your machine's IP address as follows:

                        bus:
                        type: embedded
                        topic_prefix: mc_server
                        server_url: nats://mc_natsio:4222
                        insecure: false
                        connection_timeout: 10s

                        metric:
                        disabled: false
                        type: influxdb
                        uri: http://mc_influxdb:8086
                        token:
                        username:
                        password:
                        organization_name:
                        bucket_name: mycontroller
                        batch_size:
                        flush_interval: 5s
                        query_client_version:

                        click control-O to save followed by enter
                        click control-X to exit nano

                        Start your MyController Server by entering the following text into terminal:

                        docker run --detach --name mycontroller \
                        --network mycontroller \
                        --publish 8080:8080 \
                        --publish 8443:8443 \
                        --publish 9443:9443 \
                        --volume $PWD/mc_home:/mc_home \
                        --volume $PWD/mycontroller.yaml:/app/mycontroller.yaml \
                        --env TZ="America/Chicago" \
                        --restart unless-stopped \
                        docker.io/mycontroller/server:2.0.0
                        In your web browser, check to make sure your server is running by going to http://localhost:8080 (or http://<your_ip>:8080)

                        This should bring up a MyController login screen where your username AND password are both set to "admin"
                        Login to verify that it is working.

                        On system restart, if docker and contained services do not automatically resume, use the following commands in terminal
                        docker restart mc_influxdb
                        docker restart mc_natsio
                        docker restart mc_mosquitto
                        docker restart

                        J 1 Reply Last reply 26 Apr 2024, 02:40 Reply Quote 1
                        • J Offline
                          jkandasa @wint0178
                          last edited by 26 Apr 2024, 02:40

                          Thanks @wint0178 !!
                          I will go through the installation documentation and sync with your update.

                          1 Reply Last reply Reply Quote 0
                          2 out of 12
                          • First post
                            2/12
                            Last post

                          0

                          Online

                          622

                          Users

                          531

                          Topics

                          3.4k

                          Posts
                          Copyright © 2015-2025 MyController.org | Contributors | Localization