|
8 | 8 | [](https://github.com/nextcloud/app_api/actions/workflows/tests-deploy.yml) |
9 | 9 | [](https://github.com/nextcloud/app_api/actions/workflows/tests.yml) |
10 | 10 |
|
11 | | -### Supercharge your Nextcloud with AppAPI and applications specifically designed for it. |
| 11 | +AppAPI is the Nextcloud component that enables **External Apps (ExApps)**. |
12 | 12 |
|
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. |
14 | 16 |
|
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**. |
17 | 18 |
|
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” |
19 | 20 |
|
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: |
22 | 22 |
|
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/…). |
26 | 89 |
|
27 | 90 | ## Documentation |
28 | 91 |
|
29 | 92 | Latest documentation can be found here: |
30 | 93 |
|
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 |
33 | 99 |
|
34 | 100 | ### Support |
35 | 101 |
|
36 | 102 | We appreciate any support for this project: |
37 | 103 |
|
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 |
45 | 108 |
|
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. |
48 | 109 |
|
49 | | -#### Your insights, suggestions, and contributions are invaluable to us. |
| 110 | +Thank you for helping improve ExApps and their ecosystem. |
0 commit comments