Home
Softono
a

accetto

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
1

Software by accetto

headless-drawing-g3
Open Source

headless-drawing-g3

# Headless Ubuntu/Xfce containers with VNC/noVNC for diagramming, image editing and 2D/3D drawing ## Project `accetto/headless-drawing-g3` Version: G3v8 *** [User Guide][this-user-guide] - [Docker Hub][this-docker] - [Changelog][this-changelog] - [sibling Wiki][sibling-wiki] - [sibling Discussions][sibling-discussions] ![badge-github-release][badge-github-release] ![badge-github-release-date][badge-github-release-date] ![badge-github-open-issues][badge-github-open-issues] ![badge-github-closed-issues][badge-github-closed-issues] ![badge-github-commits][badge-github-commits] ![badge-github-last-commit][badge-github-last-commit] ![badge-github-stars][badge-github-stars] ![badge-github-forks][badge-github-forks] <!-- ![badge-github-releases][badge-github-releases] --> *** - [Headless Ubuntu/Xfce containers with VNC/noVNC for diagramming, image editing and 2D/3D drawing](#headless-ubuntuxfce-containers-with-vncnovnc-for-diagramming-image-editing-and-2d3d-drawing) - [Project `accetto/headless-drawing-g3`](#project-accettoheadless-drawing-g3) - [Introduction](#introduction) - [Building images](#building-images) - [Image generations](#image-generations) - [Project versions](#project-versions) - [Previous versions](#previous-versions) - [Project goals](#project-goals) - [Project features](#project-features) - [How to fork](#how-to-fork) - [Getting help](#getting-help) - [Credits](#credits) ## Introduction This GitHub repository contains resources and tools for building Docker images for headless working. The images are based on [Ubuntu 24.04 LTS][docker-ubuntu] and include [Xfce][xfce] desktop, [TigerVNC][tigervnc] server and [noVNC][novnc] client. The popular web browsers [Chromium][chromium] and [Firefox][firefox] are also included. The image family provides also selected applications for headless drawing, graphics and modelling. The generic images and some application images include [Mesa3D][mesa3d] libraries and [VirtualGL][virtualgl] toolkit, supporting `OpenGL`, `OpenGL ES`, `WebGL` and other APIs for 3D graphics. They also include the OpenGL test applications `glxgears`, `es2tri` and the OpenGL benchmark [glmark2][glmark2]. This [User guide][this-user-guide] describes the images and how to use them. The content of this GitHub project is intended for developers and image builders. Ordinary users can simply use the images available in the following repositories on Docker Hub: - [accetto/ubuntu-vnc-xfce-opengl-g3][accetto-docker-ubuntu-vnc-xfce-opengl-g3] - [accetto/ubuntu-vnc-xfce-blender-g3][accetto-docker-ubuntu-vnc-xfce-blender-g3] - [accetto/ubuntu-vnc-xfce-drawio-g3][accetto-docker-ubuntu-vnc-xfce-drawio-g3] - [accetto/ubuntu-vnc-xfce-freecad-g3][accetto-docker-ubuntu-vnc-xfce-freecad-g3] - [accetto/ubuntu-vnc-xfce-gimp-g3][accetto-docker-ubuntu-vnc-xfce-gimp-g3] - [accetto/ubuntu-vnc-xfce-inkscape-g3][accetto-docker-ubuntu-vnc-xfce-inkscape-g3] There is also a sibling project [accetto/ubuntu-vnc-xfce-g3][accetto-github-ubuntu-vnc-xfce-g3] containing similar images based on [Ubuntu 24.04, 22.04 and 20.04 LTS][docker-ubuntu]. Another sibling project [accetto/headless-coding-g3][accetto-github-headless-coding-g3] contains images for headless programming. ### Building images You can execute the individual hook scripts in the folder [/docker/hooks/][this-folder-docker-hooks]. However, the provided utilities are more convenient. The script [builder.sh][this-readme-builder] builds individual images. The script [ci-builder.sh][this-readme-ci-builder] can build various groups of images or all of them at once. Before building the images you have to prepare and source the file `secrets.rc` (see [example-secrets.rc][this-example-secrets-file]). Features that are enabled by default can be explicitly disabled via environment variables. This allows building even smaller images by excluding the individual features (e.g. noVNC). The resources for building the individual images and their variations (tags) are in the subfolders of the [/docker/][this-folder-docker] folder. The individual README files contain quick examples of building the images: - [accetto/ubuntu-vnc-xfce-opengl-g3][this-readme-ubuntu-vnc-xfce-opengl-g3] - [accetto/ubuntu-vnc-xfce-blender-g3][this-readme-ubuntu-vnc-xfce-blender-g3] - [accetto/ubuntu-vnc-xfce-drawio-g3][this-readme-ubuntu-vnc-xfce-drawio-g3] - [accetto/ubuntu-vnc-xfce-freecad-g3][this-readme-ubuntu-vnc-xfce-freecad-g3] - [accetto/ubuntu-vnc-xfce-gimp-g3][this-readme-ubuntu-vnc-xfce-gimp-g3] - [accetto/ubuntu-vnc-xfce-inkscape-g3][this-readme-ubuntu-vnc-xfce-inkscape-g3] Each image also has a separate README file intended for Docker Hub. The final files should be generated by the utility [util-readme.sh][this-readme-util-readme-examples] and then copied to Docker Hub manually. The following resources describe the image building subject in details: - [readme-local-building-example.md][this-readme-local-building-example] - [readme-builder.md][this-readme-builder] - [readme-ci-builder.md][this-readme-ci-builder] - [readme-g3-cache.md][this-readme-g3-cache] - [readme-util-readme-examples.md][this-readme-util-readme-examples] - [sibling Wiki][sibling-wiki] ### Image generations This is the **third generation** (G3) of my headless images. The **second generation** (G2) contains the GitHub repository [accetto/xubuntu-vnc-novnc][accetto-github-xubuntu-vnc-novnc]. The **first generation** (G1) contains the GitHub repository [accetto/ubuntu-vnc-xfce][accetto-github-ubuntu-vnc-xfce]. ### Project versions This file describes the **eighths version** (G3v8) of the project. This version brings some changes in the building pipeline and building utilities and it also fixes the problem with the badge service. The service **Badgen.net**, which has been unusable for some time already, was replaced by the service [Shields.io][service-shields-io]. Consequently it was necessary to update all README files of all `accetto` repositories on **Docker Hub**. Therefore there are several new functions that support this kind of scenarios. For example, now it's possible to update the `deployment gists` on the **GitHub** without re-build the images first. The updated hook script `post_push` can extract the badge values ad-hoc from the final deployment images available locally and it doesn't depend on the helper files created during the `pre_build` phase. It would use the images pulled from the **Docker Hub** as well. This change makes it possible to refresh the gists using the "historical" data extracted from previously published images. Gist updates are also more reliable because there will be up to 3 retries if an update fails. The new functionality is available through the updated utility `ci-builder.sh`, which has got the following new commands: - `list` - `pull` - `update-gists` - `helper-help` Please check the files `readme-ci-builder.md` and `readme-builder.md` for the description. However, the project keeps evolving. Please always check the [CHANGELOG][this-changelog] for the latest changes. #### Previous versions The previous versions are still available in this **GitHub** repository as the branches named as `archived-generation-g3v{d}`. The version `G3v7` could build final images significantly faster, because the temporary helper images were used as external caches. Internally, the helper image was built by the `pre_build` hook script and then used by the `build` hook script as an external cache. The helper image was then removed by the `build` hook script and not the `pre_build` hook script as before, unless the `build` script will be skipped. The version `G3v6` added the images based on `Ubuntu 24.04 LTS (Noble Numbat)`. Also the default user `headless:headless (1000:1000)` has been changed to `headless:headless (1001:1001)` in all images, even if it has been technically required only for the images based on `Ubuntu 24.04 LTS (Noble Numbat)`. The version `G3v5` has brought only one significant change comparing to the previous version `G3v4`: - The updated script `set_user_permissions.sh`, which is part of Dockerfiles, skips the hidden files and directories now. It generally should not have any unwanted side effects, but it may make a difference in some scenarios, hence the version increase. The version number `G3v4` has been skipped, to align the numbering with the **sibling project** [accetto/ubuntu-vnc-xfce-g3][accetto-github-ubuntu-vnc-xfce-g3]. The version `G3v3` has brought the following major changes comparing to the previous version `G3v2`: - The updated startup scripts that support overriding the user ID (`id`) and group ID (`gid`) without needing the former build argument `ARG_FEATURES_USER_GROUP_OVERRIDE`, which has been removed. - The user ID and the group ID can be overridden during the build time (`docker build`) and the run time (`docker run`). - The `user name`, the `group name` and the `initial sudo password` can be overridden during the build time. - The permissions of the files `/etc/passwd` and `/etc/groups` are set to the standard `644` after creating the user. - The content of the home folder and the startup folder belongs to the created user. - The created user gets permissions to use `sudo`. The initial `sudo` password is configurable during the build time using the build argument `ARG_SUDO_INITIAL_PW`. The password can be changed inside the container. - The default `id:gid` has been changed from `1001:0` to `1000:1000`. - Features `NOVNC` and `FIREFOX_PLUS`, that are enabled by default, can be disabled via environment variables. - If `FEATURES_NOVNC="0"`, then - image will not include `noVNC` - image tag will get the `-vnc` suffix (e.g. `latest-vnc` etc.) - If `FEATURES_FIREFOX_PLUS="0"` and `FEATURES_FIREFOX="1"`, then - image with Firefox will not include the *Firefox Plus features* - image tag will get the `-default` suffix (e.g. `latest-firefox-default` or also `latest-firefox-default-vnc` etc.) - The images are based on `Ubuntu 22.04 LTS` (formerly on `Ubuntu 20.04 LTS`). The version `G3v2` has brought the following major changes comparing to the previous version `G3v1`: - Significantly improved building performance by introducing a local cache (`g3-cache`). - Auto-building on the **Docker Hub** and using of the **GitHub Actions** have been abandoned. - The enhanced building pipeline moves towards building the images outside the **Docker Hub** and aims to support also stages with CI/CD capabilities (e.g. the **GitLab**). - The **local stage** is the default building stage now. However, the new building pipeline has already been tested also with a local **GitLab** installation in a Docker container on a Linux machine. - Automatic publishing of README files to the **Docker Hub** has been removed, because it was not working properly any more. However, the README files for the **Docker Hub** can still be prepared with the provided utility `util-readme.sh` and then copy-and-pasted to the **Docker Hub** manually. The changes affect only the building pipeline, not the Docker images themselves. The `Dockerfile`, apart from using the new local `g3-cache`, stays conceptually unchanged. Please refer to the [sibling project][accetto-github-ubuntu-vnc-xfce-g3_project-versions] to learn more about the older project versions. ### Project goals Please refer to the [sibling project][accetto-github-ubuntu-vnc-xfce-g3_project-goals] to learn more about the project goals. ### Project features Please refer to the [sibling project][accetto-github-ubuntu-vnc-xfce-g3_project-features] to learn more about the project features. ### How to fork If you want to fork this project, then please check the page [How to fork this repository][sibling-wiki-how-to-fork] in the sibling [Wiki][sibling-wiki]. ### Getting help If you have found a problem or you just have a question, please check the [User guide][this-user-guide], [Issues][this-issues] and the [sibling Wiki][sibling-wiki] first. Please do not overlook the closed issues. If you do not find a solution, you can file a new issue. The better you describe the problem, the bigger the chance it'll be solved soon. If you have a question or an idea and you don't want to open an issue, you can use the [sibling Discussions][sibling-discussions]. ### Credits Credit goes to all the countless people and companies, who contribute to open source community and make so many dreamy things real. *** [this-user-guide]: https://accetto.github.io/user-guide-g3/ [this-docker]: https://hub.docker.com/u/accetto/ [this-changelog]: https://github.com/accetto/headless-drawing-g3/blob/master/CHANGELOG.md [this-issues]: https://github.com/accetto/headless-drawing-g3/issues [this-folder-docker]: https://github.com/accetto/headless-drawing-g3/tree/master/docker [this-folder-docker-hooks]: https://github.com/accetto/headless-drawing-g3/tree/master/docker/hooks [this-example-secrets-file]: https://github.com/accetto/headless-drawing-g3/blob/master/examples/example-secrets.rc [accetto-docker-ubuntu-vnc-xfce-opengl-g3]: https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-opengl-g3 [accetto-docker-ubuntu-vnc-xfce-blender-g3]: https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-blender-g3 [accetto-docker-ubuntu-vnc-xfce-drawio-g3]: https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-drawio-g3 [accetto-docker-ubuntu-vnc-xfce-freecad-g3]: https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-freecad-g3 [accetto-docker-ubuntu-vnc-xfce-gimp-g3]: https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-gimp-g3 [accetto-docker-ubuntu-vnc-xfce-inkscape-g3]: https://hub.docker.com/r/accetto/ubuntu-vnc-xfce-inkscape-g3 [this-readme-ubuntu-vnc-xfce-opengl-g3]: https://github.com/accetto/headless-drawing-g3/blob/master/docker/xfce/README.md [this-readme-ubuntu-vnc-xfce-blender-g3]: https://github.com/accetto/headless-drawing-g3/blob/master/docker/xfce-blender/README.md [this-readme-ubuntu-vnc-xfce-drawio-g3]: https://github.com/accetto/headless-drawing-g3/blob/master/docker/xfce-drawio/README.md [this-readme-ubuntu-vnc-xfce-freecad-g3]: https://github.com/accetto/headless-drawing-g3/tree/master/docker/xfce-freecad [this-readme-ubuntu-vnc-xfce-gimp-g3]: https://github.com/accetto/headless-drawing-g3/blob/master/docker/xfce-gimp/README.md [this-readme-ubuntu-vnc-xfce-inkscape-g3]: https://github.com/accetto/headless-drawing-g3/blob/master/docker/xfce-inkscape/README.md [this-readme-builder]: https://github.com/accetto/headless-drawing-g3/blob/master/readme-builder.md [this-readme-ci-builder]: https://github.com/accetto/headless-drawing-g3/blob/master/readme-ci-builder.md [this-readme-local-building-example]: https://github.com/accetto/headless-drawing-g3/blob/master/readme-local-building-example.md [this-readme-g3-cache]: https://github.com/accetto/headless-drawing-g3/blob/master/readme-g3-cache.md [this-readme-util-readme-examples]: https://github.com/accetto/headless-drawing-g3/blob/master/utils/readme-util-readme-examples.md [accetto-github-ubuntu-vnc-xfce-g3]: https://github.com/accetto/ubuntu-vnc-xfce-g3/ [accetto-github-headless-coding-g3]: https://github.com/accetto/headless-coding-g3 [accetto-github-xubuntu-vnc-novnc]: https://github.com/accetto/xubuntu-vnc-novnc/ [accetto-github-ubuntu-vnc-xfce]: https://github.com/accetto/ubuntu-vnc-xfce [sibling-wiki]: https://github.com/accetto/ubuntu-vnc-xfce-g3/wiki [sibling-wiki-how-to-fork]: https://github.com/accetto/ubuntu-vnc-xfce-g3/wiki/How-to-fork [sibling-discussions]: https://github.com/accetto/ubuntu-vnc-xfce-g3/discussions [accetto-github-ubuntu-vnc-xfce-g3_project-versions]: https://github.com/accetto/ubuntu-vnc-xfce-g3#project-versions [accetto-github-ubuntu-vnc-xfce-g3_project-goals]: https://github.com/accetto/ubuntu-vnc-xfce-g3#project-goals [accetto-github-ubuntu-vnc-xfce-g3_project-features]: https://github.com/accetto/ubuntu-vnc-xfce-g3#changes-and-new-features [docker-ubuntu]: https://hub.docker.com/_/ubuntu/ [chromium]: https://www.chromium.org/Home [firefox]: https://www.mozilla.org [glmark2]: https://github.com/glmark2/glmark2 [mesa3d]: https://mesa3d.org/ [novnc]: https://github.com/kanaka/noVNC [tigervnc]: http://tigervnc.org [virtualgl]: https://virtualgl.org/About/Introduction [xfce]: http://www.xfce.org [badge-github-stars]: https://img.shields.io/github/stars/accetto/headless-drawing-g3?style=flat [badge-github-forks]: https://img.shields.io/github/forks/accetto/headless-drawing-g3?style=flat [badge-github-release]: https://img.shields.io/github/v/release/accetto/headless-drawing-g3 [badge-github-release-date]: https://img.shields.io/github/release-date/accetto/headless-drawing-g3 [badge-github-commits]: https://img.shields.io/github/commit-activity/t/accetto/headless-drawing-g3 [badge-github-last-commit]: https://img.shields.io/github/last-commit/accetto/headless-drawing-g3 [badge-github-open-issues]: https://img.shields.io/github/issues/accetto/headless-drawing-g3 [badge-github-closed-issues]: https://img.shields.io/github/issues-closed/accetto/headless-drawing-g3 [service-shields-io]: https://shields.io/

Diagramming & Flowcharts Video Editing
37 Github Stars