portreg

command module
v0.0.0-...-75f82e0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2025 License: MIT Imports: 1 Imported by: 0

README

portreg

portreg is a tool to track what ports have been assigned to what services and projects. It is primarily useful for developers who have many projects that may be running concurrently. In these cases where multiple databases and web servers may be running at the same time it is useful to have a way to assign ports to projects and to remember the assignment.

This differs from tools that dynamically find an open port as portreg is designed to be used once when the project is first set up on a developer machine. Dynamically assigning a port is often insufficient because the port may be specified in a way where dynamic assignment is inconvenient. e.g. when the port is needed by server and a client.

Installation

$ go install github.com/jackc/portreg@latest

Usage

init

The init command initializes a portreg registry file.

$ portreg init

Options:

  • registry - override path to port registry file
assign

The assign command is used to assign an unused port. It records the assigned port and prints it to stdout.

$ portreg assign
12345

Options:

  • port - specific port to assign
  • description - description of project or service the port is assigned to
  • path - path to project the port is assigned to
  • registry - override path to port registry file
unassign

The unassign command is used to unassign a port.

$ portreg unassign 12345

Options:

  • registry - override path to port registry file
list

The list command is used to list all assigned ports.

$ portreg list
PORT  DESCRIPTION                               PATH
----  -----------                               ----
3100  My service                                /Users/jack/dev/foo
3103  My service 2                              /Users/jack/dev/bar

Options:

  • registry - override path to port registry file

Registry

The registry file is stored by default in $HOME/.portreg.json.

Example file:

{
  "assignments": [
    {
      "port": 5678,
      "description": "description",
      "path": "/path/to/project"
    },
    {
      "port": 5689
    }
  ],
  "blockedPorts": [
    {
      "ports": "3000-3010",
      "description": "common Ruby on Rails ports"
    }
    {
      "port": "5432",
      "description": "default PostgreSQL port"
    }
  ]
}

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL