Kontakt

Carsten Rieger IT Services
Am Danglfeld 8 | 83132 Pittenhart
Telefon: 08624.9009794
E-Mail: info@c-rieger.de

oCIS – ownCloud Infinite Scale

In dieser Anleitung beschreiben wir, wie Sie oCIS, Nachfolger der in die Jahre gekommenen ownCloud-Software, zu Testzwecken bspw. parallel zu einer Nextcloud oder ownCloud Instanz in Betrieb nehmen und testen können. Dabei nutzen wir den Webserver nginx als Reverse Proxy für ocis.

Hersteller: https://owncloud.dev/ocis/
Download: https://download.owncloud.com/ocis/ocis/stable/

Stand: 28. August 2024


Wechseln Sie in den privilegierten Benutzermodus

sudo -s
cd /usr/bin
wget -O ocis https://download.owncloud.com/ocis/ocis/stable/5.0.6/ocis-5.0.6-linux-amd64
chmod +x /usr/bin/ocis

Testen Sie in der Kommandozeile durch Aufruf von

ocis help

die Funktionalität der oCIS Binaries. Ist der Test erfolgreich, so erstllen wir den oCIS-Service.

nano /etc/systemd/system/ocis.service

Fügen Sie den gesamten Inhalt in die Datei:

[Unit]
Description=OCIS server

[Service]
Type=simple
User=root
Group=root
EnvironmentFile=/etc/ocis/ocis.env
ExecStart=ocis server
Restart=always

[Install]
WantedBy=multi-user.target

Erstellen Sie nun das im Service genutzte Verzeichnis sowie das oCIS-Datenverzeichnis:

mkdir -p /etc/ocis /ocis-data

sowie die „Environment“-Datei:

nano /etc/ocis/ocis.env

Fügen Sie die nachfolgenden Zeilen in die neue Datei ein und passen dabei Ihre Domain, ggf. den Port und das Datenverzeichnis an:

OCIS_URL=https://ocis.domain.de
PROXY_HTTP_ADDR=127.0.0.1:9200
OCIS_INSECURE=false
OCIS_LOG_LEVEL=error
OCIS_CONFIG_DIR=/etc/ocis
OCIS_BASE_DATA_PATH=/ocis-data

Initialisieren Sie nun oCIS:

ocis init --config-path /etc/ocis

und notieren sich die Anmeldedaten. Aktivieren Sie nun den oCIS-Service, um sich erstmalig an oCIS anzumelden:

systemctl enable --now ocis

Erweitern Sie den Webserver um einen vHost für oCIS:

cd /etc/nginx/conf.d/

Erstellen Sie die vHost-Datei

nano ocis.conf

und fügen den folgenden Inhalt hinzu:

server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name ocis.domain.de;
ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem;
ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ciphers 'TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384';
ssl_ecdh_curve X448:secp521r1:secp384r1;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
client_max_body_size 10G;
client_body_timeout 3600s;
client_body_buffer_size 512k;
fastcgi_buffers 64 4K;
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
add_header Permissions-Policy "interest-cohort=()";
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
add_header X-XSS-Protection "1; mode=block" always;
fastcgi_hide_header X-Powered-By;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://127.0.0.1:9200;
}
}

Starten Sie den Webserver neu, um auf oCIS per Browser zugreifen zu können.

systemctl restart nginx.service

Melden Sie sich nun im Browser an oCIS an:

Ansicht: Anmeldefenster
Ansicht: Startbildschirm oCIS

In den administrativen Einstellungen, diese verstecken sich hinter dem Würfel oben links, zeigt sich oCIS wie folgt:

Ansicht: Administrationseinstellungen Allgemein
Ansicht: Administrationseinstellungen Personen
Ansicht: Administrationseinstellungen Gruppen
Ansicht: Administrationseinstellungen Spaces

Der zentrale persönliche Bereich von oCIS spiegelt Dateien und Ordner (Persönlich), Freigaben, Spaces und den Papierkorb wider:

Ansicht: Personal (aka Nextcloud Dateien/Files)
Ansicht: Freigaben (aka Nextcloud Freigaben/Shares)
Ansicht: Spaces (aka Nextcloud Gruppenordner/Groupfolder)
Ansicht: Papierkorb (aka Nextcloud Papierkorb/Trashbin)

Die Installation Ihrer oCIS-Instanz wurde erfolgreich abgeschlossen und so wünsche ich Ihnen viel Spaß mit Ihren Daten in Ihrer privaten oCIS-Instanz. Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge und ich sehr freuen!

Carsten Rieger IT-Services | Slogan