netbox-docker/README.md

162 lines
6.7 KiB
Markdown
Raw Permalink Normal View History

# netbox-docker
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/netbox-community/netbox-docker)][github-release]
[![GitHub stars](https://img.shields.io/github/stars/netbox-community/netbox-docker)][github-stargazers]
![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed-raw/netbox-community/netbox-docker)
2020-01-23 02:35:30 -06:00
![Github release workflow](https://img.shields.io/github/workflow/status/netbox-community/netbox-docker/release)
![Docker Pulls](https://img.shields.io/docker/pulls/netboxcommunity/netbox)
[![MicroBadger Layers](https://img.shields.io/microbadger/layers/netboxcommunity/netbox)][netbox-docker-microbadger]
[![MicroBadger Size](https://img.shields.io/microbadger/image-size/netboxcommunity/netbox)][netbox-docker-microbadger]
[![GitHub license](https://img.shields.io/github/license/netbox-community/netbox-docker)][netbox-docker-license]
2019-02-07 02:49:11 -06:00
[The Github repository](netbox-docker-github) houses the components needed to build Netbox as a Docker container.
2019-07-30 06:45:08 -05:00
Images are built using this code and are released to [Docker Hub][netbox-dockerhub] once a day.
Do you have any questions? Before opening an issue on Github, please join the [Network To Code][ntc-slack] Slack and ask for help in our [`#netbox-docker`][netbox-docker-slack] channel.
2018-09-27 02:44:14 -05:00
[github-stargazers]: https://github.com/netbox-community/netbox-docker/stargazers
[github-release]: https://github.com/netbox-community/netbox-docker/releases
[netbox-docker-microbadger]: https://microbadger.com/images/netboxcommunity/netbox
2019-02-06 04:24:01 -06:00
[netbox-dockerhub]: https://hub.docker.com/r/netboxcommunity/netbox/tags/
[netbox-docker-github]: https://github.com/netbox-community/netbox-docker/
2018-09-27 02:44:14 -05:00
[ntc-slack]: http://slack.networktocode.com/
[netbox-docker-slack]: https://slack.com/app_redirect?channel=netbox-docker&team=T09LQ7E9E
2020-01-23 03:26:21 -06:00
[netbox-docker-license]: https://github.com/netbox-community/netbox-docker/blob/release/LICENSE
## Docker Tags
* `vX.Y.Z`: Release builds, built from [releases of Netbox][netbox-releases].
* `latest`: Release builds, built from [`master` branch of Netbox][netbox-master].
* `snapshot`: Pre-release builds, built from the [`develop` branch of Netbox][netbox-develop].
* `develop-X.Y`: Pre-release builds, built from the corresponding [branch of Netbox][netbox-branches].
Then there is currently one extra tags for each of the above labels:
* `-ldap`: Contains additional dependencies and configurations for connecting Netbox to an LDAP directroy.
[Learn more about that in our wiki][netbox-docker-ldap].
[netbox-releases]: https://github.com/netbox-community/netbox/releases
[netbox-master]: https://github.com/netbox-community/netbox/tree/master
[netbox-develop]: https://github.com/netbox-community/netbox/tree/develop
[netbox-branches]: https://github.com/netbox-community/netbox/branches
[netbox-docker-ldap]: https://github.com/netbox-community/netbox-docker/wiki/LDAP
## Quickstart
To get Netbox up and running in Docker:
```bash
git clone -b release https://github.com/netbox-community/netbox-docker.git
cd netbox-docker
docker-compose pull
docker-compose up -d
```
The application will be available after a few minutes.
2017-12-26 16:03:02 -06:00
Use `docker-compose port nginx 8080` to find out where to connect to.
```bash
2017-12-26 16:03:02 -06:00
$ echo "http://$(docker-compose port nginx 8080)/"
http://0.0.0.0:32768/
# Open netbox in your default browser on macOS:
2017-12-26 16:03:02 -06:00
$ open "http://$(docker-compose port nginx 8080)/"
# Open netbox in your default browser on (most) linuxes:
2017-12-26 16:03:02 -06:00
$ xdg-open "http://$(docker-compose port nginx 8080)/" &>/dev/null &
```
2018-03-08 02:52:35 -06:00
Alternatively, use something like [Reception][docker-reception] to connect to _docker-compose_ projects.
The default credentials are:
* Username: **admin**
* Password: **admin**
* API Token: **0123456789abcdef0123456789abcdef01234567**
There is a more complete [Getting Started guide on our Wiki][wiki-getting-started].
[wiki-getting-started]: https://github.com/netbox-community/netbox-docker/wiki/Getting-Started
2019-02-06 04:24:01 -06:00
[docker-reception]: https://github.com/nxt-engineering/reception
2017-10-16 06:09:17 -05:00
## Dependencies
2019-11-26 05:27:25 -06:00
This project relies only on *Docker* and *docker-compose* meeting these requirements:
2017-10-16 06:09:17 -05:00
* The *Docker version* must be at least `17.05`.
* The *docker-compose version* must be at least `1.17.0`.
2017-10-16 06:09:17 -05:00
To check the version installed on your system run `docker --version` and `docker-compose --version`.
2017-10-16 06:09:17 -05:00
## Documentation
Please refer [to our wiki on Github][netbox-docker-wiki] for further information on how to use this Netbox Docker image properly.
It covers advanced topics such as using secret files, deployment to Kubernetes as well as NAPALM and LDAP configuration.
[netbox-docker-wiki]: https://github.com/netbox-community/netbox-docker/wiki/
2018-04-04 02:50:17 -05:00
## Netbox Version
2017-10-16 06:33:12 -05:00
2019-02-06 04:24:01 -06:00
The `docker-compose.yml` file is prepared to run a specific version of Netbox.
2017-10-16 06:33:12 -05:00
To use this feature, set the environment-variable `VERSION` before launching `docker-compose`, as shown below.
`VERSION` may be set to the name of
2019-02-06 04:24:01 -06:00
[any tag of the `netboxcommunity/netbox` Docker image on Docker Hub][netbox-dockerhub].
2017-10-16 06:33:12 -05:00
```bash
export VERSION=v2.7.1
docker-compose pull netbox
docker-compose up -d
2017-10-16 06:33:12 -05:00
```
2019-10-13 09:00:42 -05:00
You can also build a specific version of the Netbox Docker image yourself.
`VERSION` can be any valid [git ref][git-ref] in that case.
2017-10-16 06:33:12 -05:00
```bash
export VERSION=v2.7.1
2019-10-13 09:00:42 -05:00
./build.sh $VERSION
docker-compose up -d
2017-10-16 06:33:12 -05:00
```
[git-ref]: https://git-scm.com/book/en/v2/Git-Internals-Git-References
[netbox-github]: https://github.com/netbox-community/netbox/releases
2019-05-08 04:43:29 -05:00
## Breaking Changes
From time to time it might become necessary to re-engineer the structure of this setup.
Things like the `docker-compose.yml` file or your Kubernetes or OpenShift configurations have to be adjusted as a consequence.
Since November 2019 each image built from this repo contains a `org.opencontainers.image.version` label.
(The images contained labels since April 2018, although in November 2019 the labels' names changed.)
You can check the label of your local image by running `docker inspect netboxcommunity/netbox:v2.7.1 --format "{{json .Config.Labels}}"`.
Please read [the release notes][releases] carefully when updating to a new image version.
[releases]: https://github.com/netbox-community/netbox-docker/releases
2019-02-06 04:46:20 -06:00
## Rebuilding the Image
2019-02-06 04:24:01 -06:00
`./build.sh` can be used to rebuild the Docker image. See `./build.sh --help` for more information.
For more details on custom builds [consult our wiki][netbox-docker-wiki-build].
[netbox-docker-wiki-build]: https://github.com/netbox-community/netbox-docker/wiki/Build
### Pre-made Docker Images
New Docker images are built and published every 24h.
2019-02-06 04:46:20 -06:00
## Tests
We have a test script.
It runs Netbox's own unit tests and ensures that all initializers work:
```bash
IMAGE=netboxcommunity/netbox:latest ./test.sh
```
## About
2019-02-06 04:46:20 -06:00
This repository is currently maintained and funded by [nxt][nxt].
[nxt]: https://nxt.engineering/en/