{"id":14155369,"url":"https://github.com/VHSgunzo/runimage","last_synced_at":"2025-08-06T01:31:07.007Z","repository":{"id":62274165,"uuid":"559303747","full_name":"VHSgunzo/runimage","owner":"VHSgunzo","description":"Portable single-file linux container","archived":false,"fork":false,"pushed_at":"2024-06-09T08:35:12.000Z","size":42687,"stargazers_count":39,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-17T08:05:10.780Z","etag":null,"topics":["amd","arch-linux","container","fuse","gaming","intel","linux","live","mangohud","mesa","nvidia","portable","proton","sandbox","squashfs","steam","vkbasalt","vulkan","wine"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VHSgunzo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-29T17:37:38.000Z","updated_at":"2024-08-17T08:05:17.649Z","dependencies_parsed_at":"2024-01-29T06:01:12.534Z","dependency_job_id":"cdca4704-da7c-498e-aac9-a0c50ba82947","html_url":"https://github.com/VHSgunzo/runimage","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VHSgunzo%2Frunimage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VHSgunzo%2Frunimage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VHSgunzo%2Frunimage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VHSgunzo%2Frunimage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VHSgunzo","download_url":"https://codeload.github.com/VHSgunzo/runimage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228821404,"owners_count":17977166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amd","arch-linux","container","fuse","gaming","intel","linux","live","mangohud","mesa","nvidia","portable","proton","sandbox","squashfs","steam","vkbasalt","vulkan","wine"],"created_at":"2024-08-17T08:02:59.667Z","updated_at":"2025-08-06T01:31:06.978Z","avatar_url":"https://github.com/VHSgunzo.png","language":"Shell","funding_links":[],"categories":["vulkan"],"sub_categories":[],"readme":"# RunImage\n\n## **Portable single-file Linux container in unprivileged user namespaces**\n\n![image](screenshots/rim-shell.png)\n\nRunImage is designed to be completely static and portable to run on almost any Linux distribution. It is based on a specially configured [Arch Linux rootfs](https://github.com/VHSgunzo/runimage-rootfs). The technology of single-file containerization is based on [unprivileged user namespaces](https://lwn.net/Articles/531114) and works with a [uruntime](https://github.com/VHSgunzo/uruntime), [DwarFS](https://github.com/mhx/dwarfs) (or [SquashFS](https://docs.kernel.org/filesystems/squashfs.html)) image, statically compiled [binaries](https://github.com/VHSgunzo/runimage-static) and [sharun](https://github.com/VHSgunzo/sharun) for the operation of the container [Run.sh script](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/Run.sh), and containerization itself is carried out by [statically compiled](https://github.com/VHSgunzo/bubblewrap-static/releases) [Bubblewrap](https://github.com/containers/bubblewrap) with [tini](https://github.com/VHSgunzo/tini) as init and [ssrv](https://github.com/VHSgunzo/ssrv) as shell server/client.\n\nIn addition, RunImage has the ability to isolate itself from the main system, use separate portable or sandbox home directories and configuration files for each executable file, and has the ability to run separate X11 servers, including running multiple Xorg servers on TTY (XFCE is used as DE)\n\nYou can use it to develop or run any applications and games, including applications and games for Windows, launch games from retro platforms using popular emulators, work with the office, with remote desktops, multimedia, browsers, messengers, and even run virtual machines with QEMU/KVM and Virt-Manager, USB and block device forwarding in VM also works.\n\nAlso inside the container, you can use various means of proxification, such as proxychains, tor and others and run VNC and SSH servers.\nIn network sandbox mode you can use VPN (tested [openvpn](https://community.openvpn.net/openvpn), [wireguard](https://www.wireguard.com/), [sshuttle](https://github.com/sshuttle/sshuttle), [tun2proxy](https://github.com/blechschmidt/tun2proxy)) and other network tools without root rights.\n\nThe full list of installed packages can be found in the [**releases**](https://github.com/VHSgunzo/runimage/releases/continuous) file `pkg_list{-release-type}.txt`\n\n## Features:\n\n* Supports the `x86_64` and `aarch64` architectures.\n* A portable single executable file with an idea - downloaded and launched. Nothing needs to be installed in the system.\n* Works on most Linux distributions, including even very old ones or without glibc or systemd and in live boot mode.\n* OverlayFS mode (It looks like the usual means of containerization like docker) (See [Usage](https://github.com/VHSgunzo/runimage#usage))\n* Read-Write mount in OverlayFS mode.\n* The ability to en/decrypt container rootfs\n* Running and working without root rights, including package management.\n* The ability to work in a packed and unpacked form.\n* The ability to run both 32-bit and 64-bit executable files.\n* Based on Arch Linux, contains the latest software and [AUR](https://aur.archlinux.org) support.\n* Access to [BlackArch](https://github.com/BlackArch/blackarch) repo.\n* Access to [Chaotic-AUR](https://aur.chaotic.cx) repo.\n* Own Pacman [repository](https://runimage-repo.hf.space) with [mirror](https://github.com/runimage/repo).\n* Updating without extraction runimage and automatic rebuild if the update was successful.\n* The ability to launching AppImage applications with FUSE mount (not needed to extract).\n* The ability to exec commands at the host level (see RIM_ENABLE_HOSTEXEC and [hostexec](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/hostexec))\n* The ability to use both separate home directories for each executable file, and completely seamless use of the system home directory.\n* The ability to use separate container configuration files for each launched executable file\n* There is no performance drawdown. All applications and executable files run at the same speed as in the system\n* The ability to Filesystem, X11, DBUS, UDEV, Network, SystemD, USERs and PIDs sandboxing.\n* Port forwarding in sandbox network mode (TCP, UDP, SOCKS5 proxy and reverse mode supports).\n* Temporary home directory in RAM (can be used as a real private mode for browsers and applications)\n* Sandbox and portable home directory.\n* The ability to launching a full DE in windowed/full screen mode and on TTY\n* Works with any versions of nvidia proprietary drivers\n* Works in Wayland session.\n* Monitoring of running processes\n* Background processes control\n* The ability to execute commands in a single container or in specified container.\n* The ability to start and control SystemD services with [fake-systemd](https://github.com/VHSgunzo/runimage-fake-systemd) package.\n* The ability to use custom rootfs (alpine-based, debian-based, voidlinux-based supports)\n* Usability and comprehensibility.\n\n## Requirements:\n\n* Supported architectures (should work on any Linux kernel architecture. However, it is currently only built for `x86_64` and `aarch64`)\n* Minimum recommended Linux kernel version 4.18+ (tested on Centos 7 with 3.10 and on Ubuntu 12.04 with 3.11 using SUID Bubblewrap and it's works, but 5.0+ with [unprivileged user namespaces](https://lwn.net/Articles/531114) support is recommended)\n* FUSE (but not necessarily, because it is possible to work in unpacked form without FUSE mounting). Also you can create /dev/fuse manually (as root) if the kernel module exists (see this [code](https://github.com/libfuse/libfuse/blob/f0e08cc700d629da2d46def8b620b0ed858cc0d9/util/install_helper.sh#L35)):\n```\nmknod /dev/fuse -m 0666 c 10 229\n```\n\n## To get started:\n\n1. Download continuous release from the [**releases**](https://github.com/VHSgunzo/runimage/releases/continuous) page. ([HF mirror](https://huggingface.co/runimage/releases/tree/main/stable))\n2. Make it executable before run.\n```\nchmod +x runimage\n```\n\n## Usage:\n\n```\n┌──[user@host]─[~]\n└──╼ $ runimage {args} {executable} {executable args}\n\n    rim-help                       Show this usage info\n    rim-version                    Show RunImage, rootfs, static, runtime version\n    rim-pkgls                      Show packages installed in RunImage\n    rim-binls                      Show executables in RunImage\n    rim-shell    {args}            Run RunImage shell or execute a command in RunImage shell\n    rim-desktop  {args}            Launch RunImage desktop\n    rim-ofsls                      Show the list of RunImage OverlayFS\n    rim-ofsrm    {id id ...|all}   Remove OverlayFS\n    rim-build    {args}            Build new RunImage container\n    rim-update   {args}            Update packages and rebuild RunImage\n    rim-kill     {RUNPIDs|all}     Kill running RunImage containers\n    rim-psmon    {args} {RUNPIDs}  Monitoring of processes running in RunImage containers\n    rim-exec     {RUNPID} {args}   Exec command in running container\n    rim-portfw   {RUNPID} {args}   Forward additional ports\n    rim-dinteg   {args}            Desktop integration\n    rim-shrink   {args}            Shrink RunImage rootfs\n    rim-bootstrap {pkg pkg}        Bootstrap new RunImage\n    rim-encfs    {build args}      Encrypt RunImage rootfs\n    rim-decfs    {build args}      Decrypt RunImage rootfs\n    rim-enc-passwd {build args}    Change decrypt password for encrypted RunImage rootfs\n\nOnly for not extracted (RunImage runtime options):\n    --runtime-extract {pattern}          Extract content from embedded filesystem image\n    --runtime-extract-and-run {args}     Run RunImage after extraction without using FUSE\n    --runtime-help                       Show RunImage runtime help\n    --runtime-offset                     Print byte offset to start of embedded\n    --runtime-portable-home              Create a portable home folder to use as $HOME\n    --runtime-portable-config            Create a portable config folder to use as $XDG_CONFIG_HOME\n    --runtime-version                    Print version of RunImage runtime\n    --runtime-mount                      Mount embedded filesystem image and print\n                                            mount point and wait for kill with Ctrl-C\n    --runtime-squashfuse {args}          Launch squashfuse\n    --runtime-unsquashfs {args}          Launch unsquashfs\n    --runtime-mksquashfs {args}          Launch mksquashfs\n    --runtime-dwarfs     {args}          Launch dwarfs\n    --runtime-dwarfsck   {args}          Launch dwarfsck\n    --runtime-mkdwarfs   {args}          Launch mkdwarfs\n    --runtime-dwarfsextract {args}       Launch dwarfsextract\n\nConfiguration environment variables:\n    RIM_ROOTFS=/path/rootfs                  Specifies custom rootfs (0 to disable)\n    RIM_NO_NET=1                             Disables network access\n    RIM_TMP_HOME=1                           Creates tmpfs /home/$USER and /root in RAM and uses it as $HOME\n    RIM_TMP_HOME_DL=1                        As above, but with binding $HOME/Downloads dir\n    RIM_SANDBOX_HOME=1                       Creates sandbox home dir\n    RIM_SANDBOX_HOME_DL=1                    As above, but with binding $HOME/Downloads dir\n    RIM_SANDBOX_HOME_DIR=/path/dir           Specifies sandbox home dir\n    RIM_UNSHARE_HOME=1                       Unshares host home dir\n    RIM_UNSHARE_HOME_DL=1                    As above, but with binding $HOME/Downloads dir\n    RIM_PORTABLE_HOME=1                      Creates a portable home dir and uses it as $HOME\n    RIM_PORTABLE_HOME_DIR=/path/dir          Specifies a portable home dir and uses it as $HOME\n    RIM_PORTABLE_CONFIG=1                    Creates a portable config dir and uses it as $XDG_CONFIG_HOME\n    RIM_NO_CLEANUP=1                         Disables unmounting and cleanup mountpoints\n    RIM_UNSHARE_PIDS=1                       Unshares all host processes\n    RIM_UNSHARE_USERS=1                      Don't bind-mount /etc/{passwd,group}\n    RIM_UNSHARE_HOSTNAME=1                   Unshares UTS namespace and hostname\n    RIM_UNSHARE_HOSTS=1                      Unshares host /etc/hosts\n    RIM_UNSHARE_RESOLVCONF=1                 Unshares host /etc/resolv.conf\n    RIM_UNSHARE_RUN=1                        Unshares host /run\n    RIM_SHARE_SYSTEMD=1                      Shares host SystemD\n    RIM_UNSHARE_DBUS=1                       Unshares host DBUS\n    RIM_UNSHARE_UDEV=1                       Unshares host UDEV (/run/udev)\n    RIM_UNSHARE_XDGRUN=1                     Unshares host $XDG_RUNTIME_DIR\n    RIM_UNSHARE_XDGSOUND=1                   Unshares host $XDG_RUNTIME_DIR sound sockets\n    RIM_UNSHARE_MODULES=1                    Unshares host kernel modules (/usr/lib/modules)\n    RIM_UNSHARE_LOCALTIME=1                  Unshares host localtime (/etc/localtime)\n    RIM_UNSHARE_NSS=1                        Unshares host NSS (/etc/nsswitch.conf)\n    RIM_UNSHARE_TMP=1                        Unshares host /tmp\n    RIM_UNSHARE_TMPX11UNIX=1                 Unshares host /tmp/.X11-unix\n    RIM_UNSHARE_DEF_MOUNTS=1                 Unshares default mount points (/mnt /media /run/media)\n    RIM_SHARE_BOOT=1                         Shares host /boot\n    RIM_SHARE_ICONS=1                        Shares host /usr/share/icons\n    RIM_SHARE_FONTS=1                        Shares host /usr/share/fonts\n    RIM_SHARE_THEMES=1                       Shares host /usr/share/themes\n    RIM_SHARE_PKGCACHE=1                     Shares host packages cache\n    RIM_BIND=/path:/path,/path1:/path1       Binds specified paths to the container\n    RIM_BIND_PWD=1                           Binds $PWD to the container\n    RIM_NO_NVIDIA_CHECK=1                    Disables checking the nvidia driver version\n    RIM_SYS_NVLIBS=1                         Try to use system Nvidia libraries\n    RIM_NO_32BIT_NVLIBS_CHECK=1              Disable 32-bit Nvidia libraries check\n    RIM_NVIDIA_DRIVERS_DIR=/path/dir         Specifies custom Nvidia driver images dir\n    RIM_CACHEDIR=/path/dir                   Specifies custom RunImage cache dir\n    RIM_OVERFSDIR=/path/dir                  Specifies custom RunImage OverlayFS dir\n    RIM_OVERFS_MODE=1                        Enables OverlayFS mode\n    RIM_NO_BWRAP_OVERLAY=1                   Disables Bubblewrap overlay for OverlayFS mode\n    RIM_NO_CRYPTFS_MOUNT=1                   Disables mount encrypted RunImage rootfs\n    RIM_KEEP_OVERFS=1                        Enables OverlayFS mode with saving after closing RunImage\n    RIM_OVERFS_ID=ID                         Specifies the OverlayFS ID\n    RIM_SHELL=shell                          Selects $SHELL in RunImage\n    RIM_NO_CAP=1                             Disables Bubblewrap capabilities (Default: ALL, drop CAP_SYS_NICE)\n                                                    you can also use nocap in RunImage\n    RIM_IN_SAME_PTY=1                        Start shell session in same PTY\n    RIM_TTY_ALLOC_PTY=1                      Allocate PTY for shell session on TTY\n    RIM_AUTORUN='{executable} {args}'        Autorun mode for executable from PATH (0 to disable)\n    RIM_RUN_IN_ONE=1                         Execute commands in one container\n    RIM_ALLOW_ROOT=1                         Allows to run RunImage under root user\n    RIM_QUIET_MODE=1                         Disables all non-error RunImage messages\n    RIM_NO_WARN=1                            Disables all warning RunImage messages\n    RIM_NOTIFY=1                             Enables non-error RunImage notification\n    RUNTIME_EXTRACT_AND_RUN=1                Run RunImage after extraction without using FUSE\n    TMPDIR=/path/TMPDIR                      Used for extract and run options\n    RIM_CONFIG=/path/config.rcfg             RunImage сonfiguration file (0 to disable)\n    RIM_ENABLE_HOSTEXEC=1                    Enables the ability to execute commands at the host level\n    RIM_HOST_TOOLS=cmd,cmd                   Enables specified commands from the host (0 to disable)\n    RIM_HOST_XDG_OPEN=1                      Enables xdg-open from the host\n    RIM_WAIT_RPIDS_EXIT=1                    Wait for all processes to exit\n    RIM_EXEC_SAME_PWD=1                      Use same $PWD for rim-exec and hostexec\n    RIM_SANDBOX_NET=1                        Creates a network sandbox\n    RIM_SNET_SHARE_HOST=1                    Creates a network sandbox with access to host loopback\n    RIM_SNET_CIDR=11.22.33.0/24              Specifies TAP iface subnet in network sandbox (Def: 10.0.2.0/24)\n    RIM_SNET_TAPNAME=tap0                    Specifies TAP iface name in network sandbox (Def: eth0)\n    RIM_SNET_MAC=B6:40:E0:8B:A6:D7           Specifies TAP iface MAC in network sandbox (Def: random)\n    RIM_SNET_MTU=65520                       Specifies TAP iface MTU in network sandbox (Def: 1500)\n    RIM_SNET_TAPIP=11.22.33.44               For set TAP iface IP in network sandbox mode (Def: 10.0.2.100)\n    RIM_SNET_PORTFW='2222:22 R:53:53/UDP'    Enables port forwarding in network sandbox mode (1 to enable)\n    RIM_SNET_DROP_CIDRS=1                    Drop access to host CIDR's in network sandbox mode\n    RIM_HOSTS_FILE=/path/hosts               Binds specified file to /etc/hosts (0 to disable)\n    RIM_RESOLVCONF_FILE=/path/resolv.conf    Binds specified file to /etc/resolv.conf (0 to disable)\n    RIM_BWRAP_ARGS+=()                       Array with Bubblewrap arguments (for config file)\n    RIM_EXEC_ARGS+=()                        Array with Bubblewrap exec arguments (for config file)\n    RIM_CRYPTFS_PASSFILE=/path/passfile      Specifies passfile for decrypt encrypted RunImage rootfs\n    RIM_XORG_CONF=/path/xorg.conf            Binds xorg.conf to /etc/X11/xorg.conf in RunImage (0 to disable)\n                                                    (Default: /etc/X11/xorg.conf bind from the system)\n    RIM_SYS_BWRAP=1                          Using system bwrap\n    RIM_SYS_SQFUSE=1                         Using system squashfuse\n    RIM_SYS_UNSQFS=1                         Using system unsquashfs\n    RIM_SYS_MKSQFS=1                         Using system mksquashfs\n    RIM_SYS_UNIONFS=1                        Using system unionfs\n    RIM_SYS_SLIRP=1                          Using system slirp4netns\n    RIM_SYS_GOCRYPTFS=1                      Using system gocryptfs\n    RIM_SYS_TOOLS=1                          Use all binaries from the system\n                                                If they are not found in the system - auto return to the built-in\n    rim-build:\n    RIM_KEEP_OLD_BUILD=1                     Creates a backup of the old RunImage when building a new one\n    RIM_CMPRS_FS={sqfs|dwfs}                 Specifies the compression filesystem for RunImage build\n    RIM_CMPRS_BSIZE={1M|20}                  Specifies the compression filesystem block size for RunImage build\n    RIM_CMPRS_ALGO={zstd|xz|lz4}             Specifies the compression algo for RunImage build\n    RIM_CMPRS_LVL={1-22|1-9|1-12}            Specifies the compression ratio for RunImage build\n    RIM_BUILD_DWFS_HFILE=/path               DwarFS hotness list file (Default: $RUNIMAGEDIR/dwarfs.prof) (0 to disable)\n    rim-update:\n    RIM_UPDATE_SHRINK=1                      Run rim-shrink --all after update\n    RIM_UPDATE_CLEANUP=1                     Run rim-shrink --pkgcache after update\n    rim-dinteg:\n    RIM_DINTEG=1                             Enables desktop integration pacman hook\n    RIM_DINTEG_MIME=1                        Desktop integration with MIME types\n    RIM_DINTEG_DIR=/path                     Desktop integration directory (Default: $HOME/.local/share)\n    rim-desktop:\n    RIM_XEPHYR_SIZE=HEIGHTxWIDTH             Sets RunImage desktop resolution (Default: 1600x900)\n    RIM_DESKTOP_DISPLAY=9999                 Sets RunImage desktop $DISPLAY (Default: 1337)\n    RIM_XEPHYR_FULLSCREEN=1                  Starts RunImage desktop in full screen mode\n    RIM_DESKTOP_UNCLIP=1                     Disables clipboard synchronization for RunImage desktop\n    rim-shrink:\n    RIM_SHRINK_ALL=1                         Shrink all\n    RIM_SHRINK_BACK=1                        Shrink backup files '*.old' '*.back'\n    RIM_SHRINK_STATICLIBS=1                  Shrink static libs '*.a'\n    RIM_SHRINK_DOCS=1                        Shrink /usr/share/{man,doc,help,info,gtk-doc} and '*.md' 'README*'\n    RIM_SHRINK_STRIP=1                       Strip all debugging symbols \u0026 sections\n    RIM_SHRINK_LOCALES=1                     Shrink all locales except uk ru en en_US\n    RIM_SHRINK_OBJECTS=1                     Shrink object files '*.o'\n    RIM_SHRINK_PKGCACHE=1                    Shrink packages cache\n    RIM_SHRINK_SRC=1                         Shrink source code files for build\n    RIM_SHRINK_PYCACHE=1                     Shrink '__pycache__' directories\n```\n## Other environment variables at runtime:\n|||\n|---|---|\n|INSIDE_RUNIMAGE=1                      |      If inside RunImage                     |\n|RUNIMAGE=/path/runimage                |      RunImage path (for packed)             |\n|RUNOFFSET=1234                         |      Image offset (for packed)              |\n|ARG0=runimage                          |      Null argument                          |\n|RUNPID=1234                            |      PID of Run.sh script                   |\n|RUNPPID=1233                           |      Parent PID of Run.sh script            |\n|RUNDIR=/path/RunDir                    |      Run binary directory                   |\n|RUNROOTFS=/path/rootfs                 |      RootFS directory                       | \n|RUNSTATIC=/path/static                 |      Static binaries directory              |\n|RUNIMAGEDIR=/path/dir                  |      RunImage or RunDir directory           |\n|RUNCONFIGDIR=/path/config              |      RunImage external configs directory    |\n|SANDBOXHOMEDIR=/path/sandbox-home      |      Sandbox homes directory                |\n|PORTABLEHOMEDIR=/path/portable-home    |      Portable homes directory               |\n|RUNCACHEDIR=/path/cache                |      Cache directory                        |\n|NVIDIA_DRIVERS_DIR=/path/nvidia-drivers|      Nvidia driver images directory         |\n|RUNSRCNAME=runimage                    |      RunImage or link or executable name    |\n|RUNIMAGE_VERSION=1.2.3                 |      RunImage version                       |\n|RUNROOTFS_VERSION=1.2.3                |      RootFS version                         |\n|RUNSTATIC_VERSION=1.2.3                |      Static version                         |\n|RUNRUNTIME_VERSION=1.2.3               |      RunImage runtime version               |\n|RUNOVERFSDIR=/path/overlayfs           |      Directory for all OverlayFS            |\n|OVERFS_DIR=/path/overlayfs/id          |      OverlayFS ID directory                 |\n|OVERFS_MNT=/path/overlayfs/id/mnt      |      OverlayFS ID mount directory           |\n|RUNRUNTIME=/path/uruntime              |      RunImage runtime                       |\n|RUNROOTFSTYPE=base                     |      Rootfs type                            |\n|FUSE_PIDS=1235                         |      PIDs of all RunImage FUSE tools        |\n|RUNUSER=user                           |      The name of the user who runs RunImage |\n|REUIDDIR=/tmp/.r$EUID                  |      RunImage EUID working directory        |\n|RUNTMPDIR=$REUIDDIR/run                |      RunImage RUNPIDs working directory     |\n|RUNPIDDIR=$RUNTMPDIR/$RUNPID           |      RunImage RUNPID working directory      |\n|BWINFFL=$RUNPIDDIR/bwinf               |      Bubblewrap info file                   |\n|RIMENVFL=$RUNPIDDIR/rimenv             |      RIM environment variables file         |\n|RUNDIRFL=$RUNPIDDIR/rundir             |      RunImage RunDir path file              |\n\n## Utils scripts:\n|||\n|---|---|\n|[cip](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/cip)                      |  Сheck public ip                                                |\n|[dbus-flmgr](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/dbus-flmgr)        |  Launch the system file manager via dbus                        |\n|[getdimg](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/getdimg)              |  For download docker container images                           |\n|[hostexec](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/hostexec)            |  For execute commands at the host level (see ENABLE_HOSTEXEC)   |\n|[httpfw](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/httpfw)                |  For expose a local HTTP web service to the internet            |\n|[nocap](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/nocap)                  |  Disables container capabilities                                |\n|[pac](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/pac)                      |  sudo pacman (fake sudo)                                        |\n|[packey](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/packey)                |  sudo pacman-key (fake sudo)                                    |\n|[panelipmon](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/panelipmon)        |  Shows information about an active network connection           |\n|[rim-bootstrap](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/rim-bootstrap)  |  For bootstrap new runimage                                     |\n|[rim-build](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/rim-build)          |  For the runimage build                                         |\n|[rim-desktop](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/rim-desktop)      |  For the desktop mode                                           |\n|[rim-dinteg](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/rim-dinteg)        |  For desktop integration                                        |\n|[rim-psmon](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/rim-psmon)          |  For monitoring of processes running in runimage containers     |\n|[rim-shrink](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/rim-shrink)        |  For shrinking unnecessary files                                |\n|[rim-update](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/rim-update)        |  For runimage update                                            |\n|[tcpfw](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/tcpfw)                  |  For expose a local TCP port to the internet                    |\n|[webm2gif](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/webm2gif)            |  Convert webm to gif                                            |\n|[xclipfrom](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/xclipfrom)          |  For clipboard synchronization in desktop mode                  |\n|[xclipsync](https://github.com/VHSgunzo/runimage/blob/main/rootfs/var/RunDir/utils/xclipsync)          |  For clipboard synchronization in desktop mode                  |\n\n## Additional information:\n    You can create a symlink/hardlink to runimage or rename runimage and give it the name\n        of some executable from the PATH, this will allow you to run\n        runimage in autorun mode for this executable.\n    \n    The same principle applies to the RIM_AUTORUN env var:\n        ┌─[user@host]─[~]\n        └──╼ $ RIM_AUTORUN=\"ls -la\" runimage {autorun executable args}\n    \n    Here runimage will become something like an alias for 'ls' in runimage\n        with the '-la' argument. You can also use RIM_AUTORUN as an array \n        for complex commands in the config.\n        RIM_AUTORUN=(\"ls\" \"-la\" \"/path/to something\")\n    This will also work in extracted form.\n\n    When using the RIM_PORTABLE_HOME and RIM_PORTABLE_CONFIG variables, runimage will create or\n        search for these directories next to itself. The same behavior will occur when\n        adding a runimage or Run binary or renamed or symlink/hardlink to them in the PATH\n        it can be used both extracted and compressed and for all executable files being run:\n            \"$PORTABLEHOMEDIR/Run\"\n            \"$RUNIMAGEDIR/Run.config\"\n        if a symlink/hardlink to runimage is used:\n            \"$PORTABLEHOMEDIR/{symlink/hardlink_name}\"\n            \"$RUNIMAGEDIR/{symlink/hardlink_name}.config\"\n        or with runimage/Run name:\n            \"$PORTABLEHOMEDIR/{runimage/Run_name}\"\n            \"$RUNIMAGEDIR/{runimage/Run_name}.config\"\n        It can also be with the name of the executable file from RIM_AUTORUN env var,\n            or with the same name as the executable being run.\n    RIM_SANDBOX_HOME* similar to RIM_PORTABLE_HOME, but the system HOME becomes isolated.\n    RIM_SANDBOX_HOME_DIR and RIM_PORTABLE_HOME_DIR point to a specific directory or create it in the absence of.\n\n    RunImage uses fakechroot and fakeroot, which allows you to use root commands, including in\n        unpacked form, to update the rootfs or install/remove packages.\n        sudo and pkexec have also been replaced with fake ones.\n\n### RunImage configuration file:\n    Special BASH-syntax file with the .rcfg extension, which describes additional\n        instructions and env vars for run runimage.\n    Configuration file can be located next to runimage:\n        \"$RUNIMAGEDIR/{runimage/Run_name}.rcfg\"\n    it can be used both extracted and compressed and for all executable files being run:\n        \"$RUNIMAGEDIR/Run.rcfg\"\n    if a symlink/hardlink to runimage is used:\n        \"$RUNIMAGEDIR/{symlink/hardlink_name}.rcfg\"\n    or in $RUNCONFIGDIR directory:\n        \"$RUNCONFIGDIR/Run.rcfg\"\n        \"$RUNCONFIGDIR/{runimage/Run_name}.rcfg\"\n        \"$RUNCONFIGDIR/{symlink/hardlink_name}.rcfg\"\n    It can also be with the name of the executable file from RIM_AUTORUN env var,\n        or with the same name as the executable being run.\n    In $RUNDIR/config there are default configs in RunImage, they are run in priority,\n        then external configs are run if they are found.\n\n### RunImage desktop:\n    Ability to run RunImage in desktop mode. Default DE: XFCE\n    For RunImage desktop to work, PIDs and DBUS unsharing is required. This will happen \n        automatically when running outside the container.\n    If the launch is carried out from an already running desktop, then Xephyr will start\n        in windowed/full screen mode (see RIM_XEPHYR_* env vars)\n        Use CTRL+SHIFT to grab the keyboard and mouse.\n    It is also possible to run on TTY with Xorg (see RIM_XORG_CONF env vars)\n        To do this, just log in to TTY and run RunImage desktop.\n    Important! The launch on the TTY should be carried out only under the user under whom the\n        login to the TTY was carried out.\n    \n    [ Usage ]: rim-desktop [OPTIONS]\n    [ Options ]:\n        -d, --display       Sets $DISPLAY (env: RIM_DESKTOP_DISPLAY=1337)\n        -f, --fullscreen    Starts Xephyr in fullscreen mode (env: RIM_XEPHYR_FULLSCREEN=1)\n        -h, --help          Show this message\n        -s, --size          Sets Xephyr resolution (env: RIM_XEPHYR_SIZE=1600x900)\n        -u, --unclip        Disables clipboard synchronization (env: RIM_DESKTOP_UNCLIP=1)\n\n### RunImage OverlayFS:\n    Allows you to create additional separate layers to modify the container filesystem without\n        changing the original container filesystem. Works by unionfs-fuse and Bubblewrap overlay \n        in packed and unpacked. Also, in packed form, it allows you to mount the container in Read-Write mode.\n    \n    It also allows you to attach to the same OverlayFS when you specify it's ID. \n        If OverlayFS with such ID does not exist, it will be created:\n    ┌─[user@host]─[~]\n    └──╼ $ RIM_OVERFS_ID=1337 runimage {args}\n    \n    To save OverlayFS after closing the container, use RIM_KEEP_OVERFS:\n    ┌─[user@host]─[~]\n    └──╼ $ RIM_KEEP_OVERFS=1 runimage {args}\n    \n    To run a one-time OverlayFS, use RIM_OVERFS_MODE:\n    ┌─[user@host]─[~]\n    └──╼ $ RIM_OVERFS_MODE=1 runimage {args}\n    \n    You can also disable the Bubblewrap overlay using RIM_NO_BWRAP_OVERLAY=1, but in this case\n        the Read-Write speed will decrease.\n    \n    For show the list of RunImage OverlayFS use rim-ofsls:\n    ┌─[user@host]─[~]\n    └──╼ $ runimage rim-ofsls\n    \n    For remove OverlayFS use rim-ofsrm:\n    ┌─[user@host]─[~]\n    └──╼ $ runimage rim-ofsrm [ID ID...|all]\n\n### RunImage build:\n    Allows you to create your own runimage containers.\n    By default, runimage is created in the current directory with a standard name, \n        with DwarFS filesystem, zstd 1 lvl compression and 128 KB block size.\n        If a new RunImage is successfully build, the old one is deleted.\n    To optimize the launch of an image with the DwarFS filesystem, you can run the \n        runimage with open file profiling enabled (env var DWARFS_ANALYSIS_FILE=dwarfs.prof)\n        Then you can rebuild the image. The file will be automatically found in the directories:\n        $RUNIMAGEDIR/dwarfs.prof\n        $RUNIMAGEDIR/config/dwarfs.prof\n        $RUNDIR/config/dwarfs.prof\n        Or you can specify it in the RIM_BUILD_DWFS_HFILE=/dwarfs.prof var (see rim-build usage)\n    \n    This works both externally by passing build args:\n    ┌─[user@host]─[~]\n    └──╼ $ runimage rim-build {build args}\n    \n    And it also works inside the running:\n    ┌─[user@runimage]─[~]\n    └──╼ $ rim-build {build args}\n    \n    [ Usage ]: rim-build [OPTIONS] /path/runimage\n    [ Options ]:\n        -b, --bsize '1M|20'       Set block size (env: RIM_CMPRS_BSIZE=1M)\n        -c, --clvl  '1-22'        Set compression level (env: RIM_CMPRS_LVL=1)\n        -d, --dwfs                Use DwarFS file system (env: RIM_CMPRS_FS=dwfs)\n        -f, --dwfs-hfile '/path'  DwarFS hotness list file (env: RIM_BUILD_DWFS_HFILE=/path) (0 to disable)\n        -l, --lz4                 Use lz4 compression (for DwarFS clvl 1-12) (env: RIM_CMPRS_ALGO=lz4)\n        -h, --help                Show this message\n        -k, --keep                Creates a backup of the old RunImage (env: RIM_KEEP_OLD_BUILD=1)\n        -s, --sqfs                Use SquashFS file system (env: RIM_CMPRS_FS=sqfs)\n        -x, --xz                  Use xz (lzma for DwarFS clvl 1-9) compression (env: RIM_CMPRS_ALGO=xz)\n        -z, --zstd                Use zstd compression (clvl 1-22) (env: RIM_CMPRS_ALGO=zstd)\n\n### RunImage update:\n    Allows you to update packages and rebuild RunImage. When running outside the container, \n        rim-update can also take rim-build arguments to build a new RunImage in case of \n        successful package updates.\n    ┌─[user@host]─[~]\n    └──╼ $ runimage rim-update [OPTIONS] {build args}\n    \n    And it also works inside runimage:\n    ┌─[user@runimage]─[~]\n    └──╼ $ rim-update [OPTIONS] {build args}\n    \n    By default, update and rebuild is performed in \"$RUNIMAGEDIR\"\n\n    [ Usage ]: rim-update [OPTIONS]\n    [ Options ]:\n        --shrink     Run rim-shrink --all after update (env: RIM_UPDATE_SHRINK=1)\n        --cleanup    Run rim-shrink --pkgcache after update (env: RIM_UPDATE_CLEANUP=1)\n        -h, --help   Show this message\n\n### RunImage network sandbox:\n    Allows you to create a private network namespace with slirp4netns and inside the container\n        manage routing, create/delete network interfaces, connect to a vpn (checked openvpn\n        and wireguard), configure your resolv.conf and hosts, etc. (see RIM_SANDBOX_NET and RIM_SNET_*)\n    By default, network sandbox created in 10.0.2.0/24 subnet, with eth0 TAP name, 10.0.2.100 TAP ip,\n        1500 TAP MTU, and random MAC.\n    And you can also enable port forwarding in network sandbox mode with modifyed chisel.\n        Supported TCP, UDP port forwarding, socks5 proxy and reverse mode.\n    \n    For example, this will forward 22 TCP port from container to 2222 TCP port in host,\n        reverse forward 53 UDP port from host to 53 UDP port in container\n        and start socks5 proxy to container on 1080 port in host:\n    ┌─[user@host]─[~]\n    └──╼ $ RIM_SNET_PORTFW='2222:22 R:53:53/UDP 1080:socks' runimage {args}\n    \n    You can also run additional port forwarding on a running container with enabled port forwardin option:\n    ┌─[user@host]─[~]\n    └──╼ $ runimage rim-portfw $RUNPID 8080:80 123:123/UDP\n    \n    Also network access in container may be disabled with RIM_NO_NET=1\n\n### RunImage hostexec:\n    Allows you to run commands at the host level with ssrv shell server/client.\n    ┌─[user@host]─[~]\n    └──╼ $ RIM_ENABLE_HOSTEXEC=1 runimage {args}\n    \n    [ Usage ]: hostexec [OPTIONS] {executable} {executable args}\n    [ Options ]:\n        -su, --superuser  {args}     Execute command as superuser\n        -t,  --terminal   {args}     Execute command in host terminal\n        -h,  --help                  Show this message\n\n### RunImage desktop integration:\n    Allows you to integrate applications from a container into the system application menu.\n    You can also enable pacman hook with RIM_DINTEG=1 env var to automatically add and remove \n        applications to the system menu when working with the package manager inside the container.\n    \n    [ Usage ]: rim-dinteg [OPTIONS] app app...\n    [ Options ]:\n        -a, --add     [num|name|all|mime] Add applications to apps menu\n        -h, --help                        Show this message\n        -l, --list    [a|added]           List applications\n        -m, --mime                        With MIME types (env: RIM_DINTEG_MIME=1)\n        -d, --dinteg-dir /path            Desktop integration directory (env: RIM_DINTEG_DIR=/path)\n        -v, --verbose                     Verbose output\n        -r, --remove  [num|name|all|mime] Remove applications from apps menu\n\n### RunImage processes monitoring:\n    Allows you to monitor the processes running in the container.\n    \n    [ Usage ]: rim-psmon [OPTIONS] RUNPIDs\n    [ Options ]:\n        -p, --ps       Print the list of RunImage processes\n        -h, --help     Show this message\n\n### RunImage shrink:\n    Allows you to reduce the size of the container by deleting some files.\n    \n    [ Usage ]: rim-shrink [OPTIONS] /path/RunDir\n    [ Options ]:\n        -a, --all         Shrink all (env: RIM_SHRINK_ALL=1)\n        -b, --back        Shrink backup files '*.old' '*.back' (env: RIM_SHRINK_BACK=1)\n        -c, --staticlibs  Shrink static libs '*.a' (env: RIM_SHRINK_STATICLIBS=1)\n        -d, --docs        Shrink /usr/share/{man,doc,help,info,gtk-doc} and '*.md' 'README*' (env: RIM_SHRINK_DOCS=1)\n        -s, --strip       Strip all debugging symbols \u0026 sections (env: RIM_SHRINK_STRIP=1)\n        -l, --locales     Shrink all locales except uk ru en en_US (env: RIM_SHRINK_LOCALES=1)\n        -o, --objects     Shrink object files '*.o' (env: RIM_SHRINK_OBJECTS=1)\n        -p, --pkgcache    Shrink packages cache (env: RIM_SHRINK_PKGCACHE=1)\n        -r, --src         Shrink source code files for build (env: RIM_SHRINK_SRC=1)\n        -y, --pycache     Shrink '__pycache__' directories (env: RIM_SHRINK_PYCACHE=1)\n        -h, --help        Show this message\n        -v, --verbose     Verbose output\n\n### RunImage bootstrap:\n    Allows you to create a new RunImage from a base Docker image archlinux:base for x86_64 \n        and lopsided/archlinux:latest for aarch64.\n    You can also specify additional packages that you want to add to the container.\n    \n    ┌─[user@host]─[~]\n    └──╼ $ runimage rim-bootstrap {pkg pkg}\n    \n    ┌─[user@host]─[~] - for aarch64 (required qemu-user-static in x86_64 system)\n    └──╼ $ TARGETARCH=arm64 runimage rim-bootstrap {pkg pkg}\n\n### RunImage encryption:\n    Allows you to en/decrypt rootfs with gocryptfs.\n    \n    Encrypt RunImage rootfs:\n    ┌─[user@host]─[~]\n    └──╼ $ runimage rim-encfs {build args}\n    \n    Decrypt RunImage rootfs:\n    ┌─[user@host]─[~]\n    └──╼ $ runimage rim-decfs {build args}\n    \n    You can also specify the build args, and after successful en/decryption, the runimage \n        will be rebuild with the specified parameters.\n    You can also specify passfile with RIM_CRYPTFS_PASSFILE=/path/passfile env var \n        for automatic decryption, or by default, the passfile will be searched in:\n        \"$RUNDIR/passfile\"\n        \"$RUNIMAGEDIR/passfile\"\n\n### RunImage custom rootfs:\n    Allows you to use custom rootfs with RIM_ROOTFS=/path/rootfs env var.\n    \n    You can also use getdimg to download a Docker image:\n    [ Usage ]: /home/user/.local/bin/getdimg [OPTIONS] dir image[:tag][@digest] ...\n    /home/user/.local/bin/getdimg /tmp/my-images hello-world:latest alpine:3.18 ghcr.io/void-linux/void-musl:latest\n    /home/user/.local/bin/getdimg /tmp/specific-digest hello-world:latest@sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7\n\n    [ Options ]:\n        -a, --arch            Override the machine architecture (env: TARGETARCH=amd64)\n            --variant         Override the machine architecture variant (env: TARGETVARIANT=v8)\n        -x, --extract         Extract image layers (env: EXTRACT_LAYERS=1)\n        -h, --help            Show this message\n    \n    For example, you can use alpine (and others) rootfs with RunImage:\n    ┌─[user@host]─[~]\n    └──╼ $ ./runimage getdimg --extract rootfs alpine:latest\n    \n    Do not forget to configure the DNS server (if it is not already configured):\n    ┌─[user@host]─[~]\n    └──╼ $ echo -e 'nameserver 1.1.1.1\\nnameserver 8.8.8.8' \u003e rootfs/etc/resolv.conf\n    \n    And then just run runimage. By default, custom rootfs will be searched in \"$RUNIMAGEDIR/rootfs\":\n    ┌─[user@host]─[~]\n    └──╼ $ ./runimage {args}\n    \n    If you are going to build RunImage with custom rootfs, then do not forget to install \n        the necessary dependencies for operation of Run.sh and others runimage scripts:\n    ┌─[user@host]─[~]\n    └──╼ $ RIM_ROOT=1 ./runimage apk add bash coreutils curl findutils gawk grep iproute2 kmod procps-ng \\\n        sed tar util-linux which gocryptfs libnotify lsof slirp4netns socat xhost gzip xz zstd lz4 jq binutils \\\n        patchelf nftables iptables openresolv iputils file\n    \n    And then you can run the build:\n    ┌─[user@host]─[~]\n    └──╼ $ ./runimage rim-build runimage-alpine -c 22 -b 24\n\n### For Nvidia users with a proprietary driver:\n    If the nvidia driver version does not match in runimage and in the host, runimage\n        will make an image with the nvidia driver of the required version from local Nvidia libs,\n        or from official Nvidia driver installer, or will download a ready-made image \n        from the repository and further used as an additional module to runimage.\n    You can download a ready-made driver image from the releases or build driver image manually:\n        https://github.com/VHSgunzo/runimage-nvidia-drivers\n    In runimage, a fake version of the nvidia driver is installed by default to reduce the size:\n        https://github.com/VHSgunzo/runimage-fake-nvidia-driver\n    But you can also install the usual nvidia driver of your version in runimage.\n    Checking the nvidia driver version can be disabled using RIM_NO_NVIDIA_CHECK=1 env var.\n    You can also force an attempt to use the local version of the driver using RIM_SYS_NVLIBS=1 env var.\n        When searching for libs, a search for 32-bit versions will also be performed, \n        this can be disabled using RIM_NO_32BIT_NVLIBS_CHECK=1 env var.\n        If the libs are not found, will be made an attempt to download the driver.\n    The nvidia driver image can be located next to runimage:\n            \"$RUNIMAGEDIR/{nvidia_version}.nv.drv\"\n        or in $RUNIMAGEDIR/nvidia-drivers (Default):\n            \"$RUNIMAGEDIR/nvidia-drivers/{nvidia_version}.nv.drv\"\n        or the driver can be extracted as the directory\n            \"$RUNIMAGEDIR/nvidia-drivers/{nvidia_version}\"\n        also, the driver can be in RunImage in a packed or unpacked form:\n            \"$RUNDIR/nvidia-drivers/{nvidia_version}.nv.drv\"   -  image\n            \"$RUNDIR/nvidia-drivers/{nvidia_version}\"          -  directory\n\n## Rebuild your own RunImage:\n\n* [Download](https://github.com/VHSgunzo/runimage/releases/continuous) base version of the runimage\n* Make it executable:\n```\nchmod +x runimage\n```\n* Run it in OverlayFS mode (If you are using a proprietary nvidia driver, then I recommend disabling the driver check function by `RIM_NO_NVIDIA_CHECK=1` for proper rebuild in manual mode. You do not need to do this in automatic mode):\n```\nRIM_OVERFS_MODE=1 ./runimage\necho OVERFS_MNT=$OVERFS_MNT\n```\n* Install or remove the necessary packages, change `$OVERFS_MNT/rootfs`, etc. You can change `$OVERFS_MNT/rootfs` in the standard ways for you. But do not close the container until the moment of build.\n* You can also specify your own type of rootfs in `$OVERFS_MNT/rootfs/.type` file, but it's not necessary.\n* After all the manipulations with rootfs, create a new runimage using this command in the container:\n```\nrim-build\n```\n* Or from another terminal tab with RIM_OVERFS_ID:\n```\nRIM_OVERFS_ID=$ID ./runimage rim-build\n```\n* After the build is completed, you can close the container:\n```\nexit\n# or CTRL-D\n```\n\n\u003cdetails\u003e\u003csummary style=\"font-size: 20px;\"\u003e\u003cb\u003e\nTroubleshooting and problem solving\n\u003c/b\u003e\u003c/summary\u003e\n\n* To start SystemD services with systemctl in RunImage SystemD replaced with [fake-systemd](https://github.com/VHSgunzo/runimage-fake-systemd) package based on [docker-systemctl-replacement](https://github.com/gdraheim/docker-systemctl-replacement) with some modification. It's depend on python3\n* To start the SSH server you need to install patched [runimage-openssh](https://github.com/VHSgunzo/runimage-openssh) package from runimage [pacman repo](https://github.com/runimage/repo)\n```\npac -Sy runimage-openssh\nssh-keygen -A\n# Don't forget to add your ssh keys for authorization to /etc/ssh/authorized_keys in the container\n#   or to $HOME/.ssh/authorized_keys\n#   password authorization disabled and don't work\nsystemctl start sshd    # systemctl depend on python3\n# OR\n/usr/bin/sshd -D \u0026\n```\n\n* If SELinux is enabled in the system, then there may be problems with the launch and operation of Wine ([solution](https://www.tecmint.com/disable-selinux-in-centos-rhel-fedora))\n* When using `RIM_TMP_HOME`* you may run out of RAM, be careful with this.\n* It is also advisable to use TMPDIR when using `--runtime-extract-and-run` or `RUNTIME_EXTRACT_AND_RUN=1`, because by default, unpacking before starting will be carried out in /tmp, which may also lead to the end of RAM\n* Xephyr does not support GL acceleration and Vulkan has performance issues (But this is not related to RunImage)\n* Possible tearing on nvidia in RunImage desktop mode ([solution](https://wiki.archlinux.org/title/NVIDIA/Troubleshooting#Avoid_screen_tearing))\n* If you have problems with sound when running RunImage desktop on TTY, just restart pulseaudio.\n\n    killall pulseaudio ; pulseaudio -D\n\n\u003c/details\u003e \n\n\u003cdetails\u003e\u003csummary style=\"font-size: 20px;\"\u003e\u003cb\u003e\nProjects based on RunImage\n\u003c/b\u003e\u003c/summary\u003e\n\n* [Lux Wine](https://github.com/VHSgunzo/lux-wine)\n* [PortArch](https://github.com/VHSgunzo/portarch)\n* [NitroWine](https://github.com/RusNor/NitroWine)\n* [StartWine-Launcher](https://github.com/RusNor/StartWine-Launcher)\n\n\u003c/details\u003e \n\n\u003cdetails\u003e\u003csummary style=\"font-size: 20px;\"\u003e\u003cb\u003e\nMain used projects\n\u003c/b\u003e\u003c/summary\u003e\n\n* [archlinux](https://archlinux.org)\n* [blackarch](https://github.com/BlackArch/blackarch)\n* [chaotic-aur](https://aur.chaotic.cx)\n* [uruntime](https://github.com/VHSgunzo/uruntime) and [runimage-uruntime](https://github.com/VHSgunzo/runimage-uruntime)\n* [runimage-rootfs](https://github.com/VHSgunzo/runimage-rootfs)\n* [runimage-static](https://github.com/VHSgunzo/runimage-static)\n* [sharun](https://github.com/VHSgunzo/sharun)\n* [Run-wrapper](https://github.com/VHSgunzo/Run-wrapper)\n* [bubblewrap-static](https://github.com/VHSgunzo/bubblewrap-static) and [runimage-bubblewrap](https://github.com/VHSgunzo/runimage-bubblewrap)\n* [tini](https://github.com/VHSgunzo/tini) and [runimage-tini](https://github.com/VHSgunzo/runimage-tini)\n* [ssrv](https://github.com/VHSgunzo/ssrv) and [runimage-ssrv](https://github.com/VHSgunzo/runimage-ssrv)\n* [runimage-repo](https://github.com/runimage/repo)\n* [runimage-mirrorlist](https://github.com/VHSgunzo/runimage-mirrorlist)\n* [runimage-openssh](https://github.com/VHSgunzo/runimage-openssh)\n* [runimage-fake-nvidia-driver](https://github.com/VHSgunzo/runimage-fake-nvidia-driver)\n* [runimage-nvidia-drivers](https://github.com/VHSgunzo/runimage-nvidia-drivers)\n* [runimage-fake-sudo-pkexec](https://github.com/VHSgunzo/runimage-fake-sudo-pkexec)\n* [runimage-fake-systemd](https://github.com/VHSgunzo/runimage-fake-systemd)\n* [squashfs-tools-static](https://github.com/VHSgunzo/squashfs-tools-static)\n* [squashfuse-static](https://github.com/VHSgunzo/squashfuse-static)\n* [unionfs-fuse-static](https://github.com/VHSgunzo/unionfs-fuse-static) and [runimage-unionfs-fuse](https://github.com/VHSgunzo/runimage-unionfs-fuse)\n* [slirp4netns](https://github.com/rootless-containers/slirp4netns/releases)\n* [fakeroot](https://github.com/mackyle/fakeroot)\n* [fakechroot](https://github.com/dex4er/fakechroot)\n* [pacutils](https://github.com/andrewgregory/pacutils)\n* [chisel](https://github.com/VHSgunzo/chisel) and [runimage-chisel](https://github.com/VHSgunzo/runimage-chisel)\n* [runimage-cpids](https://github.com/VHSgunzo/runimage-cpids)\n\n\u003c/details\u003e \n\n\u003cdetails\u003e\u003csummary style=\"font-size: 20px;\"\u003e\u003cb\u003e\nRunImage tested and works on\n\u003c/b\u003e\u003c/summary\u003e\n\n* [Adelie Linux](https://www.adelielinux.org/)\n* [AlmaLinux](https://almalinux.org/)\n* [Alpine](https://www.alpinelinux.org/)\n* [Alt Workstation](https://www.basealt.ru/alt-workstation/description)\n* [Antergos](https://en.wikipedia.org/wiki/Antergos)\n* [antiX](https://antixlinux.com/)\n* [Arch Linux](https://archlinux.org/)\n* [ArcoLinux](https://arcolinux.com/)\n* [Artix Linux](https://artixlinux.org/)\n* [Astra Linux](https://astralinux.ru/)\n* [Batocera](https://batocera.org/)\n* [Bodhi Linux](https://www.bodhilinux.com/)\n* [BlendOS](https://blendos.co/)\n* [CachyOS](https://cachyos.org/)\n* [Calculate](https://www.calculate-linux.org/)\n* [CentOS](https://www.centos.org/)\n* [ChromeOS Flex](https://chromeenterprise.google/intl/en_us/os/chromeosflex/)\n* [Clear Linux](https://clearlinux.org/)\n* [Debian](https://www.debian.org/)\n* [Deepin](https://www.deepin.org/)\n* [EasyOS](https://easyos.org)\n* [ElementaryOS](https://elementary.io/)\n* [EndeavourOS](https://endeavouros.com/)\n* [EuroLinux](https://en.euro-linux.com/)\n* [Fedora Silverblue](https://silverblue.fedoraproject.org/)\n* [Fedora Workstation](https://getfedora.org/en/workstation/)\n* [Garuda Linux](https://garudalinux.org/)\n* [Gentoo](https://www.gentoo.org/)\n* [GoboLinux](https://gobolinux.org/)\n* [Green Linux](https://greenlinux.ru/)\n* [Grml Linux](https://grml.org/)\n* [Kali Linux](https://www.kali.org/)\n* [KDE neon](https://neon.kde.org/)\n* [Kodachi](https://www.digi77.com/linux-kodachi/)\n* [Kubuntu](https://kubuntu.org/)\n* [Linux Lite](https://www.linuxliteos.com/)\n* [Linux Mint](https://linuxmint.com/)\n* [Lubuntu](https://lubuntu.me/)\n* [Mageia](https://www.mageia.org/)\n* [Manjaro](https://manjaro.org/)\n* [MX Linux](https://mxlinux.org/)\n* [Nitrux nxOS](https://nxos.org/)\n* [NixOS](https://nixos.org/)\n* [Nobara](https://nobaraproject.org/)\n* [openSUSE](https://www.opensuse.org/)\n* [Oracle Linux](https://www.oracle.com/linux/)\n* [Parrot](https://www.parrotsec.org/)\n* [PCLinuxOS](https://www.pclinuxos.com/)\n* [PeppermintOS (Devuan)](https://peppermintos.com/)\n* [Pop!_OS](https://pop.system76.com/)\n* [Porteus](http://www.porteus.org/)\n* [Puppy Linux](https://puppylinux.com/)\n* [Qubes](https://www.qubes-os.org/)\n* [Red OS](https://redos.red-soft.ru/)\n* [Rocky Linux](https://rockylinux.org/ru/)\n* [ROSA](https://www.rosalinux.ru/)\n* [Simply/ALT Linux](https://www.basealt.ru/simplylinux)\n* [Slackware](http://www.slackware.com/)\n* [Slax Linux](https://www.slax.org/)\n* [Solus](https://getsol.us/home/)\n* [SparkyLinux](https://sparkylinux.org/)\n* [SpiralLinux](https://spirallinux.github.io/)\n* [SteamOS (HoloISO)](https://github.com/theVakhovskeIsTaken/holoiso)\n* [Tails](https://tails.boum.org/)\n* [Ubuntu](https://ubuntu.com/)\n* [Ubuntu MATE](https://ubuntu-mate.org/)\n* [UBLinux](https://ublinux.ru/)\n* [VanillaOS](https://vanillaos.org/)\n* [Venom Linux](https://venomlinux.org/)\n* [Void Linux](https://voidlinux.org/)\n* [Whonix](https://www.whonix.org/)\n* [Windowsfx (Linuxfx)](https://www.windowsfx.org/)\n* [Windows Subsystem for Linux (WSL 2 on Win 11)](https://learn.microsoft.com/en-us/windows/wsl/install)\n* [Xubuntu](https://xubuntu.org/)\n* [Zorin OS](https://zorin.com/os/)\n\n\u003c/details\u003e \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVHSgunzo%2Frunimage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVHSgunzo%2Frunimage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVHSgunzo%2Frunimage/lists"}