You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 4a3780b
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,19 @@ Languages avaliable: [pt-BR](docs/README_ptBR.md)
17
17
-[Logs](#logs)
18
18
-[Nextcloud Talk](#talk)
19
19
20
+
## NCDD command interface
21
+
22
+
For development automation, use the repository's `bin/ncdd` wrapper instead of reproducing Docker Compose details in CI, agents, or local instructions. It operates the existing `docker-compose.yml` and `docker-compose-postgres.yml`; it does not define a second stack.
23
+
24
+
```bash
25
+
bin/ncdd up
26
+
bin/ncdd doctor
27
+
bin/ncdd shell
28
+
bin/ncdd down
29
+
```
30
+
31
+
See [docs/ncdd.md](docs/ncdd.md) for the command contract and testing policy.
32
+
20
33
## Setup of docker
21
34
22
35
You need to have, on your server, the installed docker. The installation can be done with an official script, following the following steps:
NCDD should expose a stable command surface without creating a second development stack.
4
+
5
+
## Architecture
6
+
7
+
`bin/ncdd` is a thin orchestration layer over the files that already define this repository:
8
+
9
+
-`docker-compose.yml`
10
+
-`docker-compose-postgres.yml`
11
+
-`.env` / `.env.example`
12
+
13
+
It must not duplicate the stack, own a second version source, or redefine image versions.
14
+
15
+
The Makefile remains focused on repository maintenance tasks. It only exposes `test-ncdd` as a convenience for running the CLI test suite; runtime behavior belongs to `bin/ncdd`.
16
+
17
+
## Commands
18
+
19
+
```bash
20
+
bin/ncdd up
21
+
bin/ncdd status
22
+
bin/ncdd doctor
23
+
bin/ncdd doctor --json
24
+
bin/ncdd shell
25
+
bin/ncdd exec --as runtime -- php occ status
26
+
bin/ncdd down
27
+
```
28
+
29
+
`runtime` resolves to `www-data` by default and can be overridden with `NCDD_RUNTIME_USER`.
30
+
31
+
## Git and app source
32
+
33
+
NCDD does not fetch application repositories and does not receive GitHub credentials. Human users, CI, and agents perform the checkout outside the containers.
34
+
35
+
Application worktrees should be placed under the existing Nextcloud tree:
36
+
37
+
```text
38
+
volumes/nextcloud/apps-extra/<app-id>
39
+
```
40
+
41
+
That keeps public and private branches identical from NCDD's point of view and avoids container-specific Git authentication.
42
+
43
+
## Version source
44
+
45
+
There is no NCDD version constant in the CLI. The Nextcloud image version is read from the existing `NEXTCLOUD_VERSION` environment variable, then `.env`, then `.env.example`.
46
+
47
+
A separate NCDD release/version mechanism should only be introduced if the project actually starts publishing the CLI independently.
48
+
49
+
## Testing
50
+
51
+
The CLI is Bash, so its behavior is covered with Bats rather than ad-hoc shell assertions. CI also runs ShellCheck.
52
+
53
+
```bash
54
+
make test-ncdd
55
+
```
56
+
57
+
The GitHub workflow pins the Bats setup action to an immutable commit SHA and pins the Bats version explicitly.
58
+
59
+
## Configuration policy
60
+
61
+
PR #59 intentionally does not introduce `.ncdd.yml`. Environment-specific project contracts may become useful for test-suite definitions later, but adding another configuration format before there is a concrete consumer requirement would duplicate information already present in Compose and `.env`.
0 commit comments