{"id":15051426,"url":"https://github.com/nextcloud/external","last_synced_at":"2026-01-18T00:00:01.261Z","repository":{"id":18497203,"uuid":"84445117","full_name":"nextcloud/external","owner":"nextcloud","description":"🌐 Embed external sites in your Nextcloud","archived":false,"fork":false,"pushed_at":"2026-01-11T03:00:32.000Z","size":6757,"stargazers_count":127,"open_issues_count":31,"forks_count":37,"subscribers_count":16,"default_branch":"master","last_synced_at":"2026-01-11T10:50:33.279Z","etag":null,"topics":["nextcloud"],"latest_commit_sha":null,"homepage":"https://apps.nextcloud.com/apps/external","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nextcloud.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/contributing.md","funding":null,"license":"COPYING","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-03-09T13:29:13.000Z","updated_at":"2026-01-04T14:36:07.000Z","dependencies_parsed_at":"2024-03-15T21:27:05.336Z","dependency_job_id":"7443d688-0974-4215-b7b1-1ba2c212ef37","html_url":"https://github.com/nextcloud/external","commit_stats":{"total_commits":1041,"total_committers":29,"mean_commits":35.89655172413793,"dds":0.5091258405379443,"last_synced_commit":"90de7b76797cf12908d225191929df6c28ed3885"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/nextcloud/external","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud%2Fexternal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud%2Fexternal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud%2Fexternal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud%2Fexternal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nextcloud","download_url":"https://codeload.github.com/nextcloud/external/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nextcloud%2Fexternal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28522983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T23:53:28.710Z","status":"ssl_error","status_checked_at":"2026-01-17T23:52:20.131Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["nextcloud"],"created_at":"2024-09-24T21:35:11.509Z","updated_at":"2026-01-18T00:00:01.232Z","avatar_url":"https://github.com/nextcloud.png","language":"JavaScript","readme":"# External sites\n\n[![REUSE status](https://api.reuse.software/badge/github.com/nextcloud/external)](https://api.reuse.software/info/github.com/nextcloud/external)\n\nThis application allows an admin to add a link in the Nextcloud web interface\nApps menu that points to an external website. By simply entering the URL and\nthe name for the external site, an icon appears. When this icon is clicked by a\nuser, the external website appears in the Nextcloud frame. For the user, this\nexternal site appears as if it is part of Nextcloud but, in fact, this can be\nany external URL.\n\n## **🛠 State of maintenance**\n\nWhile there are many things that could be done to further improve this app, the app is currently maintained with **limited effort**. This means:\n\n- The main functionality works for the majority of the use cases\n- We will ensure that the app will continue to work like this for future releases and we will fix bugs that we classify as 'critical'\n- We will not invest further development resources ourselves in advancing the app with new features\n- We do review and enthusiastically welcome community PR's\n\nWe would be more than excited if you would like to collaborate with us. We will merge pull requests for new features and fixes. We also would love to welcome co-maintainers.\n\n## OCS API\n\nIt is also possible to get the sites via an OCS endpoint. The request must be authenticated.\nOnly sites for the user´s language are returned:\n```bash\ncurl  -H \"OCS-APIRequest: true\" \\\n  https://admin:admin@localhost/ocs/v2.php/apps/external/api/v1\n```\n\n### Response\n```xml\n\u003c?xml version=\"1.0\"?\u003e\n\u003cocs\u003e\n \u003cmeta\u003e\n  \u003cstatus\u003eok\u003c/status\u003e\n  \u003cstatuscode\u003e200\u003c/statuscode\u003e\n  \u003cmessage\u003eOK\u003c/message\u003e\n \u003c/meta\u003e\n \u003cdata\u003e\n  \u003celement\u003e\n   \u003cid\u003e23\u003c/id\u003e\n   \u003cname\u003eHomepage\u003c/name\u003e\n   \u003curl\u003ehttps://localhost/index.php\u003c/url\u003e\n   \u003ctype\u003elink\u003c/type\u003e\n   \u003credirect\u003e0\u003c/redirect\u003e\n   \u003cicon\u003ehttps://localhost/external.svg\u003c/icon\u003e\n  \u003c/element\u003e\n \u003c/data\u003e\n\u003c/ocs\u003e\n```\n\n#### Explanation\n\n| Field | Type   | Description                              |\n| ----- | ------ | ---------------------------------------- |\n| id    | int    | Numeric identifier of the site           |\n| name  | string | Name of the site, ready to use           |\n| url   | string | URL that should be framed/linked to      |\n| redirect | int | Whether the link should be opened inline or in a new window |\n| type  | string | Can be one of `link`, `settings` or `quota`; see [this issue](https://github.com/nextcloud/external/issues/7) for details |\n| icon  | string | Full URL of the icon that should be shown next to the name of the link |\n\n### ETag / If-None-Match\n\nThe API provides an ETag for the sites array. In case the ETag matches the given value, a `304 Not Modified` is delivered together with an empty response body.\n\n### Capability\n\nThe app registers a capability, so clients can check that before making the actual OCS request:\n```xml\n\u003c?xml version=\"1.0\"?\u003e\n\u003cocs\u003e\n ...\n \u003cdata\u003e\n  \u003ccapabilities\u003e\n   ...\n   \u003cexternal\u003e\n    \u003cv1\u003e\n     \u003celement\u003esites\u003c/element\u003e\n     \u003celement\u003edevice\u003c/element\u003e\n     \u003celement\u003egroups\u003c/element\u003e\n     \u003celement\u003eredirect\u003c/element\u003e\n    \u003c/v1\u003e\n   \u003c/external\u003e\n   ...\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextcloud%2Fexternal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnextcloud%2Fexternal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnextcloud%2Fexternal/lists"}