BSD Ports

net-mgmt/netbox 4.6.10 FreeBSD

IP address management tool

System
FreeBSD
Repository
FreeBSD ports
Maintainer
[email protected]
Last update
Commit
a3e0d2815a
License
APACHE20
Categories
net-mgmt, python
Package size
14540.0 KiB, 49255.4 KiB installed

Description

NetBox is an open source web application designed to help manage and document computer networks. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It encompasses the following aspects of network management:

  • IP address management (IPAM) - IP networks and addresses, VRFs, and VLANs
  • Equipment racks - Organized by group and site
  • Devices - Types of devices and where they are installed
  • Connections - Network, console, and power connections among devices
  • Virtualization - Virtual machines and clusters
  • Data circuits - Long-haul communications circuits and providers

In the other systems

SystemPortVersion
FreeBSDnet-mgmt/netbox4.6.10
DragonFlynet-mgmt/netbox4.2.9

Install

Binary package:

pkg install netbox

From the ports tree:

cd /usr/ports/net-mgmt/netbox/ && make install clean

To depend on this port in another port's Makefile:

RUN_DEPENDS=	netbox>0:net-mgmt/netbox

Packages

The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.

Repositoryaarch64amd64armv6armv7i386
FreeBSD:14:latest4.6.104.6.10-4.3.64.6.10
FreeBSD:14:quarterly4.6.104.6.10n/a4.3.74.6.10
FreeBSD:15:latest4.6.104.6.10n/a4.3.64.3.7
FreeBSD:15:quarterly4.6.104.6.10n/an/an/a
FreeBSD:16:latest4.6.104.6.10n/an/an/a
FreeBSD:16:quarterlyn/an/an/an/an/a

Dependencies

As this port's Makefile names them.

Runtime 47

The full lists below include those, and their dependencies in turn.

Build dependencies 10
Run dependencies 235

The first 100 are listed.

No port depends on this one.

Configuration

Options name: net-mgmt_netbox

OptionDefaultDescription
EXAMPLESoffBuild and/or install examples
GIToffGit backend support
LDAPoffLDAP backend support
S3offAmazon S3 backend support
SENTRYoffSentry monitoring support
USES
cpe pgsql:14+ python:3.12+
Service scripts
none

Message after installing

Please note that NetBox requires a PostgreSQL database server, which uses its
built-in network address datatypes. Thus NetBox won't work with other RDBMS's,
e.g. MySQL, MariaDB, etc.

For installation instructions please refer to the related wiki page:

- https://wiki.freebsd.org/Ports/net-mgmt/netbox

As always it is strongly encouraged to make a backup of the database before the
database migrations will be executed.

The following steps are required to finish the upgrade: 

1. Run database migrations, trace any missing cable paths, build the embedded
   documentation, collect static files, remove stale content files, delete any
   expired user sessions and clear the cache.

# cd /usr/local/share/netbox
# python3.12 manage.py migrate
# python3.12 manage.py trace_paths --no-input
# zensical build
# python3.12 manage.py collectstatic --no-input
# python3.12 manage.py remove_stale_contenttypes --no-input
# python3.12 manage.py reindex --lazy
# python3.12 manage.py clearsessions

2. Restart WSGI/httpd environment (supervisord/apache/nginx/etc.)

