Skip to content

Commit c6b9014

Browse files
authored
Merge pull request #754 from nextcloud/backport/753/stable32
[stable32] chore(readme-description): update app description and README.md
2 parents 5927598 + 7daddb1 commit c6b9014

2 files changed

Lines changed: 101 additions & 40 deletions

File tree

README.md

Lines changed: 83 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,103 @@
88
[![Tests - Deploy](https://github.com/nextcloud/app_api/actions/workflows/tests-deploy.yml/badge.svg)](https://github.com/nextcloud/app_api/actions/workflows/tests-deploy.yml)
99
[![Tests](https://github.com/nextcloud/app_api/actions/workflows/tests.yml/badge.svg)](https://github.com/nextcloud/app_api/actions/workflows/tests.yml)
1010

11-
### Supercharge your Nextcloud with AppAPI and applications specifically designed for it.
11+
AppAPI is the Nextcloud component that enables **External Apps (ExApps)**.
1212

13-
### This project pivots on four main pillars:
13+
ExApps are Nextcloud apps whose backend runs **outside** the Nextcloud PHP process (typically as a Docker
14+
container). AppAPI provides the APIs and lifecycle management so these external backends can still
15+
integrate with Nextcloud users, permissions and the web UI.
1416

15-
1. **Enhanced stability** This ecosystem is committed to maintaining API stability over extended periods.
16-
This ensures a reliable and consistent user experience as developers won't need to constantly update their apps with each new release.
17+
AppAPI is **only useful if you want to install or develop External Apps**.
1718

18-
2. **Enhanced security** Unlike the traditional method, which allowed direct interaction with the core Nextcloud code, this approach uses controlled APIs to manage access, ensuring greater application stability and delivering a more focused user experience.
19+
## If you are here because of the warning “default deploy daemon is not set”
1920

20-
3. **Reliable computing power** The ecosystem is designed to solve resource-intensive problems.
21-
Developers can easily integrate complex computing functions, including advanced machine learning models, and run them on external hardware.
21+
You might have seen this in the admin overview/security checks:
2222

23-
4. **Community friendly** The project aims to attract a diverse and broader developer community by creating applications
24-
in various programming languages and providing a well-documented, consistent and user-friendly API.
25-
Community collaboration and contributions are encouraged to drive open source innovation.
23+
> AppAPI default deploy daemon is not set. Please register a default deploy daemon …
24+
25+
This warning means:
26+
27+
- AppAPI is enabled, **but no Deploy Daemon is configured**, so Nextcloud cannot install/run External Apps yet.
28+
29+
You have two valid options:
30+
31+
1. **You do not want External Apps**
32+
- Disable AppAPI in **Apps → Tools → AppAPI**, or with:
33+
- `occ app:disable app_api`
34+
- The warning will disappear.
35+
36+
2. **You want to install External Apps**
37+
- Open **Settings → Administration → AppAPI**
38+
- Register a Deploy Daemon and set it as the default
39+
- Use **Check connection** and **Test deploy** to verify the setup
40+
41+
## Key concepts (short glossary)
42+
43+
- **External App (ExApp)**: a Nextcloud app where the backend runs as a separate service (usually a container),
44+
but is still installed/managed from Nextcloud and integrates with the Nextcloud UI.
45+
- **Deploy Daemon**: the service Nextcloud talks to in order to install, start/stop, and reach ExApps.
46+
Without a Deploy Daemon, AppAPI cannot deploy ExApps.
47+
48+
## Deploy Daemon options
49+
50+
### HaRP (recommended for Nextcloud 32+)
51+
52+
**HaRP** (High-performance AppAPI Reverse Proxy) is the newer and recommended Deploy Daemon.
53+
It is a reverse proxy system designed specifically for ExApps:
54+
55+
- Proxies access to the Docker Engine used to create ExApp containers
56+
- Routes requests directly to ExApps (bypassing the Nextcloud PHP process), improving performance and enabling WebSockets
57+
- Uses FRP (Fast Reverse Proxy) tunnels so ExApp containers do not need to expose ports to the host — this simplifies networking and provides NAT traversal
58+
59+
Repository: https://github.com/nextcloud/HaRP
60+
61+
### Docker Socket Proxy (DSP) — legacy
62+
63+
**Docker Socket Proxy** (often shortened as **DSP**) is the classic Deploy Daemon implementation.
64+
It is a security-hardened proxy in front of the Docker Engine socket/API and is protected by basic
65+
authentication and brute-force protection.
66+
67+
> **Note:** DSP is being deprecated in favor of HaRP and is scheduled for removal in Nextcloud 35.
68+
> New installations should use HaRP.
69+
70+
Repository: https://github.com/nextcloud/docker-socket-proxy
71+
72+
## Security notes (for administrators)
73+
74+
Configuring a Deploy Daemon means allowing Nextcloud to orchestrate application containers. Keep these points in mind:
75+
76+
- Run HaRP/DSP in a trusted network and do not expose it to the public internet.
77+
- Use strong secrets (`HP_SHARED_KEY` for HaRP, `NC_HAPROXY_PASSWORD` for DSP).
78+
- For remote setups or untrusted networks, use TLS where supported and restrict access with firewall rules.
79+
- Only deploy ExApps you trust, and keep their images up to date.
80+
81+
## Why AppAPI exists (what it is useful for)
82+
83+
AppAPI is designed to make it easier to build and run ExApps in a way that is:
84+
85+
1. **Stable for admins**: ExApps integrate through defined interfaces instead of tightly coupling to server internals.
86+
2. **More isolated**: ExApps run out-of-process and interact with Nextcloud through controlled APIs.
87+
3. **Suitable for heavy workloads**: ExApps can run on separate hardware (including GPU-enabled hosts).
88+
4. **Language-friendly**: ExApps can be written in languages other than PHP (Python/Node/Go/…).
2689

2790
## Documentation
2891

2992
Latest documentation can be found here:
3093

31-
1. Admin manual: [ExApps management](https://docs.nextcloud.com/server/latest/admin_manual/exapps_management/index.html)
32-
2. Developer manual: [ExApp development](https://docs.nextcloud.com/server/latest/developer_manual/exapp_development/index.html)
94+
1. Admin manual:
95+
- AppAPI and External Apps: https://docs.nextcloud.com/server/latest/admin_manual/exapps_management/AppAPIAndExternalApps.html
96+
- Deployment configurations: https://docs.nextcloud.com/server/latest/admin_manual/exapps_management/DeployConfigurations.html
97+
2. Developer manual:
98+
- ExApp development: https://docs.nextcloud.com/server/latest/developer_manual/exapp_development/index.html
3399

34100
### Support
35101

36102
We appreciate any support for this project:
37103

38-
- ⭐ Star our work on GitHub (it helps us a lot)
39-
- ❗ Create an Issue or feature request (bring to us an excellent idea)
40-
- 💁 Resolve an Issue and create a Pull Request (contribute to this project)
41-
- 🧑‍💻 Develop your own application using AppAPI and share it with the world (contact us if help is needed)
42-
43-
In conclusion, we are genuinely excited about the future of the AppAPI project and its potential to transform
44-
the way applications are developed and experienced within Nextcloud.
104+
- ⭐ Star our work on GitHub
105+
- ❗ Create an issue or feature request
106+
- 💁 Resolve an issue and open a pull request
107+
- 🧑‍💻 Build and publish ExApps using AppAPI
45108

46-
As we embark on this journey, we warmly invite you - developers, thinkers, creators, and visionaries -
47-
to join us in shaping a more versatile, stable, and secure app landscape.
48109

49-
#### Your insights, suggestions, and contributions are invaluable to us.
110+
Thank you for helping improve ExApps and their ecosystem.

appinfo/info.xml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,42 +9,42 @@
99
<summary>Nextcloud AppAPI</summary>
1010
<description>
1111
<![CDATA[
12-
### Boost your Nextcloud with AppAPI and its specially designed applications.
12+
### What is AppAPI?
1313
14+
AppAPI is the Nextcloud component that enables **External Apps (ExApps)**.
15+
ExApps are apps whose backend runs **outside** the Nextcloud PHP process (usually as a Docker container), while still integrating with your Nextcloud users, permissions and web UI.
1416
15-
The AppAPI is a project within the Nextcloud ecosystem designed to streamline and enhance the process of
16-
application development, deployment, and management.
17+
### Do I need it?
1718
18-
It introduces a new methodology that allows developers to create
19-
applications using a variety of programming languages, not limited to PHP, which was traditionally used in Nextcloud development.
19+
No. If you do not plan to install External Apps, you can disable AppAPI.
2020
21-
_If you wish to develop an application, we will gladly help and assist you._
21+
If AppAPI is enabled without a configured Deploy Daemon, Nextcloud will show the info message:
2222
23-
### Support
23+
> "AppAPI default deploy daemon is not set …"
2424
25-
We appreciate any support for this project:
25+
That warning means: "External Apps are not configured yet".
2626
27-
- ⭐ Star our work on GitHub
28-
- ❗ Create an Issue or feature request
29-
- 💁 Resolve an Issue and create a Pull Request
30-
- 🧑‍💻 Develop your own application using AppAPI
27+
You can either disable AppAPI, or configure a Deploy Daemon (see below).
3128
32-
We are genuinely excited about the future of the AppAPI project and its potential to transform
33-
the way applications are developed and experienced within Nextcloud.
29+
### How do External Apps get deployed?
3430
35-
As we embark on this journey, we warmly invite you - developers, thinkers, creators, and visionaries -
36-
to join us in shaping a more versatile, stable, and secure app landscape.
31+
A **Deploy Daemon** is the service Nextcloud talks to in order to install, start, stop and reach ExApps.
3732
38-
*Your insights, suggestions, and contributions are invaluable to us.*
33+
Two options are available:
3934
35+
- **HaRP** (recommended for Nextcloud 32+) — a high-performance reverse proxy with FRP tunneling
36+
- **Docker Socket Proxy** (legacy) — scheduled for removal in Nextcloud 35
37+
38+
See the [admin documentation](https://docs.nextcloud.com/server/latest/admin_manual/exapps_management/DeployConfigurations.html) for setup instructions.
4039
]]></description>
4140
<version>32.0.0</version>
4241
<licence>agpl</licence>
4342
<author mail="andrey18106x@gmail.com" homepage="https://github.com/andrey18106">Andrey Borysenko</author>
4443
<author mail="bigcat88@icloud.com" homepage="https://github.com/bigcat88">Alexander Piskun</author>
4544
<namespace>AppAPI</namespace>
4645
<documentation>
47-
<developer>https://docs.nextcloud.com/server/latest/developer_manual/exapp_development</developer>
46+
<admin>https://docs.nextcloud.com/server/latest/admin_manual/exapps_management/AppAPIAndExternalApps.html</admin>
47+
<developer>https://docs.nextcloud.com/server/latest/developer_manual/exapp_development/index.html</developer>
4848
</documentation>
4949
<category>integration</category>
5050
<category>tools</category>

0 commit comments

Comments
 (0)