PHPackages                             anik/portner - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. anik/portner

AbandonedLibrary[CLI &amp; Console](/categories/cli)

anik/portner
============

Portner is a PHP CLI application to store, suggest the ports you're going to use for your docker.

v1.0(8y ago)38MITPHP

Since Jan 5Pushed 8y agoCompare

[ Source](https://github.com/ssi-anik/portner)[ Packagist](https://packagist.org/packages/anik/portner)[ RSS](/packages/anik-portner/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Portner
-------

[](#portner)

Portner is an application that lets you keep track of the ports you are going to assign to a docker container. It is not always possible to remember on which port the application is running. You may try to reassign the port to another application. Here portner may help you in that case. If you start an application you can get the suggestion of ports you want to assign to your services. Later you can search with it.

### Installation

[](#installation)

To install the portner application open your terminal

1. Download portner: `wget https://ssi-anik.github.io/portner/downloads/portner.phar`.
2. Check if the md5sum is same or not `e3b628f1103a245d8f048ccda68e66a6`.
3. Give the file executable permission: `sudo chmod +x portner.phar`.
4. Move the file to `/usr/local/bin` directory so that it can be accessed globally. `sudo mv portner.phar /usr/local/bin/portner`.

### Service

[](#service)

Services are the docker service names like `nginx`, `php`, `mysql`

- Add service: Add new service with the `portner service:add` or `portner sa` command
    - `--name` is required.
    - `--port` is required.
    - `--start-expose-at` optional if the port value is &gt; 1024. Example: `portner service:add --name=elasticsearch --port=9200 --start-expose-at=9201`
- List services: To list the available services use `portner service:list` or `portner sl`

```
+---------------+-------------+---------------------+----------------+
| Service Name  | Actual Port | Host port expose at | Last used port |
+---------------+-------------+---------------------+----------------+
| nginx         | 80          | 8000                |                |
+---------------+-------------+---------------------+----------------+
| apache        | 80          | 9000                |                |
+---------------+-------------+---------------------+----------------+
| mysql         | 3306        | 3306                |                |
+---------------+-------------+---------------------+----------------+
| postgres      | 5432        | 5432                |                |
+---------------+-------------+---------------------+----------------+
| elasticsearch | 9200        | 9201                |                |
+---------------+-------------+---------------------+----------------+

```

- Remove service: To remove a service, you can use `portner service:remove` or `portner sr`
    - `--name` is optional. If omitted then it will show the services you want to remove. Answer with comma seperated index number.

### Application

[](#application)

Applications are the web application or any other application you will be creating. Like, `blog`, `e-commerce` applications.

- Add application: To add an application you'll have to use `portner appliation:add` or `portner aa` command.
    - The `--name` is a must.
    - `--services` is an optional. You can provide multiple comma separated list of available services. If omitted then it will prompt you a question to choose from the available services. It will then suggest you some ports. If you want to overwrite the suggested port just write it. And finally save it.
- Application list To view the list of application you can use `portner application:list` or `portner al`

```
+-------------------+---------------+------------+
| Application name  | Services      | Ports used |
+-------------------+---------------+------------+
| laravel-blog      | nginx         | 8000       |
|                   | mysql         | 3306       |
|                   | elasticsearch | 9201       |
+-------------------+---------------+------------+
| laravel-ecommerce | apache        | 9000       |
|                   | postgres      | 5432       |
|                   | elasticsearch | 9202       |
+-------------------+---------------+------------+

```

- Search application To search an application, you can use `portner application:search` or `portner as`
    - `--name`, to search in name.
    - `--service`, to search in services used.
    - `--port`, to search any specific port.

```
➜ portner as --port=5432
+-------------------+---------------+-------+
| Name              | Services      | Ports |
+-------------------+---------------+-------+
| laravel-ecommerce | apache        | 9000  |
|                   | postgres      | 5432  |
|                   | elasticsearch | 9202  |
+-------------------+---------------+-------+

➜ portner as --service=postgres
+-------------------+---------------+-------+
| Name              | Services      | Ports |
+-------------------+---------------+-------+
| laravel-ecommerce | apache        | 9000  |
|                   | postgres      | 5432  |
|                   | elasticsearch | 9202  |
+-------------------+---------------+-------+

```

- Remove application To remove an application, just type in your terminal: `portner application:remove` or `portner ar`
    - `--name` is an optional. If omitted it will show the available application list to select by index. In both cases you can supply multiple names.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3051d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7180f132fd7bfbbec2083528838f87996e01a6165ef50e58e2f3fcfccda1a834?d=identicon)[ssi-anik](/maintainers/ssi-anik)

---

Top Contributors

[![ssi-anik](https://avatars.githubusercontent.com/u/2676602?v=4)](https://github.com/ssi-anik "ssi-anik (30 commits)")

### Embed Badge

![Health badge](/badges/anik-portner/health.svg)

```
[![Health](https://phpackages.com/badges/anik-portner/health.svg)](https://phpackages.com/packages/anik-portner)
```

###  Alternatives

[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[crazywhalecc/static-php-cli

Build single static PHP binary, with PHP project together, with popular extensions included.

1.8k13.9k](/packages/crazywhalecc-static-php-cli)[matthiasnoback/symfony-console-form

Use Symfony forms for Console command input

368264.8k8](/packages/matthiasnoback-symfony-console-form)[phpcr/phpcr-shell

Shell for PHPCR

721.3M8](/packages/phpcr-phpcr-shell)[madewithlove/license-checker

CLI tool to verify allowed licenses for composer dependencies

54449.8k21](/packages/madewithlove-license-checker)[shel/neos-terminal

Neos CMS Ui terminal for running Eel expressions and other commands

1441.3k](/packages/shel-neos-terminal)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