1. The NetBox 3.6 release contains some breaking changes, so the following
   items should be checked before upgrading:

   * PostgreSQL 11 is no longer supported (dropped in Django 4.2). NetBox v3.6
     requires PostgreSQL 12 or later.

   * The "device_role" field on the Device model has been renamed to "role".
     The "device_role" field has been temporarily retained on the REST API
     serializer for devices for backward compatibility, but is read-only.

   * The "choices" array field has been removed from the CustomField model.
     Any defined choices are automatically migrated to CustomFieldChoiceSets,
     accessible via the new "choice_set" field on the CustomField model.

   * The "napalm_driver" and "napalm_args" fields (which were deprecated in v3.5)
     have been removed from the Platform model.

   * The "device" and "device_id" filter for interfaces will no longer include
     interfaces from virtual chassis peers. Two new filters,
     "virtual_chassis_member" and "virtual_chassis_member_id", have been
     introduced to match all interfaces belonging to the specified device's
     virtual chassis (if any).

   * Reports and scripts are now returned within a "results" list when fetched via
     the REST API, consistent with other models.

   * Superusers can no longer retrieve API token keys via the web UI if
     ALLOW_TOKEN_RETRIEVAL is disabled. (The admin view has been removed
     per #13044.)

2. The following dependencies are now optional and have therefore been moved to
   corresponding options. An exception is the LDAP option, which has been added
   for the sake of completeness, because this backend has been around for a
   good while:

   * devel/py-dulwich			-> non-default GIT option
   * www/py-dj42-django-auth-ldap	-> non-default LDAP option
   * www/py-boto3			-> non-default S3 option

1. The NetBox 3.7 release contains some breaking changes, so the following
   items should be checked before upgrading:

   * The following fields have been removed from the Webhook model:

     "content_types", "type_create", "type_update", "type_delete",
     "type_job_start", "type_job_end", "enabled", and "conditions".

     Webhooks are now tied to events via event rules. New event rules will be
     created for any existing webhooks automatically upon upgrade.

   * The "ui_visibility" field on the custom field model has been replaced with
     two new fields: "ui_visible" and "ui_editable".

     These new fields will have their values mapped from the original field
     automatically upon upgrade.

   * The "FeatureQuery" class used internally for querying content types by
     model feature has been removed. It has been replaced by the new
     "with_feature()" manager method on NetBox's proxy model for ContentType
     ("core.models.ContentType").

   * The internal ConfigRevision model has moved from "extras" to "core".
     Configuration history will be retained throughout the upgrade process.

   * The L2VPN and L2VPNTermination models have moved from the "ipam" app to
     the new "vpn" app. All object data will be retained, however please note
     that the relevant API endpoints have likewise moved to "/api/vpn/".

   * The "CustomFieldsMixin", "SavedFiltersMixin", and "TagsMixin" classes
     have moved from the "extras.forms.mixins" module to
     "netbox.forms.mixins".

   * The "netbox.models.features.WebhooksMixin" class has been renamed
     to "EventRulesMixin".

2. The following dependency is now optional and has therefore been converted
   to a corresponding SENTRY option:

   * devel/py-sentry-sdk	-> non-default SENTRY option

3. Please note that the command "python3.12 manage.py clearcache" has
   been removed.

   The general update instructions in this pkg-message and the netbox sample rc
   script (available via the EXAMPLES option) have also been updated
   accordingly.

The NetBox 4.0 release contains major changes, so at least items 1.) and 2.)
must be checked before proceeding with the upgrade.

1. NetBox v4.0 requires Python 3.10 or later.

2. Following items should be checked as well:

    * The format for GraphQL query filters has changed.  Please see the
      GraphQL documentation for details and examples.

    * The deprecated "device_role" & "device_role_id" filters for devices have
      been removed.  (Use "role" and "role_id" instead.)

    * The obsolete "device_role" field has been removed from the REST API
      serializer for devices.  (Use "role" instead.)

    * The legacy reports functionality has been dropped. Reports will be
      automatically converted to custom scripts on upgrade.

    * The "parent" and "parent_id" filters for locations now return only
      immediate children of the specified location.  (Use "ancestor" and
      "ancestor_id" to return all descendants.)

    * The "object_type" field on the "CustomField" model has been renamed to
      "related_object_type".

    * The "utilities.utils module" has been removed and its resources
      reorganized into separate modules organized by function.

    * The obsolete "NullableCharField" class has been removed.  (Use Django's
      stock "CharField" class with "null=True" instead.)

    * The "annotated_date" template filter and "annotated_now" template tag
      have been removed.

1. The NetBox 4.1 release contains some breaking changes, so the following
   items should be checked before upgrading:

   * Several filters deprecated in v4.0 have been removed.

   * The unit size for "VirtualMachine.disk" and "VirtualDisk.size" has been
     changed from 1 gigabyte to 1 megabyte. Existing values will be adjusted
     automatically during the upgrade process.

   * The "min_vid" and "max_vid" fields on the VLAN group model have been
     replaced with "vid_ranges", an array of starting and ending VLAN ID pairs.

   * The five individual event type fields on the "EventRule" model have been
     replaced by a single "event_types" array field, which lists applicable
     event types by name.

   * All UI views & API endpoints associated with change records have been
     moved from "/extras" to "/core".

   * The "validate()" method on "CustomValidator" subclasses now must accept
     the request argument.

