{"id":19233774,"url":"https://github.com/ossrs/aapanel-plugin-dev","last_synced_at":"2026-06-27T06:30:14.603Z","repository":{"id":186433394,"uuid":"675157436","full_name":"ossrs/aapanel-plugin-dev","owner":"ossrs","description":"Plugin develop environment for aapanel.com","archived":false,"fork":false,"pushed_at":"2024-04-10T03:07:23.000Z","size":6033,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-05T00:44:39.256Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/ossrs.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2023-08-06T01:27:39.000Z","updated_at":"2024-10-29T09:04:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"d81c5e10-9674-4b74-8fef-8c96ffc6e16b","html_url":"https://github.com/ossrs/aapanel-plugin-dev","commit_stats":null,"previous_names":["ossrs/aapanel-plugin-dev"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossrs%2Faapanel-plugin-dev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossrs%2Faapanel-plugin-dev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossrs%2Faapanel-plugin-dev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossrs%2Faapanel-plugin-dev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ossrs","download_url":"https://codeload.github.com/ossrs/aapanel-plugin-dev/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240310873,"owners_count":19781341,"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","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":[],"created_at":"2024-11-09T16:11:51.046Z","updated_at":"2026-06-27T06:30:14.517Z","avatar_url":"https://github.com/ossrs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aapanel-plugin-dev\n\nPlugin develop environment for [aaPanel](https://www.aapanel.com)\n\n## Usage\n\nInstall venv:\n\n```bash\npython3 -m venv venv\nsource venv/bin/activate\npip install -r www/server/panel/requirements.txt\n```\n\nFor PyCharm, add `class` to path, then run `test.py` in PyCharm:\n\n* Open `PyCharm \u003e Settings \u003e Project \u003e Python Interpreter` tab.\n* Click the list of interpreters, then click `Show All` item.\n* Choose the `venv` and click `Show Interpreter Paths` icon.\n* Click `+` and add the `www/server/panel/class` to path.\n\nFor CLI, setup the `PYTHONPATH` and run `test.py` in CLI:\n\n```bash\nexport PYTHONPATH=$(pwd)/www/server/panel/class\npython test.py\n#setup path: /www/server\n```\n\nNow you are able to develop the `example` plugin, or link srs-stack and develop it:\n\n```bash\nln -sf ~/git/srs-stack/scripts/setup-bt\nln -sf ~/git/srs-stack/scripts/setup-aapanel\n```\n\nThen, run aaPanel docker and mount the plugin to the container.\n\n## Docker\n\nCreate a docker container in daemon:\n\n```bash\ndocker rm -f aapanel 2\u003e/dev/null || echo 'OK' \u0026\u0026\ndocker run -p 7800:7800 -v $(pwd)/example:/www/server/panel/plugin/example \\\n    --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host \\\n    -d --rm -it -v $(pwd):/g -w /g --name=aapanel ossrs/aapanel-plugin-dev:1\n```\n\n\u003e Note: For user in China, you can use `registry.cn-hangzhou.aliyuncs.com/ossrs/aapanel-plugin-dev:1` instead.\n\nOpen [http://localhost:7800/srsstack](http://localhost:7800/srsstack) and login:\n\n* Username: `ossrs`\n* Password: `12345678`\n\n\u003e Note: Or you can use `docker exec -it aapanel bt default` to show the login info.\n\nIn the application store, there is a example plugin.\n\n## Update Library\n\nBuild a image from the latest aaPanel:\n\n```bash\ndocker build --progress=plain -f Dockerfile -t aapanel .\n```\n\nCopy the `/www/server` from the docker:\n\n```bash\ndocker run --rm -it -v $(pwd):/g -w /g --name=aapanel aapanel top\n```\n\nThen, copy the `/www/server` to the host:\n\n```bash\nrm -rf www \u0026\u0026 mkdir www \u0026\u0026\ndocker exec -it aapanel cp -rf /www/server /g/www/\n```\n\nUpdate the permission of files:\n\n```bash\nfor ((i=0;i\u003c8;i++)); do find www -type d -exec chmod 755 \"{}\" \\; ; done \u0026\u0026\nfind www -type f -exec chmod u+rw \"{}\" \\; \u0026\u0026\nfind www -type f -exec chmod g+r \"{}\" \\; \u0026\u0026\nfind www -type f -exec chmod o+r \"{}\" \\; \u0026\u0026\necho OK\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fossrs%2Faapanel-plugin-dev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fossrs%2Faapanel-plugin-dev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fossrs%2Faapanel-plugin-dev/lists"}