{"id":33589466,"url":"https://github.com/twsnmp/twsnmpfk","last_synced_at":"2026-05-26T01:06:51.961Z","repository":{"id":183131545,"uuid":"669644544","full_name":"twsnmp/twsnmpfk","owner":"twsnmp","description":"TWSNMP for Kiosk","archived":false,"fork":false,"pushed_at":"2026-05-25T08:41:18.000Z","size":98220,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-25T09:26:23.912Z","etag":null,"topics":["dashboard","desktop-application","gnmi","golang","ipfix","mqtt-broker","mqtt-server","netflow","network-management","network-monitoring","opentelemetry","opentelemetry-collector","packet-analysis","snmp","syslog","syslog-server","visualizer","wails","wails2"],"latest_commit_sha":null,"homepage":"https://twsnmp.github.io/twsnmpfk/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/twsnmp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["twsnmp"]}},"created_at":"2023-07-23T00:51:27.000Z","updated_at":"2026-05-25T08:41:22.000Z","dependencies_parsed_at":"2023-07-23T03:22:18.206Z","dependency_job_id":"ec9d00b7-4b5f-4819-8159-478f9471479d","html_url":"https://github.com/twsnmp/twsnmpfk","commit_stats":null,"previous_names":["twsnmp/twsnmpfk"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/twsnmp/twsnmpfk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsnmp%2Ftwsnmpfk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsnmp%2Ftwsnmpfk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsnmp%2Ftwsnmpfk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsnmp%2Ftwsnmpfk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twsnmp","download_url":"https://codeload.github.com/twsnmp/twsnmpfk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twsnmp%2Ftwsnmpfk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33499295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T14:31:05.219Z","status":"ssl_error","status_checked_at":"2026-05-25T14:31:02.878Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","desktop-application","gnmi","golang","ipfix","mqtt-broker","mqtt-server","netflow","network-management","network-monitoring","opentelemetry","opentelemetry-collector","packet-analysis","snmp","syslog","syslog-server","visualizer","wails","wails2"],"created_at":"2025-11-29T14:06:20.848Z","updated_at":"2026-05-26T01:06:51.945Z","avatar_url":"https://github.com/twsnmp.png","language":"Go","funding_links":["https://github.com/sponsors/twsnmp"],"categories":["Tools"],"sub_categories":["GUIs"],"readme":"# TWSNMP FK\n\n[日本語版はこちら](README_ja.md)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/twsnmp/twsnmpfk)](https://goreportcard.com/report/github.com/twsnmp/twsnmpfk)\n![GitHub Go version](https://img.shields.io/github/go-mod/go-version/twsnmp/twsnmpfk)\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/twsnmp/twsnmpfk)\n![GitHub License](https://img.shields.io/github/license/twsnmp/twsnmpfk)\n![GitHub Repo stars](https://img.shields.io/github/stars/twsnmp/twsnmpfk?style=social)\n【Built with】\n![Go](https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge\u0026logo=go\u0026logoColor=white)\n![Wails](https://img.shields.io/badge/wails-%23E24329.svg?style=for-the-badge\u0026logo=wails\u0026logoColor=white)\n![Svelte](https://img.shields.io/badge/svelte-%23f1413d.svg?style=for-the-badge\u0026logo=svelte\u0026logoColor=white)\n\nTWSNMP FK is a next-generation Network Management System. It combines the performance of Go, the simplicity of Svelte, and the seamless desktop experience of Wails to provide a lightweight yet powerful observability tool.\n\n![TWSNMP FK](docs/images/en/2026-02-13_04-41-52.png)\n\n---\n\nUltra lightweight SNMP manager.\nTo keep maps and event logs, etc. always visible.\nIt is designed to be used in Windows kiosk mode.\nOf course, it can also be used as a normal application.\n\n![](doc/images/en/2025-03-11_06-29-01.png)\n\n## Document\n\n[English](https://twsnmp.github.io/twsnmpfk/index.html)\n\n## Status\n\nThe following functions will work\n\n- Network map\n- Node list\n- Polling (PING/TCP/HTTP/NTP/DNS/SNMP/gNMI)\n- Event log\n- Syslog reception\n- SNMP TRAP reception\n- ARP monitoring\n- MIB browser\n- PING Confirmation\n- Panel Display\n- Host resource MIB display\n- Wake On LAN support\n- HTML e-mail notification, periodic report\n- AI Analysis\n- NetFlow/IPFIX\n- sFlow\n- gNMI\n- PKI (CA and CRL/OCSP/ACME/SCEP server)\n- SSH Server\n- TCP Log server\n- OpenTelemetry collector\n- MCP Server\n- MQTT Server and Polling\n\n## Build \n\nThe following environment is used for development\n\n - go 1.24 or higher\n - wails 2.9.3 or higher\n - nsis\n - go-task\n\nYou can build it with the following command.\n\n ````\n task\n ````\n\n## Run\n\nDouble-click from the built executable file to drive it as a normal application.\n\n### Special Notes for Linux Environments\n\nIn Linux environments, running the application as a normal user will result in permission errors during startup (e.g., `socket: operation not permitted` when setting up ICMP Ping, or errors when binding to privileged ports under 1024 like 514 for Syslog or 162 for Trap).\n\nTo resolve this securely, **do not run the application directly with `sudo`** (which will break connection to the X11/Wayland display server, preventing the GUI from launching). Instead, grant the executable the required Capabilities to bind to privileged ports and use raw sockets, and then run it as a normal user.\n\nAdditionally, modern Linux distributions (like Ubuntu) do not have the `arp` command installed by default. **You must install the `net-tools` package to use the ARP monitoring feature.**\n\n1. **Grant Capabilities**:\n   ```bash\n   sudo setcap 'cap_net_bind_service,cap_net_raw+ep' ./twsnmpfk\n   ```\n2. **Install ARP Monitoring Tools (net-tools)**:\n   ```bash\n   sudo apt-get update \u0026\u0026 sudo apt-get install -y net-tools\n   ```\n3. **Run as a normal user**:\n   ```bash\n   ./twsnmpfk\n   ```\n\nThis allows the application to perform ping monitoring, ARP monitoring, and receive syslog/traps while properly displaying the GUI interface under your user session.\n\nIt can also be started from the command line by specifying the following parameters:\n\n```\nUsage of twsnmpfk:\n -caCert string\n    \tCA Cert path\n  -clientCert string\n    \tClient cert path\n  -clientKey string\n    \tClient key path\n  -datastore string\n    \tPath to data store directory\n  -kiosk\n    \tKisok mode(frameless and full screen)\n  -lang string\n    \tLanguage(en|jp)\n  -lock string\n    \tDisable edit map and lock page(map or loc)\n  -maxDispLog int\n    \tMax log size to diplay (default 10000)\n  -mcpCert string\n    \tMCP server cert path\n  -mcpKey string\n    \tMCP server key path\n  -mqttCert string\n    \tMQTT server cert path\n  -mqttFrom string\n    \tMQTT client IP\n  -mqttKey string\n    \tMQTT server key path\n  -mqttTCPPort int\n    \tMQTT server TCP port (default 1883)\n  -mqttUsers string\n    \tMQTT user and password\n  -mqttWSPort int\n    \tMQTT server WebSock port (default 1884)\n  -netflowPort int\n    \tNetflow port (default 2055)\n  -notifyOAuth2Port int\n    \tOAuth2 redirect port (default 8180)\n  -otelCA string\n    \tOpenTelementry CA cert path\n  -otelCert string\n    \tOpenTelemetry server cert path\n  -otelGRPCPort int\n    \tOpenTelemetry server gRPC port (default 4317)\n  -otelHTTPPort int\n    \tOpenTelemetry server HTTP port (default 4318)\n  -otelKey string\n    \tOpenTelemetry server key path\n  -ping string\n    \tping mode icmp or udp\n  -sFlowPort int\n    \tsFlow port (default 6343)\n  -sshdPort int\n    \tSSH server port (default 2022)\n  -syslogPort int\n    \tSyslog port (default 514)\n  -tcpdPort int\n    \ttcp server port (default 8086)\n  -trapPort int\n    \tSNMP TRAP port (default 162)\n```\n\n---\n\n| Parameters | Description |\n| --- | --- |\n| dataStore | Datstore Pass |\n| kiosk | Kiosk mode (frameless, full screen) |\n| lock \u003cpage\u003e | disable edit map and show fixed page |\n| Maxdisplog \u003cnumber\u003e | Maximum number of logs (default 10000) |\n| ping \u003cMode\u003e | Ping operation mode (ICMP or UDP) |\n| syslogPort \u003cPORT\u003e | Syslog receiving port (default 514) |\n| trapPort \u003cPort\u003e | SNMP TRAP Reception port (Default 162) |\n| sshdPort \u003cPort\u003e | SSH server port (Default 162) |\n| sshdPort \u003cport\u003e | SSH Server Receive Port (Default 2022)|\n| netflowPort \u003cport\u003e | NetFlow/IPFIX receive port (default 2055)|\n| sFlowPort \u003cport\u003e | sFlow receiving port (default 6343)|\n| tcpdPort \u003cport\u003e | TCP log receiving port (default 8086)|\n| otelCA |OpenTelementry CA cert path|\n| otelCert |OpenTelemetry server cert path|\n| otelGRPCPort |OpenTelemetry server gRPC port (default 4317)|\n| otelHTTPPort |OpenTelemetry server HTTP port (default 4318)|\n| otelKey |OpenTelemetry server key path|\n| mqttTCPPort |MQTT server TCP port (default 1883)|\n| mqttWSPort |MQTT server Websock port (default 1884)|\n| mqttCert |MQTT server cert path|\n| mqttKey |MQTT server key path|\n| mqttFrom |MQTT server Client|\n| mqttUsers |MQTT server User ID and password list|\n| mcpCert |MCP server cert path|\n| mcpKey |MCP server key path|\n| notifyOAuth2Port |OAuth2 redirect port (default 8180)|\n\n## History\n\n### v1.34.0 (2026/05/26)\n\n#### Official Linux Support and Enhancements\n*   **CI Auto-Build \u0026 Release Pipeline**: Added a GitHub Actions workflow (`build-linux.yml`) to automatically build and package the Linux version (`.tar.gz`).\n*   **Ubuntu 24.04 Compatibility in CI**: Upgraded `WebKit2Gtk` to 4.1 to ensure compatibility and smooth building on Ubuntu 24.04 in CI.\n*   **Linux Capability and Execution Instructions**: Added step-by-step instructions to the README and web docs on running twsnmpfk as a standard user with proper Linux Capabilities (`setcap` for `cap_net_bind_service` and `cap_net_raw`) rather than `sudo`.\n*   **ARP Monitoring Dependency**: Documented that `net-tools` is required for Linux ARP monitoring.\n\n#### Cleanup of Deprecated Features\n*   **Removal of Unsupported SNMPv1**: Completely removed SNMPv1 options and controls from map, node, and network configuration UIs.\n*   **Import \u0026 Help Docs Synchronization**: Refactored the v4 map import logic to align with the SNMPv1 deprecation, and updated corresponding English and Japanese help files (`editnetwork.md`, `editnode.md`, `mapconf.md`).\n\n#### UI Improvements and Bug Fixes\n*   **Long URL Menu Layout Fix**: Resolved a layout bug in the node right-click menu where extremely long URLs would squash the associated menu icons.\n*   **Network Report VPanel Port Wrap**: Enhanced the virtual panel (VPanel) under Network/Node reports by introducing customizable Port Wrap and zoom settings.\n\n#### Security and Maintenance\n*   **Vulnerability Mitigations**: Audited and upgraded Go modules and frontend NPM dependencies to patch known security vulnerabilities.\n*   **Framework Updates**: Bumped Wails framework to `v2.12.0` and upgraded TypeScript to `5.5.x`.\n\n#### Documentation and Presentation Slide Updates\n*   **Marp Presentation Theme Fix**: Resolved the \"graph_paper\" theme error in Marp by introducing a local `graph_paper.css` file and registering it in VS Code settings. Regrew and updated the distributable PDF slide manuals.\n*   **Custom Website Headers**: Added a custom head snippet (`head-custom.html`) to the Jekyll-based web docs for easier customization of theme settings, analytics, and OGP metadata.\n\n### v1.33.0 (2026/03/17)\n\n#### SNMPv3 Security Enhancements\n*   **Enhanced Security Modes**: Added support for SHA256/AES128 and SHA512/AES256 authentication and encryption modes, providing stronger security for SNMP monitoring.\n\n#### Map and UI Improvements\n*   **Node IP Display**: Added an option to display node IP addresses directly on the map for easier identification.\n*   **Group Drawing Items**: Introduced new \"group\" (frame/background) drawing items to better organize nodes and areas on the map.\n*   **VPanel Enhancements**: Added zoom control and port wrap control for the virtual panel (VPanel) in both node and network reports.\n*   **Clean Map Style**: Removed the background rectangle for unselected nodes to provide a cleaner and less cluttered map interface.\n\n#### Drawing Item Enhancements\n*   **Opacity Support**: Added support for setting the opacity (transparency) of drawing items.\n*   **Background Image UI**: Improved the user interface for background image settings, making it more intuitive to customize map backgrounds.\n\n#### Security and Maintenance\n*   **Vulnerability Fixes**: Updated Go and npm dependencies to address the latest security concerns.\n\n### v1.32.0 (2026/02/27)\n\n#### AI (LLM) Integration Features\n*   **MIB Browser Enhancements**: Added natural language MIB search and AI-powered MIB object explanation.\n*   **Log Analysis Support**: Integrated AI explanations for NetFlow, Syslog, and SNMP Trap logs.\n*   **Periodic Report Summarization**: Added an AI-driven summary feature for periodic reports to quickly grasp network status.\n*   **Multi-Provider Support**: Supports multiple LLM providers including Gemini (Google AI), OpenAI, Anthropic (Claude), and Ollama (local LLM).\n\n#### Map and Display Improvements\n*   **SVG Format Support**: Added support for SVG node images on maps, ensuring high quality at any scale.\n*   **Node Display Adjustments**: Optimized icon sizing and layout based on node selection status.\n*   **Component Refactoring**: Reusable \"Neko\" animation component for consistent UI across MIB Browser and other views.\n\n#### Security and Maintenance\n*   **Vulnerability Fixes**: Updated Go and npm dependencies to address security concerns.\n*   **Documentation Update**: Separated README into English and Japanese versions for better maintainability.\n*   **Bug Fixes**: Resolved translation issues in LLM settings and fixed minor UI typos.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwsnmp%2Ftwsnmpfk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwsnmp%2Ftwsnmpfk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwsnmp%2Ftwsnmpfk/lists"}