A lightweight GUI application for monitoring and managing open ports on your system.
Replace repetitive terminal commands like ss, netstat, or lsof.
- Port Monitoring: Real-time monitoring of TCP/UDP ports
- Process Details: View detailed information about processes using ports
- Port Management: Terminate processes associated with specific ports
- Search & Filter: Search by port number, process name, or filter by protocol
- Configurable: YAML-based configuration for customization
- Export: Export port data to CSV/JSON formats
- Cross-platform: Built with Fyne for Linux, macOS, and Windows
nocta/
├── cmd/nocta/ # Application entry point
├── internal/ # Private application code
│ ├── config/ # Configuration management
│ ├── gui/ # GUI components and application
│ ├── logger/ # Structured logging
│ ├── models/ # Data models and types
│ ├── scanner/ # Port scanning logic
│ └── service/ # Business logic layer
├── pkg/ # Public libraries
├── configs/ # Default configuration files
└── README.md
- Clone the repository:
git clone https://github.com/yofabr/nocta.git
cd nocta- Build the application:
go build ./cmd/nocta- Run the application:
./noctaYou can install Nocta by downloading the latest release tarball:
- Download the tar file:
wget https://github.com/yofabr/nocta/releases/download/v1.0.0/nocta.tar.xz- Extract the archive:
tar -xf nocta.tar.xz- Run the installer
make install- Enter the extracted directory and run the application:
cd nocta
./noctaNote: Make sure the
noctafile is executable. If not, runchmod +x nocta.
Nocta uses YAML configuration stored at ~/.config/nocta/config.yaml. The default configuration includes:
gui:
width: 900
height: 520
split: 0.35
refresh:
interval: 30
auto: false
filter:
default_protocol: ALL
show_closed: false
notifications:
enabled: false
on_new: true
on_close: true- View Ports: Launch Nocta to see all active network ports
- Search: Use the search bar to filter by port number or process name
- Protocol Filter: Filter ports by TCP, UDP, or view all
- Port Details: Click on any port to see detailed information
- Terminate: Use the Terminate button to stop processes (when available)
- Refresh: Click the refresh button or enable auto-refresh for updates
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
