Porteus Kiosk variant "ThinClient"

Porteus Kiosk variant "ThinClient" is built on top of the standard Porteus Kiosk operating system. Its equipped with applications supporting most popular connectivity protocols like: Citrix, RDP, VNC and SSH.

Its intended mainly for educational and company environments although with some changes it could be used anywhere else.


Our goal is to deliver an operating system which works as a client for your existing shared/virtualized desktop infrastructure. Thin client model improves the security (no data are stored locally), simplifies the maintenance and allows to reduce hardware costs and energy consumption as all desktop applications are hosted on the server side.

Why Porteus Kiosk variant "ThinClient" and not any other operating system offering similar functionality?

There are many areas where our system has strong points:

  • Its based on open source components.
  • Its small and copied entirely to RAM offering unmatched speed and stability.
  • Its locked down tightly as inherits most of default system settings from the parent Kiosk project.
  • Is flexible and can be configured in great details with friendly first run wizard.
  • Supports remote management making large deployments easy to maintain.
  • Can be monitored and managed through the Porteus Kiosk Server.
  • Automatic updates are enabled by default.

  • What are the main differences with parent Porteus Kiosk system?

  • Users have an access not only to the browser but also remote client applications: Remmina and Citrix Receiver.
  • Its not possible to control browser UI layout (disable/hide navigation bar, disable address bar), disable input devices or hide mouse cursor as these settings makes no use for the "ThinClient" type of the system.
  • Other API parameters are available so you can configure the browser/system features as you like.
  • Downloads are unblocked and users are allowed to fetch files from the network and store them locally.
  • Removable devices (usb sticks, flash cards) are mounted with write access. Users must click on the "eject removable device" button in order to unmount them safely.
  • Right mouse click is unblocked by default.
  • Bottom panel gives an access to launchers, task manager, volume control, battery applet, clock/calendar and exit session button.

  • How can I automatically start Citrix Receiver standalone application and connect to remote desktop?

    There are few ways to achieve the goal:

    1) Enable full persistence for the session so last connected Citrix server will be remembered:


    Use run_command parameter to autostart Citrix Receiver during system boot:

      run_command=su - guest -c "/opt/Citrix/ICAClient/selfservice --icaroot /opt/Citrix/ICAClient" &

    2) If you want to have only Citrix Receiver available on ThinClient without bottom panel and other applications then please use following parameter:

      run_command=rm -f /opt/scripts/gui-app; ( while true; do su - guest -c "/opt/Citrix/ICAClient/selfservice --icaroot /opt/Citrix/ICAClient"; done; ) &

    3) In order to configure your Citrix session without full persistence but using the 'storebrowse' utility you need to execute it before the 'while true' loop. Please use this parameter:

      run_command=rm -f /opt/scripts/gui-app; su - guest -c "/opt/Citrix/ICAClient/util/storebrowse --addstore https://citrix.domain.com/Citrix/ThinClients"; ( while true; do su - guest -c "/opt/Citrix/ICAClient/selfservice --icaroot /opt/Citrix/ICAClient"; done; ) &

    How can I automatically start Remmina application and connect to remote desktop on multiple clients preserving the same connection settings?

    a) Boot Porteus Kiosk ThinClient, open Remmina application and add new connection to it. Once new connection is saved please confirm that its working by connecting to remote PC. Close Remmina when finished so all data could be saved to relevant setting files.

    b) Your connection file will be created in the /home/guest/.local/share/remmina folder. Please upload it using the browser/SSH to a web storage or Porteus Kiosk Server. When using the browser you need to right mouse click on the filepicker window and activate 'Show Hidden Files' option otherwise you wont be able to find /home/guest/.local folder which is hidden: screenshot.

    c) If you decide to save connection credentials (SSH, VNC, RDP, etc login and password) then you also need to upload /home/guest/.config/remmina/remmina.pref file which contains 'secret=' hash needed for decrypting saved passwords.

    d) Last step is to configure the clients to download connection files and autostart Remmina application during every system boot. You can utilize run_command parameter for this purpose.

    If .remmina file and remmina.pref are hosted on a web storage then please add following parameter to your kiosk config (change download URL and .remmina file name to match yours):

      run_command=su - guest -c "mkdir -p /home/guest/.config/remmina; wget http://domain.com/files/remmina.pref -O /home/guest/.config/remmina/remmina.pref; wget http://domain.com/files/rdp.remmina; remmina -c /home/guest/rdp.remmina &"

    If .remmina file and remmina.pref are hosted on Porteus Kiosk Server then following parameter should be used:

      run_command=mkdir -p /home/guest/.config/remmina; pkget server://remmina.pref /home/guest/.config/remmina; chown -R 1000:1000 /home/guest/.config; pkget server://vnc.remmina /home/guest; su - guest -c "remmina -c /home/guest/vnc.remmina &"

    If you want to have only e.g. SSH connection available on ThinClient without bottom panel and other applications then please use this parameter:

      run_command=rm -f /opt/scripts/gui-app; mkdir -p /home/guest/.config/remmina; wget http://domain.com/files/remmina.pref -O /home/guest/.config/remmina/remmina.pref; chown -R 1000:1000 /home/guest/.config; wget http://domain.com/files/ssh.remmina -O /home/guest/ssh.remmina; ( while true; do su - guest -c "remmina -c /home/guest/ssh.remmina"; done; ) &

    Same scenario for RDP connection files hosted on Porteus Kiosk Server (need to use "while" loop again):

      run_command=rm -f /opt/scripts/gui-app; mkdir -p /home/guest/.config/remmina; pkget server://remmina.pref /home/guest/.config/remmina; chown -R 1000:1000 /home/guest/.config; pkget server://rdp.remmina /home/guest; ( while true; do su - guest -c "remmina -c /home/guest/rdp.remmina"; done; ) &

    Please download Porteus Kiosk variant "ThinClient" from your Customer Panel and provide feedback which is necessary to improve this offering.

    Sample screenshot: