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/bash
#
# This example demonstrates how to call repo-admin.py
# You will need to call repo-admin.py with your download url.
# Basic auth username and password is supported as shown below.
#
# You can customitze the main html file and re-run repo-admin.py later.
#
cd $(dirname $0)
set -x
python bin/repo-admin.py \
  --url http://download.example.com/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 and save the file with a new name. (download/mycloud.sh)

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