{"id":20270550,"url":"https://github.com/dyrector-io/darklens","last_synced_at":"2025-08-20T19:04:24.347Z","repository":{"id":199477116,"uuid":"699286954","full_name":"dyrector-io/darklens","owner":"dyrector-io","description":"Lightweight container viewer.","archived":false,"fork":false,"pushed_at":"2023-10-25T08:59:09.000Z","size":2485,"stargazers_count":26,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-11T04:12:07.136Z","etag":null,"topics":["container","docker","hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/dyrector-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-02T10:30:28.000Z","updated_at":"2024-08-28T03:17:34.000Z","dependencies_parsed_at":"2023-10-15T09:45:54.538Z","dependency_job_id":"ff598fe7-de51-41a1-8799-a4aad36ee648","html_url":"https://github.com/dyrector-io/darklens","commit_stats":null,"previous_names":["dyrector-io/darklens"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dyrector-io/darklens","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyrector-io%2Fdarklens","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyrector-io%2Fdarklens/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyrector-io%2Fdarklens/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyrector-io%2Fdarklens/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dyrector-io","download_url":"https://codeload.github.com/dyrector-io/darklens/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dyrector-io%2Fdarklens/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271369520,"owners_count":24747795,"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-08-20T02:00:09.606Z","response_time":69,"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":["container","docker","hacktoberfest"],"created_at":"2024-11-14T12:31:20.655Z","updated_at":"2025-08-20T19:04:24.276Z","avatar_url":"https://github.com/dyrector-io.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/darklens_logo_horizontal_transparent.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/darklens_logo_horizontal_light.png\"\u003e\n    \u003cimg alt=\"darklens logo\" src=\"docs/darklens_logo_horizontal_transparent.png\" width=\"400\"\u003e\n    \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cb\u003edocker logs and docker inspect in an easy to use GUI\u003c/b\u003e\u003c/p\u003e\n\n## Use cases\n\n-   **SSH-less Container Monitoring:** You can add as many components of your infrastructure as you like, and check up on the services running in one place without SSH access.\n-   **Centralized View for Container Management:** One user-friendly interface to analyze logs and container configs.\n-   **Goodbye JSON (Hello UI):** Quickly interpretable UI to spare you from untangling data in JSON about your containers.\n\n## Getting started\n\n1. Enter `docker run -p 8000:8000 -p 5000:5000 --name darklens -d ghcr.io/dyrector-io/darklens:latest` in terminal\n2. Open `localhost:8000` in browser\n3. Enjoy!\n\n## Settings\n\nSettings provides various configuration options for running darklens, tailor your darklens deployment to your needs with these settings.\n\n#### Start without Authorization\n\nLaunch Darklens without any authentication or authorization checks. Ideal for quick testing and development.\n\n`docker run -p 8000:8000 -p 5000:5000 -e DISABLE_AUTH=true --name darklens -d ghcr.io/dyrector-io/darklens:latest`\n\n#### Select a stronger JWT secret\n\nEnhance security by specifying a custom JWT secret for authentication.\n\n`docker run -p 8000:8000 -p 5000:5000 -e JWT_SECRET=supersecret --name darklens -d ghcr.io/dyrector-io/darklens:latest`\n\n#### Run on a public domain\n\nConfigure darklens to run on a public domain with options for specifying a public URL and agent address.\n\n`docker run -p 8000:8000 -p 5000:5000 -e PUBLIC_URL=example.com AGENT_ADDRESS=example.com:5000 --name darklens -d ghcr.io/dyrector-io/darklens:latest`\n\n\u003e Note: Agents require gRPC port 5000 to connect to the service\n\n#### Persist data\n\nEnsure data persistence by using Docker volumes to store Darklens data.\n\n`docker run -p 8000:8000 -p 5000:5000 -v darklens-data:/var/lib/darklens --name darklens -d ghcr.io/dyrector-io/darklens:latest`\n\n## Agent install\n\n1. Click on the empty card with a plus icon to add a new node\n2. Enter a name for your node and click Save\n    - This'll be the name of the agent running as a container on your node\n3. On the right side of the screen, select whether you'd like to install the agent with a Shell (UNIX) or a PowerShell (Windows) script\n\n\u003e Note: Shell scripts might not work on Windows using Git Bash.\n\n4. Generate the script and copy \u0026 paste it into Shell or PowerShell. Press enter to install the agent\n5. When node status turns green, you're ready to use darklens\n\n\u003e Note: Agents connect to the host defined in their JWT token (`GRPC_TOKEN` environment), by default the `AGENT_ADDRESS` backend environment variable is used, but users can override this value on the UI.\n\n## Development\n\n1. Setup backend\n\n    1. Go to `web/backend`\n    2. Run `npm i`\n    3. Copy `.env.example` to `.env`\n\n2. Setup frontend\n\n    1. Go to `web/frontend`\n    2. Run `npm i`\n    3. Copy `.env.example` to `.env`\n\n3. Setup development Traefik\n\n    1. Go to `web`\n    2. Run `docker compose -f docker-compose.dev.yaml up`\n\n4. Develop\n\n    1. Go to `web/backend` and run `npx prisma migrate dev` to apply migrations then start using `npm start`\n    2. Go to `web/frontend` and run `npm start`\n    3. The app will be available on `localhost:8000`\n\n\u003e Make sure the `dev-traefik` container is running as it routes the traffic between the frontend and the backend\n\n## Contact us\n\nIf you experience any issues, feel free to reach out to us on [Discord](https://discord.gg/pZWbd4fxga).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdyrector-io%2Fdarklens","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdyrector-io%2Fdarklens","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdyrector-io%2Fdarklens/lists"}