1. The NetBox 4.2 release contains some breaking changes, so the following
   items should be checked before upgrading:

   * Support for the Django admin UI has been completely removed.  (The Django
     admin UI was disabled by default in NetBox v4.0.)

   * This release drops support for PostgreSQL 12.  PostgreSQL 13 or later is
     required to run this release.

   * NetBox has adopted collation-based natural ordering for many models.  This
     may alter the order in which some objects are listed by default.

   * Automatic redirects from pre-v4.1 UI views for virtual disks have been
     removed.

   * The site and provider_network foreign key fields on
     "circuits.CircuitTermination" have been replaced by the "termination"
     generic foreign key.

   * The "site" foreign key field on "ipam.Prefix" has been replaced by the
     "scope" generic foreign key.

   * The "site" foreign key field on "virtualization.Cluster" has been replaced
     by the "scope" generic foreign key.

   * The "circuit" foreign key field on "circuits.CircuitGroupAssignment" has
     been replaced by the "member" generic foreign key.

   * Obsolete nested REST API serializers have been removed.  These were
     deprecated in NetBox v4.1 under #17143.

1. The NetBox 4.3 release contains some breaking changes, so the following
   items should be checked before upgrading:

   * This release drops support for PostgreSQL 13.  PostgreSQL 14 or later is
     required to run this release.

2. Following items should be checked as well:

   * The GraphQL API now uses an advanced syntax for filtering, to enable e.g.
     logical AND/OR filtering and custom field lookups.

   * The ALLOW_TOKEN_RETRIEVAL configuration parameter now defaults to False.

   * The "device" and "virtual_machine" foreign keys on the "Service" model
     have been replaced with a generic parent relationship to support the
     assignment of services to FHRP groups as well.

   * The group foreign key on the "Contact" model has been replaced with a
     many-to-many groups field.

   * "django-storages" is now a required dependency.  (It will be installed
     automatically on upgrade via www/py-dj52-django-storages.)

   * "PluginTemplateExtension" no longer supports registration via the singular
     model attribute (use models instead).

   * The legacy staged changes functionality has been removed.

1. With the NetBox 4.5 release Python 3.10 and 3.11 are officially no longer
   supported.  The whole code can still be compiled without any problems using
   Python 3.11, which is the current default version in the ports tree.

   Therefore, the minimum version for Python doesn't need to be raised for the
   time being, but this may change at any time as soon as backward-incompatible
   changes to the code lands into upstream for the next release.

   Thus, no further action is required at this time. However, it's still
   recommended to upgrade to Python 3.12 or newer in the near future.

2. Following items should be checked as well:

   * GraphQL API queries which filter by object IDs or enums must now specify a
     filter lookup similar to other fields. For example, "id: 123" becomes
     "id: {exact: 123 }".

   * Rendering a device or virtual machine configuration is now restricted to
     users with the render_config permission for the applicable object type.

   * Retrieval of API token plaintexts is no longer supported. The
     ALLOW_TOKEN_RETRIEVAL config parameter has been removed.

   * API tokens can no longer be reassigned from one user to another.

   * A config context assigned to a platform will now also apply to any
     children of that platform. (Although this is typically desired behavior,
     it may introduce unanticipated changes for existing deployments.)

   * The /api/dcim/cable-terminations/ REST API endpoint is now read-only.
     Cable terminations must be set on cables directly via the
     /api/dcim/cables/ endpoint.

   * The UI view dedicated to swapping A/Z circuit terminations has been
     removed.

   * The experimental HTMX navigation feature has been removed.

   * The obsolete boolean field is_staff has been removed from the User model.

   * Removal of deprecated behavior:

     * The /api/extras/object-types/ REST API endpoint has been removed.
       (Use /api/core/object-types/ instead.)

     * Webhooks no longer specify a model in payload data. (Reference
       "object_type" instead, which includes the parent app label.)

     * The obsolete module core.models.contenttypes has been removed (replaced
       in v4.4 by core.models.object_types).

     * The load_yaml() and load_json() utility methods have been removed from
       the base class for custom scripts.

1. NetBox 4.6 requires Python 3.12 or newer.

2. Please note that the command to build to offline documentation has been
   changed from "mkdocs build" to "zensical build".

   The general update instructions in this pkg-message and the netbox sample rc
   script (available via the EXAMPLES option) have also been updated
   accordingly.

Files

