diff --git a/Dockerfile b/Dockerfile index 9b40369c966f45a6f995ee332833cb5ef0eef76a..436795316c8dc2fcf51aa66e4fab27746a532b2f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster +FROM debian:bullseye LABEL maintainer="melroy@melroy.org" @@ -19,7 +19,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ gpg-wks-client gpg-wks-server gpgconf \ gpgsm libassuan0 libksba8 \ libldap-2.4-2 libldap-common libnpth0 \ - libreadline7 libsasl2-2 libsasl2-modules \ + libreadline8 libsasl2-2 libsasl2-modules \ libsasl2-modules-db libsqlite3-0 libssl1.1 \ lsb-base pinentry-curses readline-common \ apt-transport-https ca-certificates curl \ @@ -28,14 +28,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ ## Add additional repositories/components (software-properties-common is required to be installed) # Add contrib and non-free distro components RUN apt-add-repository contrib && apt-add-repository non-free -# Add Debian backports repo for LibreOffice and Papirus icons -RUN add-apt-repository -s "deb http://deb.debian.org/debian buster-backports main contrib non-free" +# Add Debian backports repo for XFCE thunar-font-manager +RUN add-apt-repository -s "deb http://deb.debian.org/debian bullseye-backports main contrib non-free" # Add Linux Mint repo for Mint-Y-Dark theme -RUN apt-key adv --recv-keys --keyserver keys.gnupg.net A6616109451BBBF2 +RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A6616109451BBBF2 +# TODO: Migrate away from apt-key to gpg files +# RUN curl https://example.com/key/repo-key.gpg | gpg --dearmor > /etc/apt/trusted.gpg.d/linuxmint.gpg RUN apt-add-repository -s 'deb http://packages.linuxmint.com debbie main' # Add X2Go apt list -RUN apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E +# TODO: Migrate away from apt-key to gpg files +RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com E1F958385BFE2B6E COPY ./configs/x2go.list /etc/apt/sources.list.d/x2go.list ## Install X2Go server and session @@ -68,23 +71,22 @@ RUN apt-get install -y --no-install-recommends \ x11-xkb-utils ## Install XFCE4 RUN apt-get upgrade -y && apt-get install -y \ - xfce4-session xfwm4 xfce4-panel \ + xfwm4 xfce4-session xfce4-panel \ xfce4-terminal xfce4-appfinder \ - thunar tumbler xfce4-clipman-plugin \ - xfce4-screenshooter xfce4-notifyd xfce4-pulseaudio-plugin \ - xfce4-statusnotifier-plugin xfce4-datetime-plugin xfce4-notes-plugin \ - xarchiver thunar-archive-plugin xfce4-whiskermenu-plugin -# TODO: request for buster-backports for mugshot + xfce4-goodies xfce4-pulseaudio-plugin \ + xfce4-statusnotifier-plugin xfce4-whiskermenu-plugin \ + thunar tumbler xarchiver \ + mugshot thunar-archive-plugin ## Add themes & fonts RUN apt-get install -y --no-install-recommends fonts-ubuntu breeze-gtk-theme mint-themes -# Don't add papirus icons (can be comment-out) -#RUN apt install -y -t buster-backports papirus-icon-theme +# Don't add papirus icons (can be comment-out if you want) +#RUN apt install -y papirus-icon-theme ## Add additional applications RUN apt-get install -y --no-install-recommends firefox-esr htop gnome-calculator mousepad ristretto # Add Office -RUN apt install -y -t buster-backports libreoffice-base libreoffice-base-core libreoffice-common libreoffice-core libreoffice-base-drivers \ +RUN apt install -y libreoffice-base libreoffice-base-core libreoffice-common libreoffice-core libreoffice-base-drivers \ libreoffice-nlpsolver libreoffice-script-provider-bsh libreoffice-script-provider-js libreoffice-script-provider-python libreoffice-style-colibre \ libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-draw libreoffice-math diff --git a/README.md b/README.md index 498a55ed903ccecb3ad56112af07dc09fb589702..b387309755aa06488bcc16c6557b923afec9960c 100644 --- a/README.md +++ b/README.md @@ -10,17 +10,17 @@ By utilizing [Docker containers](https://www.docker.com/resources/what-container By using the [X2Go protocol](https://wiki.x2go.org/) it's easy to connect/share sessions between the client and the server. Which allows remote working or any other task you might want do remotely in a windowing system. -The image contains a [docker GNU/Linux Debian](https://hub.docker.com/_/debian) (buster) operating system, together with XFCE4 desktop environment. The required X2Goserver/X2Gosession are already pre-installed. +The image contains a [docker GNU/Linux Debian](https://hub.docker.com/_/debian) (bullseye) operating system, together with XFCE4 desktop environment. The required X2Goserver/X2Gosession are already pre-installed. In fact, the image has alot of packages installed you properly want, including but not limited to: `Firefox`, `LibreOffice`, `gnome-calculator`, `archiver`, `file manager`, `text editor`, `image viewer`, `htop`, `clipboard manager` and much more. Last but not least, the image is preconfigured with a nice dark-theme (Breeze-Dark), window theme (Mint-Y-Dark) as well as a nice looking icon set (Mint-Y-Dark-Aqua) and uses Ubuntu fonts by default. See below an preview: -![](preview.png) +![Preview 1](preview.png) Or an example with Papirus icons: -![](preview_papirus.png) +![Preview 2](preview_papirus.png) *Note:* You can always remove/install additional packages. By using docker container and apt-get command line (depending on your setup, this won't be permanent) or ideally by changing the [Dockerfile](Dockerfile). And optionally adapt [XFCE settings script](xfce_settings.sh) to your needs. Eg. like install & use Papirus icons instead. @@ -29,24 +29,23 @@ Or an example with Papirus icons: Build the image locally, via: ```sh -docker build --tag vdi . +docker build --tag danger89/xfcevdi_x2go . ``` -Or when you have [apt-cacher](http://manpages.ubuntu.com/manpages/focal/man8/apt-cacher.8.html) proxy installed, use `APT_PROXY` parameter to set the proxy URL: `docker build --build-arg APT_PROXY=http://melroy-pc:3142 --tag vdi .` - +Or when you have [apt-cacher](http://manpages.ubuntu.com/manpages/focal/man8/apt-cacher.8.html) proxy installed, use `APT_PROXY` parameter to set the proxy URL: `docker build --build-arg APT_PROXY=http://melroy-pc:3142 --tag danger89/xfcevdi_x2go .` ## Usage Start the docker container using (username: `user` and password will be auto-generated): ```sh -docker run --shm-size 2g -it -p 2222:22 vdi:latest +docker run --shm-size 2g -it -p 2222:22 danger89/xfcevdi_x2go:latest ``` Or with the username `melroy` with password `abc`: ```sh -docker run --shm-size 2g -it -p 2222:22 -e USERNAME=melroy -e PASS=abc vdi:latest +docker run --shm-size 2g -it -p 2222:22 -e USERNAME=melroy -e PASS=abc danger89/xfcevdi_x2go:latest ``` ### Docker compose @@ -89,8 +88,4 @@ Once you open the client, create a new session by providing the following settin * SSH port: `2222` (default port) * Session type: `XFCE` (select from drop-down menu) -Once you try to connect, accept the new SSH host key and you'll require to enter a password (by default the passwords are generated!). - -## TODOs - -* Add PulseAudio plugin to panel \ No newline at end of file +Once you try to connect, accept the new SSH host key and you'll require to enter a password (by default the **passwords are auto-generated**!). diff --git a/configs/x2go.list b/configs/x2go.list index ccc0c4abd02985672169f5cd7b72a8761491eea0..d320ec57df492fc16e09f8d2c942763beb880d04 100644 --- a/configs/x2go.list +++ b/configs/x2go.list @@ -1,4 +1,4 @@ # X2Go Repository (release builds) -deb http://packages.x2go.org/debian buster extras main +deb http://packages.x2go.org/debian bullseye extras main # X2Go Repository (sources of release builds) -deb-src http://packages.x2go.org/debian buster extras main +deb-src http://packages.x2go.org/debian bullseye extras main diff --git a/vdi-compose.yml b/vdi-compose.yml index 7f4ef5724dff865d0ae547ac58c06e38305a9452..6410ac8c600aa5f1f019dcb6a908a4467587743e 100644 --- a/vdi-compose.yml +++ b/vdi-compose.yml @@ -2,7 +2,7 @@ version: '3.8' services: xfcevdi: - image: vdi:latest + image: danger89/xfcevdi_x2go:latest tty: true container_name: melroy_vdi environment: diff --git a/xfce_settings.sh b/xfce_settings.sh index 5f9977117095d028c076415de6f43f82835b9a6e..898076b4eebb77c95ed3d2e85046703f2b09c581 100755 --- a/xfce_settings.sh +++ b/xfce_settings.sh @@ -11,6 +11,9 @@ if [ ! -f /home/$USER/.local/.xfce_settings_done ]; then xfconf-query -c xfwm4 -p /general/theme -s "Mint-Y-Dark-Blue" xfconf-query -c xfwm4 -p /general/title_font -s "Ubuntu Medium 10" + # Disable XFCE Compositor + xfconf-query -c xfwm4 -p /general/use_compositing -t bool -s false + # Move terminalrc config to correct location mkdir -p /home/$USER/.config/xfce4/terminal/ cp -rf /app/terminalrc /home/$USER/.config/xfce4/terminal/ @@ -24,8 +27,6 @@ if [ ! -f /home/$USER/.local/.xfce_settings_done ]; then # Change bottom-panel to intelligently-hide xfconf-query -c xfce4-panel -p /panels/panel-2/autohide-behavior -n -t int -s 1 - - # TODO: Add PulseAudio plugin to panel # Reset panel(s) once xfce4-panel -r