No description
  • JavaScript 81.6%
  • PHP 12.5%
  • Vue 3.9%
  • TypeScript 1.6%
  • CSS 0.4%
Find a file
Nextcloud bot 8a919cf789
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-05-09 00:42:08 +00:00
.github chore: Update node workflow from template 2026-04-27 11:48:39 +02:00
.tx [tx-robot] Update transifex configuration 2022-10-01 02:25:39 +00:00
appinfo chore(release): v9.0.0 2026-05-05 14:40:50 +02:00
docs feat: Update docs screenshots 2026-04-27 16:09:54 +02:00
img fix: Invert settings.svg and settings-dark.svg 2026-04-27 16:09:54 +02:00
l10n fix(l10n): Update translations from Transifex 2026-05-09 00:42:08 +00:00
lib Merge branch 'master' into feat/always-pass-jwt 2026-04-27 16:24:42 +02:00
LICENSES chore: Add license file 2024-04-26 20:27:15 +02:00
src refactor: Bring back external.js 2026-04-27 16:09:54 +02:00
templates refactor: Bring back external.js 2026-04-27 16:09:54 +02:00
tests chore(psalm): Bump psalm to ^6.16 2026-04-27 11:41:58 +02:00
vendor-bin chore(psalm): Bump psalm to ^6.16 2026-04-27 11:41:58 +02:00
.gitignore feat: Port admin settings to vue 2026-04-27 16:09:50 +02:00
.nextcloudignore feat(release): configure krankerl 2026-04-27 16:09:51 +02:00
.php-cs-fixer.dist.php Chore(deps-dev): Bump nextcloud/coding-standard in /vendor-bin/csfixer 2024-09-21 09:59:21 +02:00
CHANGELOG.md chore(release): v9.0.0 2026-05-05 14:40:50 +02:00
composer.json Chore(deps): Bump firebase/php-jwt from 6.11.1 to 7.0.2 2025-12-20 02:03:02 +00:00
composer.lock Merge pull request #1073 from nextcloud/automated/noid/master-update-nextcloud-ocp 2026-04-27 16:26:12 +02:00
COPYING Add license file 2022-02-28 10:45:17 +01:00
eslint.config.js feat: Port admin settings to vue 2026-04-27 16:09:50 +02:00
krankerl.toml feat(release): configure krankerl 2026-04-27 16:09:51 +02:00
package-lock.json chore(release): v9.0.0 2026-05-05 14:40:50 +02:00
package.json chore(release): v9.0.0 2026-05-05 14:40:50 +02:00
psalm.xml chore(psalm): Bump psalm to ^6.16 2026-04-27 11:41:58 +02:00
README.md chore: Add reuse compliance badge 2024-04-26 19:21:26 +02:00
REUSE.toml feat(release): configure krankerl 2026-04-27 16:09:51 +02:00
tsconfig.json feat: Port admin settings to vue 2026-04-27 16:09:50 +02:00
vite.config.ts refactor: Bring back external.js 2026-04-27 16:09:54 +02:00

External sites

REUSE status

This application allows an admin to add a link in the Nextcloud web interface Apps menu that points to an external website. By simply entering the URL and the name for the external site, an icon appears. When this icon is clicked by a user, the external website appears in the Nextcloud frame. For the user, this external site appears as if it is part of Nextcloud but, in fact, this can be any external URL.

🛠 State of maintenance

While there are many things that could be done to further improve this app, the app is currently maintained with limited effort. This means:

  • The main functionality works for the majority of the use cases
  • 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'
  • We will not invest further development resources ourselves in advancing the app with new features
  • We do review and enthusiastically welcome community PR's

We 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.

OCS API

It is also possible to get the sites via an OCS endpoint. The request must be authenticated. Only sites for the user´s language are returned:

curl  -H "OCS-APIRequest: true" \
  https://admin:admin@localhost/ocs/v2.php/apps/external/api/v1

Response

<?xml version="1.0"?>
<ocs>
 <meta>
  <status>ok</status>
  <statuscode>200</statuscode>
  <message>OK</message>
 </meta>
 <data>
  <element>
   <id>23</id>
   <name>Homepage</name>
   <url>https://localhost/index.php</url>
   <type>link</type>
   <redirect>0</redirect>
   <icon>https://localhost/external.svg</icon>
  </element>
 </data>
</ocs>

Explanation

Field Type Description
id int Numeric identifier of the site
name string Name of the site, ready to use
url string URL that should be framed/linked to
redirect int Whether the link should be opened inline or in a new window
type string Can be one of link, settings or quota; see this issue for details
icon string Full URL of the icon that should be shown next to the name of the link

ETag / If-None-Match

The 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.

Capability

The app registers a capability, so clients can check that before making the actual OCS request:

<?xml version="1.0"?>
<ocs>
 ...
 <data>
  <capabilities>
   ...
   <external>
    <v1>
     <element>sites</element>
     <element>device</element>
     <element>groups</element>
     <element>redirect</element>
    </v1>
   </external>
   ...