pkg-plist 2179
  • share/examples/netbox/850.netbox-housekeeping.sample
  • share/examples/netbox/apache.conf
  • share/examples/netbox/gunicorn.py
  • share/examples/netbox/netbox_rq.sample
  • share/examples/netbox/netboxrc.sample
  • share/examples/netbox/nginx.conf
  • share/netbox/account/__init__.py
  • share/netbox/account/migrations/0001_initial.py
  • share/netbox/account/migrations/__init__.py
  • share/netbox/account/models.py
  • share/netbox/account/urls.py
  • share/netbox/account/views.py
  • share/netbox/circuits/__init__.py
  • share/netbox/circuits/api/__init__.py
  • share/netbox/circuits/api/serializers.py
  • share/netbox/circuits/api/serializers_/__init__.py
  • share/netbox/circuits/api/serializers_/circuits.py
  • share/netbox/circuits/api/serializers_/nested.py
  • share/netbox/circuits/api/serializers_/providers.py
  • share/netbox/circuits/api/urls.py
  • share/netbox/circuits/api/views.py
  • share/netbox/circuits/apps.py
  • share/netbox/circuits/choices.py
  • share/netbox/circuits/constants.py
  • share/netbox/circuits/filtersets.py
  • share/netbox/circuits/forms/__init__.py
  • share/netbox/circuits/forms/bulk_edit.py
  • share/netbox/circuits/forms/bulk_import.py
  • share/netbox/circuits/forms/filtersets.py
  • share/netbox/circuits/forms/model_forms.py
  • share/netbox/circuits/graphql/__init__.py
  • share/netbox/circuits/graphql/enums.py
  • share/netbox/circuits/graphql/filter_mixins.py
  • share/netbox/circuits/graphql/filters.py
  • share/netbox/circuits/graphql/schema.py
  • share/netbox/circuits/graphql/types.py
  • share/netbox/circuits/migrations/0001_squashed.py
  • share/netbox/circuits/migrations/0002_squashed_0029.py
  • share/netbox/circuits/migrations/0003_squashed_0037.py
  • share/netbox/circuits/migrations/0038_squashed_0042.py
  • share/netbox/circuits/migrations/0043_circuittype_color.py
  • share/netbox/circuits/migrations/0044_circuit_groups.py
  • share/netbox/circuits/migrations/0045_circuit_distance.py
  • share/netbox/circuits/migrations/0046_charfield_null_choices.py
  • share/netbox/circuits/migrations/0047_circuittermination__termination.py
  • share/netbox/circuits/migrations/0048_circuitterminations_cached_relations.py
  • share/netbox/circuits/migrations/0049_natural_ordering.py
  • share/netbox/circuits/migrations/0050_virtual_circuits.py
  • share/netbox/circuits/migrations/0051_virtualcircuit_group_assignment.py
  • share/netbox/circuits/migrations/0052_extend_circuit_abs_distance_upper_limit.py
  • share/netbox/circuits/migrations/0053_owner.py
  • share/netbox/circuits/migrations/0054_cable_connector_positions.py
  • share/netbox/circuits/migrations/0055_add_comments_to_organizationalmodel.py
  • share/netbox/circuits/migrations/0056_gfk_indexes.py
  • share/netbox/circuits/migrations/0057_default_ordering_indexes.py
  • share/netbox/circuits/migrations/0058_clear_stale_cable_profile_data.py
  • share/netbox/circuits/migrations/0059_nullify_empty_cable_end.py
  • share/netbox/circuits/migrations/__init__.py
  • share/netbox/circuits/models/__init__.py
  • share/netbox/circuits/models/base.py
  • share/netbox/circuits/models/circuits.py
  • share/netbox/circuits/models/providers.py
  • share/netbox/circuits/models/virtual_circuits.py
  • share/netbox/circuits/search.py
  • share/netbox/circuits/signals.py
  • share/netbox/circuits/tables/__init__.py
  • share/netbox/circuits/tables/circuits.py
  • share/netbox/circuits/tables/columns.py
  • share/netbox/circuits/tables/providers.py
  • share/netbox/circuits/tables/virtual_circuits.py
  • share/netbox/circuits/tests/__init__.py
  • share/netbox/circuits/tests/query_counts.json
  • share/netbox/circuits/tests/test_api.py
  • share/netbox/circuits/tests/test_filtersets.py
  • share/netbox/circuits/tests/test_forms.py
  • share/netbox/circuits/tests/test_models.py
  • share/netbox/circuits/tests/test_signals.py
  • share/netbox/circuits/tests/test_tables.py
  • share/netbox/circuits/tests/test_views.py
  • share/netbox/circuits/ui/__init__.py
  • share/netbox/circuits/ui/panels.py
  • share/netbox/circuits/urls.py
  • share/netbox/circuits/views.py
  • share/netbox/core/__init__.py
  • share/netbox/core/api/__init__.py
  • share/netbox/core/api/schema.py
  • share/netbox/core/api/serializers.py
  • share/netbox/core/api/serializers_/__init__.py
  • share/netbox/core/api/serializers_/change_logging.py
  • share/netbox/core/api/serializers_/data.py
  • share/netbox/core/api/serializers_/jobs.py
  • share/netbox/core/api/serializers_/object_types.py
  • share/netbox/core/api/serializers_/tasks.py
  • share/netbox/core/api/urls.py
  • share/netbox/core/api/views.py
  • share/netbox/core/apps.py
  • share/netbox/core/checks.py
  • share/netbox/core/choices.py
  • share/netbox/core/constants.py
  • share/netbox/core/data_backends.py

