Deploy And Update Branded Linux Desktop Clients

Introduction

As an ownBrander user, you can enable the build of branded Linux in the “Desktop” section of your account. 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://...
#
cd "$(dirname "${0}")"
set -eux
repo=http://download.example.com/repo
python3 bin/repo-admin.py --url $repo -d 'download' -p '.*-client' -i 'index.html' -f ..

Replace http://download.example.com/repo in the above example with the base URL of your repository (ending in …​/mycloud-2.10.0.6752-linux/ here) and save the file.

Then execute the script and check download/index.html on your webserver.