{"id":27306329,"url":"https://github.com/rogosprojects/klogs-viewer","last_synced_at":"2026-05-10T16:02:25.940Z","repository":{"id":280535571,"uuid":"942323881","full_name":"rogosprojects/klogs-viewer","owner":"rogosprojects","description":"A lightweight, web-based application to download Kubernetes pod logs. Designed for developers and operators.","archived":false,"fork":false,"pushed_at":"2025-04-03T13:21:21.000Z","size":230,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T03:59:32.431Z","etag":null,"topics":["golang","kubernetes","logs"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rogosprojects.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-03-03T23:42:39.000Z","updated_at":"2025-04-03T13:20:55.000Z","dependencies_parsed_at":"2025-03-04T01:19:14.156Z","dependency_job_id":"a9adde19-b4c6-4ee4-bbf1-15c567c3767e","html_url":"https://github.com/rogosprojects/klogs-viewer","commit_stats":null,"previous_names":["rogosprojects/klogs-viewer"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rogosprojects/klogs-viewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogosprojects%2Fklogs-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogosprojects%2Fklogs-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogosprojects%2Fklogs-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogosprojects%2Fklogs-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rogosprojects","download_url":"https://codeload.github.com/rogosprojects/klogs-viewer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogosprojects%2Fklogs-viewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273961377,"owners_count":25198569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["golang","kubernetes","logs"],"created_at":"2025-04-12T03:59:31.122Z","updated_at":"2026-05-10T16:02:25.922Z","avatar_url":"https://github.com/rogosprojects.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# klogs Viewer\n\n![Go Version](https://img.shields.io/badge/golang-1.23+-blue)\n![License](https://img.shields.io/badge/license-MIT-orange)\n\nKLogs Viewer is a lightweight, web-based application that allows you to view and download Kubernetes pod logs directly in your browser. Designed for developers and operators who need quick access to container logs without using the command line.\n\n![](./doc/screen.png)\n\n## ✨ Features\n\n- **Efficient Table Layout**: View all pods and containers in a single, space-efficient table\n- **Quick Filters**: Filter by namespace, label, or status with a single click\n- **Search Functionality**: Instantly find pods or containers with the search feature\n- **One-click Downloads**: Download container logs with a single click\n- **Real-time Streaming**: Stream logs directly in your browser\n- **Multi-container Support**: Access logs from any container in multi-container pods\n- **Visual Status Indicators**: Clear visual indicators show pod status (Running, Pending, Failed, etc.)\n- **Dark Mode Support**: Comfortable viewing in any lighting condition\n- **Optional Authentication**: Token-based protection for secure deployments\n\n## 🚀 Getting Started\n\n### Deploy with Helm\n```bash\n# Add Helm repository\nhelm repo add rogosprojects https://rogosprojects.github.io/helm\n# Update Helm repositories\nhelm repo update\n# Install\nhelm install klogs-viewer rogosprojects/klogs-viewer\n```\n**Done!** Follow the post-installation message to discover the log page URL.\n\n[Read the full **Helm chart documentation** with default values.yaml](https://rogosprojects.github.io/helm/charts/klogs-viewer/)\n\n### Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `NAMESPACE` | Kubernetes namespace to monitor | Default namespace |\n| `POD_LABELS` | Comma-separated list of pod label selectors | `app=*` |\n| `TOKEN` | Optional authentication token | (none) |\n| `REPLACE_LABEL` | Custom label replacement pattern | `app=` |\n| `BASE_PATH` | Base path for the application | `/logs` |\n\n#### Rate Limiting Configuration\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `RATE_LIMIT` | Number of requests allowed per minute per IP | `10` |\n| `RATE_BURST` | Maximum burst size allowed | `20` |\n| `VISITOR_TTL` | Time (in minutes) to keep inactive clients in memory | `60` |\n| `CLEANUP_INTERVAL` | Frequency (in minutes) to clean up inactive clients | `60` |\n\n#### WebSocket Security Configuration\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `ALLOWED_ORIGINS` | Comma-separated list of origins allowed to connect via WebSocket | Same-origin only |\n\n## 🔒 Security\n\nWhen deploying to production, we recommend:\n\n1. Setting the `TOKEN` environment variable for authentication\n2. Using a specific namespace rather than cluster-wide access\n3. Deploying behind an ingress with TLS\n4. Configuring appropriate rate limits for your expected traffic patterns\n5. Setting appropriate origin restrictions for WebSocket connections:\n   - For single-domain deployments: leave `ALLOWED_ORIGINS` empty to enforce same-origin policy\n   - For multi-domain deployments: set `ALLOWED_ORIGINS` to a comma-separated list of allowed domains\n   - For testing/development only: set `ALLOWED_ORIGINS=*` (not recommended for production)\n\n\n## 🛠️ Building from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/rogosprojects/klogs-viewer.git\ncd klogs-viewer\n\n# Build the Docker image\ndocker build -t klogs-viewer:latest .\n\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogosprojects%2Fklogs-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frogosprojects%2Fklogs-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogosprojects%2Fklogs-viewer/lists"}