Skip to content

Latest commit

 

History

History
113 lines (84 loc) · 3.12 KB

File metadata and controls

113 lines (84 loc) · 3.12 KB

Logo

PortNote

Stop juggling spreadsheets and guessing which service uses which port — PortNote gives you a clear, organized view of your entire port landscape. Add your servers and VMs via a sleek web interface, assign and document port usage across all systems, and avoid conflicts before they happen. Built by the developer of CoreControl, PortNote brings structure, clarity, and control to one of the most overlooked parts of your infrastructure.

"Buy Me A Coffee" Sponsor

Screenshots

Login Page: Login Page

Dashboard: Dashboard

Create: Create

Random Port Generator Portgen

Deployment

PortNote uses docker compose for deployment. It is crucial to set up some secrets for the environment to make your deployment work. One could do that by creating a .env file with following content:

JWT_SECRET=# Replace with a secure random string
USER_SECRET=# Replace with a secure random string
LOGIN_USERNAME=# Replace with a username
LOGIN_PASSWORD=# Replace with a custom password

To quickly generate such file, one can execute a following command:

Note: it will overwrite the .env file if it already exists

echo """
JWT_SECRET=$(openssl rand -base64 32)
USER_SECRET=$(openssl rand -base64 32)
LOGIN_USERNAME=some_user
LOGIN_PASSWORD=some_password
""" > .en

Adjust the values to your needs and then run the following compose.yaml:

services:
  web:
    image: haedlessdev/portnote:latest
    ports:
      - "3000:3000"
    env_file: .env
    environment:
      DATABASE_URL: "postgresql://postgres:postgres@172.20.0.2:5432/postgres"
    depends_on:
      db:
        condition: service_started

  agent:
    image: haedlessdev/portnote-agent:latest
    environment:
      DATABASE_URL: "postgresql://postgres:postgres@172.20.0.2:5432/postgres"
    depends_on:
      db:
        condition: service_started

  db:
    image: postgres:17
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Deploy with a command:

docker compose -f compose.yml -d

Tech Stack & Credits

The application is build with:

  • Next.js & Typescript
  • Tailwindcss with daisyui
  • PostgreSQL with Prisma ORM
  • Icons by Lucide
  • and a lot of love ❤️

Star History

Star History Chart

License

Licensed under the MIT License.