-
Notifications
You must be signed in to change notification settings - Fork 79
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
feat: add appapi-dsp/appapi-dsp-https service #337
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 |
---|---|---|
|
@@ -13,3 +13,5 @@ node_modules/ | |
/tests/playwright-report/ | ||
/tests/blob-report/ | ||
/tests/playwright/.cache/ | ||
/.idea/ | ||
.DS_Store |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# AppAPI | ||
|
||
For [AppAPI](https://github.com/cloud-py-api/app_api) the [Docker Socket Proxy](https://github.com/cloud-py-api/docker-socket-proxy) (DSP) is required to work. | ||
|
||
## HTTP AppAPI DSP | ||
|
||
### 1. Start the HTTP DSP container | ||
|
||
```bash | ||
docker compose up -d appapi-dsp | ||
``` | ||
|
||
### 2. Configure Deploy daemon | ||
|
||
After the DSP container is running, configure the Deploy daemon in AppAPI admin settings with the following parameters: | ||
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 we also document which repo to clone for the app api settings to be available? 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. Sure, but AppAPI is likely to be moved to server's core soon, so there will be no need to clone and build js, and now it's possible to just install AppAPI from AppStore, if you don't need the latest version from sources. |
||
|
||
- **Host**: `http://nextcloud-appapi-dsp-http:2375` | ||
- **Nextcloud URL**: `http://nextcloud.local` (locally always use http) | ||
- **Enable https**: `false` | ||
- **Network**: `master_default` (the network of nextcloud-docker-dev docker-compose, by default it is `master_default`) | ||
- **HaProxy password**: `some_secure_password` | ||
|
||
or via OCC CLI: | ||
|
||
```bash | ||
./scripts/occ.sh nextcloud -- app_api:daemon:register dsp_http "DSP HTTP" docker-install http "http://nextcloud.local" --net=master_default --set-default | ||
``` | ||
|
||
## HTTPS AppAPI DSP | ||
|
||
For HTTPS DSP setup, please refer to the [HTTPS (remote)](https://github.com/cloud-py-api/docker-socket-proxy?tab=readme-ov-file#httpsremote) section. | ||
|
||
### 1. Generate self-signed certificates | ||
|
||
Following the instruction from the DSP repository, generate and place the self-signed certificate in the `nextcloud-docker-dev/data/ssl/app_api/app_api.pem` directory. | ||
|
||
> **Note**: Additionally, you can copy the `app_api.pem` file to the `nextcloud-docker-dev/data/shared` directory | ||
> to be able to access it for import in each nextcloud dev container (e.g. `occ security:certificates:import /shared/app_api.pem`). | ||
|
||
### 2. Start the HTTPS DSP container | ||
|
||
```bash | ||
docker compose up -d appapi-dsp-https | ||
``` | ||
|
||
### 3. Configure Deploy daemon | ||
|
||
After the DSP container is running and the certificate is imported in Nextcloud, configure the Deploy daemon in AppAPI admin settings with the following parameters: | ||
|
||
- **Host**: `https://<nextcloud-appapi-dsp-https or BIND_ADDRESS IP>:2375` (use host depending on your setup) | ||
- **Nextcloud URL**: `http://nextcloud.local` (locally always use http) | ||
- **Enable https**: `true` | ||
- **Network**: `host` (with https enabled, the network is forced to `host`) | ||
- **HaProxy password**: `some_secure_password` | ||
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. Is there a way to auto configure this using occ? 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. Yes, there is an occ command available to register Deploy daemon ( |
||
|
||
or via OCC CLI: | ||
|
||
```bash | ||
./scripts/occ.sh nextcloud -- app_api:daemon:register dsp_https "DSP HTTPS" docker-install https "http://nextcloud.local" --net=host --set-default | ||
``` | ||
|
||
|
||
## Environment variables | ||
|
||
The list of available environment variables for the AppAPI DSP is listed in its repository, | ||
and in the `example.env` file. | ||
|
||
## Troubleshooting | ||
|
||
### Image of AppAPI DSP is not accessible | ||
|
||
In case the AppAPI DSP image is not accessible, you can build it locally by cloning the [Docker Socket Proxy](https://github.com/cloud-py-api/docker-socket-proxy) repository and running the following commands: | ||
|
||
```bash | ||
git clone https://github.com/cloud-py-api/docker-socket-proxy.git | ||
``` | ||
|
||
```bash | ||
cd docker-socket-proxy | ||
``` | ||
|
||
```bash | ||
docker build -f ./Dockerfile -t nextcloud-appapi-dsp:latest ./ | ||
``` | ||
|
||
After that change the image name in the `docker-compose.yml` file | ||
for `appapi-dsp` or `appapi-dsp-https` service to `nextcloud-appapi-dsp:latest` and try again. |
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.
Can you also clarify when to sue http vs https? Just depending on if nextcloud is using one or the other?
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.
Locally for development it should be enough to use HTTP, HTTPS option in DSP is for remote install, locally could be used just for testing. In both cases ExApps are using HTTP to communicate to Nextcloud because of self-signed certs.