Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
7 changes: 0 additions & 7 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,8 +1 @@
.bingo
!.bingo/*.mod
!.bingo/Variables.mk
.git
**/bin
**/node_modules
**/tmp
docs
37 changes: 37 additions & 0 deletions Dockerfile.minimal
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Minimal test: identical to official 7.1.0, only "kosmos" edition
FROM quay.io/opencloudeu/nodejs-ci:24 AS generate
COPY ./ /opencloud/
WORKDIR /opencloud
RUN mkdir -p services/web/assets/core && \
curl --fail -sL -o- https://github.com/opencloud-eu/web/releases/download/v7.1.0/web.tar.gz | tar xzf - -C services/web/assets/core/
RUN git init && \
for mod in services/activitylog services/graph services/idp services/notifications services/settings services/userlog; do \
echo "=== $mod ===" && make -C $mod node-generate-prod || true; \
done

FROM docker.io/golang:1.26-alpine AS build
RUN apk add bash make git curl gcc musl-dev libc-dev binutils-gold inotify-tools vips-dev
COPY --from=generate /opencloud /opencloud
WORKDIR /opencloud
RUN cd opencloud && \
EDITION=rolling make go-generate build ENABLE_VIPS=true

FROM docker.io/amd64/alpine:3.21
RUN apk add --no-cache attr bash ca-certificates curl inotify-tools libc6-compat mailcap tree vips patch && \
echo 'hosts: files dns' >| /etc/nsswitch.conf
RUN addgroup -g 1000 -S opencloud-group && \
adduser -S --ingroup opencloud-group --uid 1000 opencloud-user --home /var/lib/opencloud
RUN mkdir -p /var/lib/opencloud && \
mkdir -p /var/lib/opencloud/web/assets/apps && \
chown -R opencloud-user:opencloud-group /var/lib/opencloud && \
chmod -R 751 /var/lib/opencloud && \
mkdir -p /etc/opencloud && \
chown -R opencloud-user:opencloud-group /etc/opencloud && \
chmod -R 751 /etc/opencloud
VOLUME [ "/var/lib/opencloud", "/etc/opencloud" ]
WORKDIR /var/lib/opencloud
USER 1000
EXPOSE 9200/tcp
ENTRYPOINT ["/usr/bin/opencloud"]
CMD ["server"]
COPY --from=build /opencloud/opencloud/bin/opencloud /usr/bin/opencloud
56 changes: 56 additions & 0 deletions Dockerfile.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Stage 1: Node — generate IDP + embed custom web assets
FROM quay.io/opencloudeu/nodejs-ci:24 AS generate
COPY ./ /opencloud/
WORKDIR /opencloud
COPY web-dist/ services/web/assets/core/
RUN git init && \
for mod in services/activitylog services/graph services/idp services/notifications services/settings services/userlog; do \
echo "=== $mod ===" && make -C $mod node-generate-prod || true; \
done

# Stage 2: Go — build binary with custom reva (web assets get embedded)
FROM docker.io/golang:1.26-alpine AS build
RUN apk add bash make git curl gcc musl-dev libc-dev binutils-gold inotify-tools vips-dev
COPY --from=generate /opencloud /opencloud
COPY reva-src /data/source/gitapps/reva
COPY go-cs3apis-src /data/source/gitapps/cs3org/go-cs3apis
COPY warmup-robustness.patch /tmp/warmup-robustness.patch
RUN cd /data/source/gitapps/reva && git init && git add -A && git apply /tmp/warmup-robustness.patch
WORKDIR /opencloud
RUN echo 'replace github.com/opencloud-eu/reva/v2 => /data/source/gitapps/reva' >> go.mod && \
echo 'replace github.com/cs3org/go-cs3apis => /data/source/gitapps/cs3org/go-cs3apis' >> go.mod && \
go mod tidy && \
go mod vendor && \
cd opencloud && \
EDITION=kosmos make go-generate release-linux-docker-amd64 ENABLE_VIPS=true DIST=/dist

# Stage 3: Runtime
FROM docker.io/amd64/alpine:3.23

RUN apk add --no-cache attr bash ca-certificates curl imagemagick \
inotify-tools libc6-compat mailcap tree vips \
vips-magick patch && \
echo 'hosts: files dns' >| /etc/nsswitch.conf

RUN addgroup -g 1000 -S opencloud-group && \
adduser -S --ingroup opencloud-group --uid 1000 opencloud-user --home /var/lib/opencloud

