Linux Deployment

Table of Contents

Introduction

As a branding customer, you can enable the build of a branded Linux Desktop app in the “Desktop” section of your ownCloud account. To do so, you can download a *.tar file which contains everything to set up complete self-hosted Linux repositories for the selected Linux distributions.

Setup

This is the content of mycloud-2.10.0.6752-linux.tar:

mycloud-2.10.0.6752-linux
├── CentOS_7
│   └── …
├── Debian_10
│   └── …
├── Debian_11
│   └── …
├── Fedora_33
│   └── …
├── Fedora_34
│   └── …
├── Fedora_35
│   └── …
├── Ubuntu_18.04
│   └── …
├── Ubuntu_20.04
│   └── …
├── Ubuntu_21.04
│   └── …
├── Ubuntu_21.10
│   └── …
├── download
│   ├── CentOS.html
│   ├── Debian.html
│   ├── Fedora.html
│   ├── Ubuntu.html
│   ├── allplatforms.html
│   ├── assets
│   │   ├── application.css
│   │   ├── application.js
│   │   ├── arch.png
│   │   ├── centos.png
│   │   ├── debian.png
│   │   ├── download.html
│   │   ├── favicon.png
│   │   ├── fedora.png
│   │   ├── global-navigation-data-en.js
│   │   ├── globalnav-im.png
│   │   ├── header-logo.png
│   │   ├── opensuse.png
│   │   ├── repo.cfg
│   │   ├── rhel.png
│   │   ├── sl.png
│   │   ├── sle.png
│   │   ├── ubuntu.png
│   │   ├── univention.png
│   │   ├── unknown.png
│   │   └── ymp-added-repos.txt
│   ├── bin
│   │   └── repo-admin.py
│   ├── download.json
│   ├── example.sh
│   ├── index.html
│   ├── openSUSE.html
│   └── ymp
│       ├── openSUSE_Leap_15.2
│       │   └── mycloud-client.ymp
│       ├── openSUSE_Leap_15.3
│       │   └── mycloud-client.ymp
│       └── openSUSE_ymp.html
├── openSUSE_Leap_15.2
│   └── …
└── openSUSE_Leap_15.3
    ├── INSTALL.sh
    ├── PREINSTALL.sh
    ├── libmycloudsync-devel-2.10.0-6752.x86_64.rpm
    ├── ocqt51210-libQt5Concurrent5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libQt5Core5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libQt5DBus5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libQt5Gui5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libQt5Network5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libQt5PrintSupport5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libQt5Sql5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libQt5Widgets5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libQt5Xml5-5.12.10-lp153.15.1.x86_64.rpm
    ├── ocqt51210-libqt5-qtsvg-5.12.10-lp153.2.1.x86_64.rpm
    ├── ocqt51210-libqt5-qttranslations-5.12.10-lp153.2.1.x86_64.rpm
    ├── ocqt51210-libqt5-qtwayland-5.12.10-lp153.18.1.x86_64.rpm
    ├── ocqt51210-qt5keychain1-0.12.0-lp153.3.1.x86_64.rpm
    ├── repodata
    │   ├── 3087af5cd89a88977dc9d04e5a3724c573b5b1da3da26bf39931c35f30f00b04-primary.xml.gz
    │   ├── c0ee1520c439b5272490d193ceb9a31230b9cb7de16dd88565e1c8f6218f006b-other.xml.gz
    │   ├── da70c01f9d56865f5792e19529fe3b5cdbd5dd94162fbd3e117577ead7a422cf-filelists.xml.gz
    │   ├── repomd.xml
    │   ├── repomd.xml.asc
    │   └── repomd.xml.key
    ├── mycloud-client-2.10.0-6752.x86_64.rpm
    ├── mycloud-client-doc-2.10.0-6752.x86_64.rpm
    ├── mycloud-client-dolphin-2.10.0-6752.x86_64.rpm
    ├── mycloud-client-nautilus-2.10.0-6752.x86_64.rpm
    ├── mycloud-client-nemo-2.10.0-6752.x86_64.rpm
    ├── mycloud-client-overlays-icons-2.10.0-6752.x86_64.rpm
    ├── mycloud-client.ymp
    ├── mycloud.repo
    └── src
        ├── mycloud-client-2.10.0-6752.src.rpm
        └── mycloud-client-overlays-2.10.0-6752.src.rpm

The download folder provides detailed instructions for your users at download/index.html about how to install the branded Linux clients on the selected Linux distributions. All location information in the HTML files is set to download.example.com. All metadata in the repo is set to download.example.com too.

The download folder contains a shell script (/download/example.sh). This allows you to modify the HTML and the repo itself according to your repo location on your webserver.

download/example.sh
#! /bin/sh
#
# This example demonstrates how to call repo-admin.py
# You will need to call repo-admin.py with your download url if the url shown below differs.
# Basic auth username and password is supported in the url.
#
# You can customitze the main html file and re-run repo-admin.py later.
# For a server without https support use --insecure --url http://...
#
set -euxo pipefail

cd "$(dirname "${0}")"

opt=()

# if a .repo-admin-prefix file is found in a parent directory, --url can be omitted
opt+=("--url" "http://download.example.com/repo")

python3 bin/repo-admin.py  "${opt[@]}" -d 'download' -p '.*-client' -i 'index.html' -f ..

The url after unpacking is an invalid url. You must change example.sh before it can be run.

  • Either

    • replace the url with the correct url leading to the exact folder in which the archive was unpacked
      (ending in …​/mycloud-2.10.0.6752-linux/ here).

  • Or

    • Delete (or comment out) the line containing the url.

    • Make sure there is a .repo-admin-prefix file in the parent folder of the unpacked archive (here next to mycloud-2.10.0.6752-linux)

    • Its contents is the base URL leading up to this parent folder.
      Example: if the correct --url parameter is:
      http://cloud.example.com/install/mycloud-2.10.0.6752-linux/
      then the prefix file can be created like this:

      • cd …​
        # go to the parent folder of the unpacked archive.

      • echo "http://cloud.example.com/install" > .repo-admin-prefix
        # this needs to be done only once.

Then execute the script with bash example.sh and check the …​/download/index.html that is printed.

When the URL starts with http:// then the --insecure option is implicit and need not be specified.