Balena Supervisor: balena's agent on devices.
Go to file
2015-10-13 13:43:35 -03:00
automation Take the ARCH param from jenkins, so that the different archs can be separate projects (and parallelise builds) 2015-10-13 13:39:38 -03:00
bin Preserve docker env in terminal session 2015-10-13 13:43:34 -03:00
src Make use of resin-register-device 2015-10-13 13:42:25 -03:00
tools/dind Change perms for vpn-init. Update README. 2015-10-13 13:43:35 -03:00
.dockerignore Allow running the supervisor in the devenv using docker in docker. 2015-10-13 13:42:23 -03:00
.editorconfig add editor config 2015-10-13 13:39:37 -03:00
.gitattributes Add a .gitattributes file to make sure files for use on linux have linux style line-endings. 2015-10-13 13:03:14 -03:00
.gitignore Ignore config.json 2015-10-13 13:43:35 -03:00
01_nodoc Save space by using a dpkg config to avoid installing unnecessary docs/locales. 2015-10-13 13:36:13 -03:00
CHANGELOG.md Use JOBS=MAX for npm install 2015-10-13 13:43:34 -03:00
coffeelint.json add coffeelint 2015-10-13 13:39:37 -03:00
Dockerfile.amd64 Use JOBS=MAX for npm install 2015-10-13 13:43:34 -03:00
Dockerfile.armv7hf Use JOBS=MAX for npm install 2015-10-13 13:43:34 -03:00
Dockerfile.i386 Use JOBS=MAX for npm install 2015-10-13 13:43:34 -03:00
Dockerfile.rpi Use JOBS=MAX for npm install 2015-10-13 13:43:34 -03:00
entry.sh User Supervisord for logging 2015-10-13 13:28:00 -03:00
Makefile Pull super from DEPLOY_REGISTRY. Add make stop-supervisor 2015-10-13 13:43:35 -03:00
package.json Update pinejs-client so that valid ssl certificates are enforced by default. 2015-10-13 13:43:34 -03:00
postinstall.sh Save space by removing more npm install artifacts. 2015-10-13 13:36:13 -03:00
README.md Change perms for vpn-init. Update README. 2015-10-13 13:43:35 -03:00
resin-supervisor.conf no updates 2015-10-13 13:34:23 -03:00

Running supervisor in the dev env

Deploy your local version to the devenv registry

If you haven't done so yet, login to the devenv registry: docker login registry.resindev.io Use username "resin" and the registry's default login details if you haven't changed them. make ARCH=i386 deploy This will build the image if you haven't done it yet. A different registry can be specified with the DEPLOY_REGISTRY env var.

Set up config

Edit tools/dind/config.json to contain the values for a staging config.json. Example (replace the first four values from a staging config for your own app):

{
    "applicationId": "1939",
    "apiKey": "saf987fasXKPz82anHASGAlovP",
    "userId": "141",
    "username": "gh_pcarranzav",
    "deviceType": "raspberry-pi2",
    "files": {
        "network/settings": "[global]\nOfflineMode=false\n\n[WiFi]\nEnable=true\nTethering=false\n\n[Wired]\nEnable=true\nTethering=false\n\n[Bluetooth]\nEnable=true\nTethering=false",
        "network/network.config": "[service_home_ethernet]\nType = ethernet\nNameservers = 8.8.8.8,8.8.4.4"
    }
}

Start the supervisor instance

make ARCH=i386 run-supervisor

This will setup a docker-in-docker instance with an image that runs the supervisor image from the devenv registry (registry.resindev.io). A different registry can be specified with the DEPLOY_REGISTRY env var.

View the containers logs

logs supervisor -f

View the supervisor logs

enter supervisor
tail /var/log/supervisor-log/resin_supervisor_stdout.log -f

Stop the supervisor

make stop-supervisor This will unmount /var/lib/docker in the container and then stop it. This prevents future failures due to no loopback devices being available.