RUN mkdir -p /var/lib/opencloud && \
mkdir -p /var/lib/opencloud/web/assets/apps && \
chown -R opencloud-user:opencloud-group /var/lib/opencloud && \
chmod -R 751 /var/lib/opencloud && \
mkdir -p /etc/opencloud && \
chown -R opencloud-user:opencloud-group /etc/opencloud && \
chmod -R 751 /etc/opencloud

VOLUME [ "/var/lib/opencloud", "/etc/opencloud" ]
WORKDIR /var/lib/opencloud

USER 1000

EXPOSE 9200/tcp

ENTRYPOINT ["/usr/bin/opencloud"]
CMD ["server"]

COPY --from=build /dist/binaries/opencloud-linux-amd64 /usr/bin/opencloud
60 changes: 60 additions & 0 deletions TASK_architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Architektur-Analyse: CS3, Reva, OpenCloud, ownCloud

## Die Abhängigkeitskette

```

Check notice on line 5 in TASK_architecture.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TASK_architecture.md#L5

Fenced code blocks should have a language specified
cs3org/cs3apis (CERN) ← Proto-Spec, 24 Permission-Felder + Immutable
↓ (protoc generiert)
cs3org/go-cs3apis (CERN) ← Go-Bindings (regeneriert nach jedem Merge)
↓ (go.mod import)
opencloud-eu/reva ← Fork von cs3org/reva, HAT decomposedfs
↓ (vendor)
opencloud-eu/opencloud ← Backend (Go)
↓ (API)
opencloud-eu/web ← Frontend (Vue.js/TypeScript)
```

## ownCloud vs. OpenCloud — harter Fork seit Januar 2025

Getrennte Teams, keine Code-Synchronisation. Unsere Arbeit geht ausschließlich in OpenCloud.

Check notice on line 19 in TASK_architecture.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TASK_architecture.md#L19

Expected: 80; Actual: 92

## Upstream-PRs

| PR | Repo | Status |
|----|------|--------|

Check notice on line 24 in TASK_architecture.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TASK_architecture.md#L24

Table pipe is missing space to the right for style "compact"
| [#272](https://github.com/cs3org/cs3apis/pull/272) | cs3org/cs3apis | **MERGED** (4. Jun 2026) |
| [#5628](https://github.com/cs3org/reva/pull/5628) | cs3org/reva | Open (ACL-Encoding) |
| [#674](https://github.com/opencloud-eu/reva/pull/674) | opencloud-eu/reva | **Eingereicht** (go-cs3apis Update) |
| [#2841](https://github.com/opencloud-eu/opencloud/pull/2841) | opencloud-eu/opencloud | Open (EditorLitePlus) |

## Implementierungs-Branches

| Repo | Branch | Zweck | Wartet auf |
|------|--------|-------|------------|

Check notice on line 33 in TASK_architecture.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TASK_architecture.md#L33

Table pipe is missing space to the right for style "compact"
| flash7777/reva | `chore/update-go-cs3apis` | PR #674: Housekeeping | Review |
| flash7777/reva | `feature/immutable-decomposedfs` | Feature: Immutable + Container-Perms | #674 Merge |
| flash7777/opencloud | `feature/immutable-and-container-permissions` | Graph API Actions | Reva Feature-PR |

Check notice on line 36 in TASK_architecture.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TASK_architecture.md#L36

Expected: 80; Actual: 109
| flash7777/opencloud | `feature/editor-light-role` | PR #2841: EditorLitePlus | Review |

Check notice on line 37 in TASK_architecture.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TASK_architecture.md#L37

Expected: 80; Actual: 89
| flash7777/web | `feature/immutable-ui` | Frontend Icons + Resource-Modell | Unabhängig |

Check notice on line 38 in TASK_architecture.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TASK_architecture.md#L38

Expected: 80; Actual: 90

## Release-Strategie

```
cs3org/cs3apis#272 MERGED ✓
cs3org/go-cs3apis regeneriert ✓ (c3fdb0aa5e9e)
PR 1: opencloud-eu/reva#674 — go-cs3apis Update + Stubs (eingereicht)
PR 2: opencloud-eu/reva — Immutable + Container-Permissions (nach #674)
PR 3: opencloud-eu/opencloud — Graph API Actions (nach Reva Release)
PR 4: opencloud-eu/web — Frontend (unabhängig)
```

## GitHub Fork-Situation

- `flash7777/reva` ist Fork von cs3org/reva (selbes Fork-Netzwerk wie opencloud-eu/reva → PRs möglich)

Check notice on line 58 in TASK_architecture.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TASK_architecture.md#L58

Expected: 80; Actual: 102
- `flash7777/reva-eu` ist eigenständiges Repo (keine PRs gegen opencloud-eu möglich)
- Token mit workflow Scope: `/data/source/gitapps/TOKEN_WF`
Loading