{"id":22170229,"url":"https://github.com/saashup/netbox-docker-agent","last_synced_at":"2025-07-26T14:30:34.263Z","repository":{"id":218875196,"uuid":"745454408","full_name":"SaaShup/netbox-docker-agent","owner":"SaaShup","description":"Agent for Netbox Docker Plugin","archived":false,"fork":false,"pushed_at":"2024-11-18T13:24:19.000Z","size":819,"stargazers_count":34,"open_issues_count":7,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-18T15:08:35.527Z","etag":null,"topics":["docker","dockerapi","netbox","nodered","ui"],"latest_commit_sha":null,"homepage":"https://saashup.com","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SaaShup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-19T11:19:49.000Z","updated_at":"2024-11-18T13:23:36.000Z","dependencies_parsed_at":"2024-06-27T17:11:46.037Z","dependency_job_id":"b8fe060e-5a30-4c8f-8015-106f0eec2f53","html_url":"https://github.com/SaaShup/netbox-docker-agent","commit_stats":null,"previous_names":["saashup/netbox-docker-agent"],"tags_count":95,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaaShup%2Fnetbox-docker-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaaShup%2Fnetbox-docker-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaaShup%2Fnetbox-docker-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaaShup%2Fnetbox-docker-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SaaShup","download_url":"https://codeload.github.com/SaaShup/netbox-docker-agent/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227685883,"owners_count":17804134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","dockerapi","netbox","nodered","ui"],"created_at":"2024-12-02T06:39:48.578Z","updated_at":"2025-07-26T14:30:34.257Z","avatar_url":"https://github.com/SaaShup.png","language":"HTML","readme":"# Netbox Docker Agent\n\n[![Code](https://img.shields.io/badge/code-nodered-aa4444)](https://nodered.org/)\n[![Github Issues](http://img.shields.io/github/issues/SaaShup/netbox-docker-agent?color=blue)](https://github.com/SaaShup/netbox-docker-agent/issues)\n[![Github Pull requests](https://img.shields.io/github/issues-pr/SaaShup/netbox-docker-agent?color=green)](https://github.com/SaaShup/netbox-docker-agent/pulls)\n[![MIT license](http://img.shields.io/badge/license-MIT-brightgreen.svg)](http://opensource.org/licenses/MIT)\n\n## Description\n\nAgent to install on the docker server to manage containers though [netbox plugin](https://github.com/SaaShup/netbox-docker-plugin).\n![netbox-docker-agent](https://github.com/SaaShup/netbox-docker-agent/assets/17571692/06f81159-1830-45d2-9cd0-b4a949ab086e)\n\n\n## Settings\n\nGo to the [nodered admin page](http://localhost:1880/nodered) to change the settings.\nYou can define username and password via envionment variable:\n- API_USERNAME \n- API_PASSWORD (NOTE: password should be a hash of node-red admin hash-pw)\n- ADMIN_USERNAME\n- ADMIN_PASSWORD (NOTE: password should be a hash of node-red admin hash-pw)\n\nYou can disable node-red editor by setting ENABLE_EDITOR to any value.\n\nYou can disable docker exec command by setting DISABLE_EXEC to any value.\n\nYou can disable SSL checking by setting DISABLE_SSL_CHECK to any value.\n\n## Clean\n```\ndocker stop netbox-docker-agent\ndocker rm netbox-docker-agent\ndocker image rm saashup/netbox-docker-agent\ndocker volume rm netbox-docker-agent\n```\n## Build\n```\ndocker build -t saashup/netbox-docker-agent .\n```\n## Run\n```\ndocker run -d -p 1880:1880 -v /var/run/docker.sock:/var/run/docker.sock:rw -v netbox-docker-agent:/data --name netbox-docker-agent saashup/netbox-docker-agent\n```\nContainer must have **rw access to the docker unix socket** (/var/run/docker.sock)\n\nA quick and simple way to test is to run `chmod a+rw /var/run/docker.sock`\n\nDefault access is *admin/saashup*\n\n## Contribute\n\n### Run locally\n\nOn the root of the project run:\n\n```\nnpm install\nDATAPATH=. npx node-red -u . -s settings_dev.js\n```\n\n### Run tests locally\n\nOn the root of the project run and the project running locally:\n\n```\nDocker:\ncat ./netbox-docker-agent/tests/hurl/tests.hurl | docker run --rm --network netbox-docker-agent -i ghcr.io/orange-opensource/hurl:latest --test --color --variable host=http://netbox-docker-agent:1880 -u admin:saashup\n\n\nNPM:\nnpm install --include=dev\nnpm run test\n```\n\nThen you can browse http://localhost:1880/nodered. Default access is *admin/saashup*.\n\n## Connect\n\nlog into [ui page](http://localhost:1880) to see your docker assets\n\n![Screenshot from 2024-01-30 18-40-14](https://github.com/SaaShup/netbox-docker-agent/assets/17571692/2437410b-734d-4601-bbd1-745041e08529)\n\n## Upgrading the agent\n\nTo upgrade the agent you have no specific jobs to run. Pull the latest version, stop and rm your container and run it with the same settings (**same config volumes**).\nThe agent has a mechanism to update netbox if it has been upgraded. After an agent upgrade you should see the new agent version on host information page.\n\n## Monitoring\nThe application has a '/metrics' endpoint which can be used with prometheus to monitor if the access on the docker daemon socket is working and if all the containers are up and running.\n\nThe following metrics are currently exposed:\n\n```\n# HELP netbox_docker_agent_container_running Show if a container is running\n# TYPE netbox_docker_agent_container_running gauge\nnetbox_docker_agent_container_running{name=\"example-running\", state=\"running\", status=\"Up 5 seconds (health: starting)\"} 1\n\n# HELP netbox_docker_agent_container_exited Show if a container is exited\n# TYPE netbox_docker_agent_container_exited gauge\nnetbox_docker_agent_container_exited{name=\"example-exited\", state=\"exited\", status=\"Exited (130) 6 months ago\"} 1\n\n# HELP netbox_docker_agent_container_stopped Show if a container is exited\n# TYPE netbox_docker_agent_container_stopped gauge\nnetbox_docker_agent_container_stopped{name=\"example-stopped\", state=\"stopped\", status=\"Stopped\"} 1\n\n# HELP netbox_docker_agent_docker_daemon Show if the connection to the daemon is working\n# TYPE netbox_docker_agent_docker_daemon gauge\nnetbox_docker_agent_docker_daemon{socket=\"/var/run/docker.socket\"} 1\n\n# HELP netbox_docker_agent_netbox_error_response Show the netbox error response counter\n# TYPE netbox_docker_agent_netbox_error_response counter\nnetbox_docker_agent_netbox_error_response{} 0\n```\n\nExample of prometheus configuration:\n\n```\n  - job_name: 'netbox-docker-agent'\n\n    # Override the global default and scrape targets from this job every 5 seconds.\n    scrape_interval: 5s\n\n    static_configs:\n      - targets: ['IP_ADDRESS:1880']\n    metrics_path: \"/metrics\"\n    basic_auth:\n      username: 'admin'\n      password: 'saashup'\n```\n\n## Logs\nCurrently all logs are send to stdout, if netbox send an error message to the agent.\n\nThe format of the error message is the following one:\n```\n${data.name} level=${level[lvl]} version=${data.version} msg=${JSON.stringify(msg.msg)}\n```\n\nThis can be changed by updating inside the INIT flow the \"settings.js template\" and change the logging.console.handler .\n\n# Hosting\nCheck https://saashup.com for more information\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaashup%2Fnetbox-docker-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaashup%2Fnetbox-docker-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaashup%2Fnetbox-docker-agent/lists"}