The first 100 are listed.

distinfo 1
FileSizeSHA256
netbox-community-netbox-v4.6.10_GH0.tar.gz2.0193561e+07b619f7eca409dc94707faf7b9c38e1dc9c476b7c88c312f91b66182124d997e4

Commit history 8

DateCommitCreditsLog message
a3e0d2815a Kai Knoblich net-mgmt/netbox: Relax requirements for py-redis
* With py-redis 8.0, the default protocol is changed from RESP2 to RESP3 (= REdis Serialization Protocol), which causes problems with Redis < 6.0. Although Redis 5.x is officially supported up to NetBox version 4.6.10 it has been End-of-Life for a long time and is no longer available in the ports tree. * Therefore, based on these circumstances, adjust the upper limit for py-redis preemptively so as not to unnecessarily block its updates to the next major version.
692d93480b Kai Knoblich net-mgmt/netbox: Update to 4.6.10
Changelog: Performance Improvements: * Prefetch the related fields of nested serializers referenced by SerializedPKRelatedField * Include reverse many-to-many relationships when determining REST API prefetches Bug Fixes: * Support the selection of multiple values when filtering VLAN groups by scope (e.g. by site group) * Gracefully handle invalid values assigned to a custom script's Meta attributes * Reference brief components in the OpenAPI response schemas for nested SerializedPKRelatedField fields * Expand the active navigation menu section when resizing from a mobile to a desktop viewport * Omit the cache-busting query parameter from signed static file URLs (e.g. when using S3 storage) * Fix the validation error raised when removing the scope assigned to a VLAN group …
735c9a8d59 Kai Knoblich net-mgmt/netbox: Update to 4.6.9
Changelog: Enhancements: * Add InfiniBand 4X interface types * Add an interface type for HPE Synergy interconnect links * Restrict images in rendered Markdown to HTTP(S) and relative URLs * Add a 100GBase-X-SFP112 interface type Performance Improvements: * Prefetch cable terminations to avoid N+1 queries when fetching cables via the GraphQL API Bug Fixes: * Prevent a server error when bulk import validation raises an error referencing a field omitted from the import data * Avoid loading all associated jobs into memory when deleting a custom script or other job-bearing object * Restore the monospace font for text areas on the config revision form * Honor the saving database connection in the scope propagation signal handlers …
fe377ff384 Kai Knoblich net-mgmt/netbox: Update to 4.6.8
Changelog: Performance Improvements: * Avoid N+1 queries when resolving generic relations (e.g. assigned objects) via the GraphQL API * Improve performance when provisioning new custom fields * Omit implicit pagination when prefetching to-one relations via the GraphQL API * Improve caching logic when retrieving custom fields via get_for_model() Bug Fixes: * Clear a device's stale rack assignment when changing its site * Enforce object permissions on custom script write operations via the REST API * Avoid re-executing the LDAP configuration file on every permission check * Prevent the deletion of a tenant group from creating duplicate tenant names or slugs * Fix cable path tracing for paths which originate from a circuit termination and traverse only pass-through ports …
dd7576137f Kai Knoblich net-mgmt/netbox: Update to 4.6.7
Changelog: Performance Improvements: * Skip cached scope rebuild for sites and locations when scope fields are unchanged * Avoid extraneous database queries when fetching custom field data via the GraphQL API * Avoid an extra database query when including rack reservation units via the GraphQL API * Avoid extraneous database queries when fetching the IP address or prefix family via the GraphQL API Bug Fixes: * Correctly evaluate IP availability for users whose permissions are constrained by a custom field on a related object * Filter circuit group assignments by member type to avoid displaying assignments belonging to a virtual circuit with the same ID https://github.com/netbox-community/netbox/releases/tag/v4.6.7 MFH: 2026Q3

The latest 5 of 8 in the history this site was built from.