Repository navigation
New Script: Lightpanda LXC #2465
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| #!/usr/bin/env bash | ||
| _CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/DevScripts/main" | ||
| _cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func" | ||
| source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func") | ||
|
|
||
| # Copyright (c) 2021-2026 community-scripts ORG | ||
| # Author: Aditya Raj Singh (justadityaraj) | ||
| # License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE | ||
| # Source: https://lightpanda.io/ | ||
|
|
||
| APP="Lightpanda" | ||
| var_tags="${var_tags:-browser;automation;ai}" | ||
| var_cpu="${var_cpu:-1}" | ||
| var_ram="${var_ram:-1024}" | ||
| var_disk="${var_disk:-4}" | ||
| var_os="${var_os:-debian}" | ||
| var_version="${var_version:-13}" | ||
| var_unprivileged="${var_unprivileged:-1}" | ||
| var_arm64="${var_arm64:-yes}" | ||
|
|
||
| header_info "$APP" | ||
| variables | ||
| color | ||
| catch_errors | ||
|
|
||
| function update_script() { | ||
| header_info | ||
| check_container_storage | ||
| check_container_resources | ||
|
|
||
| if [[ ! -f /usr/bin/lightpanda ]]; then | ||
| msg_error "No ${APP} Installation Found!" | ||
| exit | ||
| fi | ||
|
|
||
| if check_for_gh_release "lightpanda" "lightpanda-io/browser"; then | ||
| msg_info "Stopping Lightpanda" | ||
| systemctl stop lightpanda lightpanda-mcp | ||
| msg_ok "Stopped Lightpanda" | ||
|
|
||
| fetch_and_deploy_gh_release "lightpanda" "lightpanda-io/browser" "binary" | ||
|
|
||
| msg_info "Starting Lightpanda" | ||
| systemctl start lightpanda lightpanda-mcp | ||
| msg_ok "Started Lightpanda" | ||
| msg_ok "Updated successfully!" | ||
| fi | ||
| exit | ||
| } | ||
|
|
||
| start | ||
| build_container | ||
| description | ||
|
|
||
| msg_ok "Completed Successfully!\n" | ||
| echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" | ||
| echo -e "${INFO}${YW}Connect Puppeteer or Playwright to the CDP server:${CL}" | ||
| echo -e "${GATEWAY}${BGN}ws://${IP}:9222${CL}" | ||
| echo -e "${INFO}${YW}Connect an AI agent to the MCP server:${CL}" | ||
| echo -e "${GATEWAY}${BGN}http://${IP}:9223/mcp${CL}" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| #!/usr/bin/env bash | ||
|
|
||
| # Copyright (c) 2021-2026 community-scripts ORG | ||
| # Author: Aditya Raj Singh (justadityaraj) | ||
| # License: MIT | https://github.com/community-scripts/DevScripts/raw/main/LICENSE | ||
| # Source: https://lightpanda.io/ | ||
|
|
||
| source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" | ||
| color | ||
| verb_ip6 | ||
| catch_errors | ||
| setting_up_container | ||
| network_check | ||
| update_os | ||
|
|
||
| fetch_and_deploy_gh_release "lightpanda" "lightpanda-io/browser" "binary" | ||
|
|
||
| msg_info "Creating Services" | ||
| cat <<EOF >/etc/systemd/system/lightpanda.service | ||
| [Unit] | ||
| Description=Lightpanda CDP Server | ||
| After=network.target | ||
|
|
||
| [Service] | ||
| Type=simple | ||
| User=root | ||
| Environment=LIGHTPANDA_DISABLE_TELEMETRY=true | ||
| ExecStart=/usr/bin/lightpanda serve --host 0.0.0.0 --advertise-host ${LOCAL_IP} --port 9222 --log-level info --block-private-networks | ||
| Restart=on-failure | ||
| RestartSec=5 | ||
|
|
||
| [Install] | ||
| WantedBy=multi-user.target | ||
| EOF | ||
| cat <<EOF >/etc/systemd/system/lightpanda-mcp.service | ||
| [Unit] | ||
| Description=Lightpanda MCP Server | ||
| After=network.target | ||
|
|
||
| [Service] | ||
| Type=simple | ||
| User=root | ||
| Environment=LIGHTPANDA_DISABLE_TELEMETRY=true | ||
| ExecStart=/usr/bin/lightpanda mcp --host 0.0.0.0 --port 9223 --block-private-networks | ||
| Restart=on-failure | ||
| RestartSec=5 | ||
|
|
||
| [Install] | ||
| WantedBy=multi-user.target | ||
| EOF | ||
| systemctl enable -q --now lightpanda lightpanda-mcp | ||
| msg_ok "Created Services" | ||
|
|
||
| motd_ssh | ||
| customize | ||
| cleanup_lxc |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,49 @@ | ||
| { | ||
| "name": "Lightpanda", | ||
| "slug": "lightpanda", | ||
| "categories": [20], | ||
| "date_created": "2026-10-23", | ||
| "type": "ct", | ||
| "updateable": true, | ||
| "privileged": false, | ||
| "interface_port": 9222, | ||
| "documentation": "https://lightpanda.io/docs", | ||
| "website": "https://lightpanda.io/", | ||
| "repository": "https://github.com/lightpanda-io/browser", | ||
| "architectures": ["amd64", "arm64"], | ||
| "platforms": ["pve"], | ||
| "logo": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/webp/lightpanda.webp", | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. can you switch to selfh.st/icons or request it?
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Requested it: selfhst/icons#1069 (their discussions board). Left the dashboard-icons URL in until it lands, then I'll switch to the selfh.st one. |
||
| "description": "Lightpanda is a headless browser built from scratch for AI agents and automation. It runs JavaScript and speaks the Chrome DevTools Protocol, so Puppeteer and Playwright scripts work against it, and it has a built-in MCP server for AI agents.", | ||
| "install_methods": [ | ||
| { | ||
| "type": "default", | ||
| "script": "ct/lightpanda.sh", | ||
| "config_path": "", | ||
| "resources": { | ||
| "cpu": 1, | ||
| "ram": 1024, | ||
| "hdd": 4, | ||
| "os": "Debian", | ||
| "version": "13" | ||
| } | ||
| } | ||
| ], | ||
| "default_credentials": { | ||
| "username": null, | ||
| "password": null | ||
| }, | ||
| "notes": [ | ||
| { | ||
| "text": "Neither server has authentication. Anyone who can reach ports 9222 and 9223 can browse the web through this container, so keep it on a trusted network.", | ||
| "type": "warning" | ||
| }, | ||
| { | ||
| "text": "Connect Puppeteer or Playwright to ws://<IP>:9222. Add http://<IP>:9223/mcp to your AI agent as an HTTP MCP server.", | ||
| "type": "info" | ||
| }, | ||
| { | ||
| "text": "Requests to private and internal IPs are blocked so an agent can't be steered into your LAN. Remove --block-private-networks from both service files to browse internal sites.", | ||
| "type": "info" | ||
| } | ||
| ] | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
think you are missing some fields, at least architectures
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added architectures and platforms in a373888. Ran the arm64 .deb on Debian 13 aarch64 (install, CDP + MCP servers, fetch) so var_arm64 is yes and architectures is [amd64, arm64].