{"id":21660041,"url":"https://github.com/slub/switchconfig","last_synced_at":"2025-10-11T06:10:46.588Z","repository":{"id":114115439,"uuid":"176239853","full_name":"slub/switchconfig","owner":"slub","description":"Web GUI to configure Cisco switches via SSH (Maintained by @schorschii)","archived":false,"fork":false,"pushed_at":"2025-05-13T14:51:39.000Z","size":2683,"stargazers_count":42,"open_issues_count":0,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-13T15:54:55.754Z","etag":null,"topics":["cisco","ssh","switch","webapp"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2019-03-18T08:45:57.000Z","updated_at":"2025-05-13T14:51:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"f5c91a49-f541-4700-9625-3b5434ad9a4d","html_url":"https://github.com/slub/switchconfig","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/slub/switchconfig","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slub%2Fswitchconfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slub%2Fswitchconfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slub%2Fswitchconfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slub%2Fswitchconfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slub","download_url":"https://codeload.github.com/slub/switchconfig/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slub%2Fswitchconfig/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006455,"owners_count":26084107,"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-10-11T02:00:06.511Z","response_time":55,"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":["cisco","ssh","switch","webapp"],"created_at":"2024-11-25T09:32:04.924Z","updated_at":"2025-10-11T06:10:46.583Z","avatar_url":"https://github.com/slub.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Switchconfig\nWeb application for managing Cisco switches via SSH\n\n## Features\n- assign description, VLAN and VoIP-capability to a switchport\n  - trunk ports are hidden by default to avoid accidentally changes on those ports\n- webserver connects to switches via SSH\n- create maps with the position of your switches\n- overview over the usage of your switch using the port matrix or port list\n- mac address search\n- bulk password change for one user account on all switches\n- optimized for mobile devices\n- dark mode!!\n\n## Dependencies\n- Server\n  - Linux-based operating system (Debian/Ubuntu recommended)\n  - Apache2 webserver\n  - PHP 7 or 8 with `php-ssh2` package\n- Client\n  - Chromium-based browser or Firefox\n  - JavaScript enabled\n\n## Setup\n1. Install packages (example for Debian): `apt install apache2 php php-ssh2`\n2. Copy all files into your webserver directory\n3. Make sure `AllowOverride All` is set in your Apache config for the webserver directory, in order to deny access to the \"maps\" directory for non-authenticated users (see `.htaccess` file in this directory).\n4. Create/Edit the config file `config.php` (please refer to the explanation and example in the file `config.php.example`)\n   - add the vlans you need to the array __VISIBLE_VLAN__\n   - add the switches you want to manage to the array __SWITCHES__ (at least one)\n   - (optional) set the __VOICE_VLAN__ (integer)\n   - (optional) enable the password change feature\n   - (optional) create maps using the array __MAPS__\n5. Open `index.php` in your browser, log in with an SSH account on your switch and your LDAP account if configured.\n\n## Docker\nDocker is currently used/recommended for development/testing purposes only.\n\nCreate your config file `config.php` as described above, the execute:\n```\ndocker compose down\ndocker compose build --no-cache\ndocker compose up\n```\n\n## Hardening Recommendations\n- Please only use HTTPS (except you are accessing the site only via localhost). Redirect all HTTP requests to HTTPS.\n- Keep your server always up to date.\n- Limit the access (via Apache config) to IP addresses that really need it.\n- Do not make this webapp available on the internet (to avoid brute force attacks) - configure your Apache and/or firewall to only serve this page inside your internal network.\n\n## Other Recommendations\n- LDAP Authentication: You can configure your switches to ask a RADIUS server (which can for example authenticate against an LDAP/AD server) for authenticating the SSH connections.\n\n## Compatibility Note\nThis application parses the SSH response from your switch. Therefore, your switch has to produce output in a specific format as shown in `docs/Example-SSH-Output.txt` in order to be compatible with this application. Please check if your switch supports the necessary commands (and syntax) in the example file and if it produces similar output.\n\n## Custom Webdesign\nTo apply a custom (corporate) design, you can create a file `css/custom.css` which will be included in the HTML head automatically. With this, you can e.g. easily change the logo: `#logo { background-image: url('mylogo.png') }`.\n\n## Feedback\nI'm interested if your switch model is compatible (or not) with this application. Please let me know on Github (make an Issue) or via email. Thanks!\n\n## Screenshots\n![Main Page](img/screenshot/main.png)\n![Port List](img/screenshot/list.png)\n![Port Matrix](img/screenshot/matrix.png)\n![MAC search](img/screenshot/search.png)\n\n## Third-Party Components\n- SVG-Loader by SamHerbert, MIT License  \n  https://github.com/SamHerbert/SVG-Loaders\n- Material Icons, Apache License 2.0  \n  https://material.io/tools/icons\n- Switch \u0026 Key Icons from draw.io  \n  https://draw.io\n\n## License\nGPL v3, see LICENSE.txt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslub%2Fswitchconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslub%2Fswitchconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslub%2Fswitchconfig/lists"}