From c526adde04023db366b17b9c98cd0d528a7b5642 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Tue, 14 May 2024 11:37:53 +0200 Subject: [PATCH 01/11] Create docker.md --- docs/docker.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/docker.md diff --git a/docs/docker.md b/docs/docker.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/docs/docker.md @@ -0,0 +1 @@ + From 1fb7ee78188e3291e92a94254355d4e31b5a0b15 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Wed, 15 May 2024 06:17:39 +0200 Subject: [PATCH 02/11] Add gerneral info about docker --- docs/docker.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/docker.md b/docs/docker.md index 8b13789..0230800 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -1 +1,13 @@ +# Docker +## Why docker? + +While working with virsh is completely fine for winapps you have to setup and optimise you vm manually. Docker on the other hand setups most of the stuff automatically and makes the vm highly portable between linux distros. + +# Requirements + +Since docker manages the dependencies of the container automatically you only need to install docker or podman itself. (Podman is recommended because of the faster container startup times) + +Note: This will only work on linux systems since some kernel interfaces (like kvm) are needed by the vm. Because of this performance can vary in kernel versions (newer will likely perform better). + +# Setup docker container \ No newline at end of file From 6b580be6a69e22e607caa5b7f58b6b2ddd6c86a2 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Wed, 15 May 2024 06:24:47 +0200 Subject: [PATCH 03/11] add docker compose docs --- docs/docker.md | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/docs/docker.md b/docs/docker.md index 0230800..f5e6789 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -6,8 +6,39 @@ While working with virsh is completely fine for winapps you have to setup and op # Requirements -Since docker manages the dependencies of the container automatically you only need to install docker or podman itself. (Podman is recommended because of the faster container startup times) +Since docker manages the dependencies of the container automatically you only need to install docker or podman itself. (Podman is recommended because of the faster container startup times. Note that podman and docker are interchangeable so no instructions will change depending on which one you use) Note: This will only work on linux systems since some kernel interfaces (like kvm) are needed by the vm. Because of this performance can vary in kernel versions (newer will likely perform better). -# Setup docker container \ No newline at end of file +# Setup docker container + +The easiest way to setup a windows vm is by using docker compose. Just create a `docker-compose.yml` with following content: + +```yaml +name: "winapps" + +volumes: + data: + +services: + windows: + image: dockurr/windows + container_name: windows + environment: + VERSION: "win11" + RAM_SIZE: "8G" + CPU_CORES: "4" + privileged: true + ports: + - 8006:8006 + - 3389:3389/tcp + - 3389:3389/udp + stop_grace_period: 2m + restart: on-failure + volumes: + - data:/storage +``` + +Now you can tune the ram/usage by changing RAM_SIZE/CPU_CORES. You can also specify the windows versions you want to use. + +Note: Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning. \ No newline at end of file From 7151a3b756167dbbdc29eed2e51e9098d1bd1fb3 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Wed, 15 May 2024 06:46:34 +0200 Subject: [PATCH 04/11] Aktualisieren von README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7c05420..c0f490a 100644 --- a/README.md +++ b/README.md @@ -75,9 +75,10 @@ Note: The officially configured application list below is fueled by the communit ## Installation ### Step 1: Set up a Windows Virtual Machine -The best solution for running a VM as a subsystem for WinApps would be KVM. KVM is a CPU and memory-efficient virtualization engine bundled with most major Linux distributions. To set up the VM for WinApps, follow this guide: +The best solution for running a VM as a subsystem for WinApps would be docker. Docker allows to automise the install process and still uses kvm/qemu under the hood. We still provide the outdated KVM install instructions. -- [Creating a Virtual Machine in KVM](docs/KVM.md) +- [Creating a Virtual Machine with docker](docs/docker.md) +- [Creating a Virtual Machine in KVM (outdated)](docs/KVM.md) If you already have a Virtual Machine or server you wish to use with WinApps, you will need to merge `install/RDPApps.reg` into the VM's Windows Registry. If this VM is in KVM and you want to use auto-IP detection, you will need to name the machine `RDPWindows` (auto-IP detection not supported for non-KVM VMs). Directions for both of these can be found in the guide linked above. From 90f32e28f108328da860cd9a1034909896318a65 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Wed, 15 May 2024 06:55:25 +0200 Subject: [PATCH 05/11] Add Windows install instructions --- docs/docker.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/docs/docker.md b/docs/docker.md index f5e6789..5db0ab6 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -2,7 +2,7 @@ ## Why docker? -While working with virsh is completely fine for winapps you have to setup and optimise you vm manually. Docker on the other hand setups most of the stuff automatically and makes the vm highly portable between linux distros. +While working with virsh is completely fine for winapps, however you have to setup and optimise you vm manually. Docker on the other hand setups most of the stuff automatically and also makes the vm highly portable between linux distros. # Requirements @@ -41,4 +41,25 @@ services: Now you can tune the ram/usage by changing RAM_SIZE/CPU_CORES. You can also specify the windows versions you want to use. -Note: Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning. \ No newline at end of file +Note: Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning. + +You can now just run: +```shell +docker compose up +``` + +After this just open http://127.0.0.1:8006 in your webbrowser and finish you windows installation as usual. + +Note: RDP will be automatically enabled, however you still need to load the reg files into you vm. You VM IP is your localhost since all ports specified will be passed through. + +Now you should be ready to go and try to connect to your vm with winapps. + +For stopping the vm just use: +```shell +docker compose stop +``` + +For starting again afterwards use: +```shell +docker compose start +``` \ No newline at end of file From ccd524b37611c2eab4e8bbcdb51102475b3b8906 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Thu, 23 May 2024 17:09:42 +0200 Subject: [PATCH 06/11] Aktualisieren von docker.md --- docs/docker.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/docker.md b/docs/docker.md index 5db0ab6..c7b36af 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -50,7 +50,9 @@ docker compose up After this just open http://127.0.0.1:8006 in your webbrowser and finish you windows installation as usual. -Note: RDP will be automatically enabled, however you still need to load the reg files into you vm. You VM IP is your localhost since all ports specified will be passed through. +Change the RDP_IP config to localhost or "127.0.0.1. + +Note: RDP will be automatically enabled, however you still need to load the reg files into you vm. Now you should be ready to go and try to connect to your vm with winapps. From 3d8ff78e91ef1a7c3be1ed158d05d2044262d8d5 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Fri, 24 May 2024 06:14:54 +0200 Subject: [PATCH 07/11] Small refinements --- docs/docker.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docker.md b/docs/docker.md index c7b36af..e682051 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -39,7 +39,7 @@ services: - data:/storage ``` -Now you can tune the ram/usage by changing RAM_SIZE/CPU_CORES. You can also specify the windows versions you want to use. +Now you can tune the ram/usage by changing RAM_SIZE/CPU_CORES. You can also specify the windows versions you want to use. You might also want to take a look at the [docker image repo](https://github.com/dockur/windows). Note: Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning. @@ -50,9 +50,9 @@ docker compose up After this just open http://127.0.0.1:8006 in your webbrowser and finish you windows installation as usual. -Change the RDP_IP config to localhost or "127.0.0.1. +Change the RDP_IP in your winapps config to localhost or "127.0.0.1". -Note: RDP will be automatically enabled, however you still need to load the reg files into you vm. +RDP will be automatically enabled, however you still need to load the reg files into you vm. Now you should be ready to go and try to connect to your vm with winapps. From 07886014091158ccdd7d2525598c58102c0bdd36 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Fri, 24 May 2024 11:30:32 +0200 Subject: [PATCH 08/11] Fix unclear sections of docker.md --- docs/docker.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/docker.md b/docs/docker.md index e682051..0fb6b34 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -8,11 +8,17 @@ While working with virsh is completely fine for winapps, however you have to set Since docker manages the dependencies of the container automatically you only need to install docker or podman itself. (Podman is recommended because of the faster container startup times. Note that podman and docker are interchangeable so no instructions will change depending on which one you use) -Note: This will only work on linux systems since some kernel interfaces (like kvm) are needed by the vm. Because of this performance can vary in kernel versions (newer will likely perform better). +When using podman you want to make sure podman socket is enabled with: +```shell +sudo systemctl enable --now podman.socket +``` + +> [!NOTE] +> This will only work on linux systems since some kernel interfaces (like kvm) are needed by the vm. Because of this performance can vary in kernel versions (newer will likely perform better). # Setup docker container -The easiest way to setup a windows vm is by using docker compose. Just create a `docker-compose.yml` with following content: +The easiest way to setup a windows vm is by using docker compose. Just create a `compose.yml` with following content: ```yaml name: "winapps" @@ -25,8 +31,8 @@ services: image: dockurr/windows container_name: windows environment: - VERSION: "win11" - RAM_SIZE: "8G" + VERSION: "tiny11" + RAM_SIZE: "4G" CPU_CORES: "4" privileged: true ports: @@ -41,7 +47,8 @@ services: Now you can tune the ram/usage by changing RAM_SIZE/CPU_CORES. You can also specify the windows versions you want to use. You might also want to take a look at the [docker image repo](https://github.com/dockur/windows). -Note: Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning. +> [!NOTE] +> Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning. You can now just run: ```shell From e7b9ae0fa77e31c4bd23a7eabc789b519b1d3d80 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Fri, 24 May 2024 11:34:38 +0200 Subject: [PATCH 09/11] Add docker and podman doc ref --- docs/docker.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/docker.md b/docs/docker.md index 0fb6b34..9afba83 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -8,6 +8,10 @@ While working with virsh is completely fine for winapps, however you have to set Since docker manages the dependencies of the container automatically you only need to install docker or podman itself. (Podman is recommended because of the faster container startup times. Note that podman and docker are interchangeable so no instructions will change depending on which one you use) +You might also want to take a look in the docs: +- [podman docs](https://docs.podman.io/) +- [docker docs](https://docs.docker.com/) + When using podman you want to make sure podman socket is enabled with: ```shell sudo systemctl enable --now podman.socket From 350e9201b4eca93561b8314a59ce5efb124ee097 Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Fri, 24 May 2024 18:16:54 +0200 Subject: [PATCH 10/11] Fix line endings docker.md --- docs/docker.md | 113 +++++++++++++++++++++++++------------------------ 1 file changed, 57 insertions(+), 56 deletions(-) diff --git a/docs/docker.md b/docs/docker.md index 9afba83..d2cbcad 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -1,29 +1,29 @@ -# Docker - -## Why docker? - -While working with virsh is completely fine for winapps, however you have to setup and optimise you vm manually. Docker on the other hand setups most of the stuff automatically and also makes the vm highly portable between linux distros. - -# Requirements - -Since docker manages the dependencies of the container automatically you only need to install docker or podman itself. (Podman is recommended because of the faster container startup times. Note that podman and docker are interchangeable so no instructions will change depending on which one you use) - -You might also want to take a look in the docs: -- [podman docs](https://docs.podman.io/) -- [docker docs](https://docs.docker.com/) - -When using podman you want to make sure podman socket is enabled with: -```shell -sudo systemctl enable --now podman.socket -``` - -> [!NOTE] -> This will only work on linux systems since some kernel interfaces (like kvm) are needed by the vm. Because of this performance can vary in kernel versions (newer will likely perform better). - -# Setup docker container - -The easiest way to setup a windows vm is by using docker compose. Just create a `compose.yml` with following content: - +# Docker + +## Why docker? + +While working with virsh is completely fine for winapps, however you have to setup and optimise you vm manually. Docker on the other hand setups most of the stuff automatically and also makes the vm highly portable between linux distros. + +# Requirements + +Since docker manages the dependencies of the container automatically you only need to install docker or podman itself. (Podman is recommended because of the faster container startup times. Note that podman and docker are interchangeable so no instructions will change depending on which one you use) + +You might also want to take a look in the docs: +- [podman docs](https://docs.podman.io/) +- [docker docs](https://docs.docker.com/) + +When using podman you want to make sure podman socket is enabled with: +```shell +sudo systemctl enable --now podman.socket +``` + +> [!NOTE] +> This will only work on linux systems since some kernel interfaces (like kvm) are needed by the vm. Because of this performance can vary in kernel versions (newer will likely perform better). + +# Setup docker container + +The easiest way to setup a windows vm is by using docker compose. Just create a `compose.yml` with following content: + ```yaml name: "winapps" @@ -38,7 +38,8 @@ services: VERSION: "tiny11" RAM_SIZE: "4G" CPU_CORES: "4" - privileged: true + privileged: +true ports: - 8006:8006 - 3389:3389/tcp @@ -47,32 +48,32 @@ services: restart: on-failure volumes: - data:/storage -``` - -Now you can tune the ram/usage by changing RAM_SIZE/CPU_CORES. You can also specify the windows versions you want to use. You might also want to take a look at the [docker image repo](https://github.com/dockur/windows). - -> [!NOTE] -> Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning. - -You can now just run: -```shell -docker compose up -``` - -After this just open http://127.0.0.1:8006 in your webbrowser and finish you windows installation as usual. - -Change the RDP_IP in your winapps config to localhost or "127.0.0.1". - -RDP will be automatically enabled, however you still need to load the reg files into you vm. - -Now you should be ready to go and try to connect to your vm with winapps. - -For stopping the vm just use: -```shell -docker compose stop -``` - -For starting again afterwards use: -```shell -docker compose start -``` \ No newline at end of file +``` + +Now you can tune the ram/usage by changing RAM_SIZE/CPU_CORES. You can also specify the windows versions you want to use. You might also want to take a look at the [docker image repo](https://github.com/dockur/windows). + +> [!NOTE] +> Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning. + +You can now just run: +```shell +docker compose up +``` + +After this just open http://127.0.0.1:8006 in your webbrowser and finish you windows installation as usual. + +Change the RDP_IP in your winapps config to localhost or "127.0.0.1". + +RDP will be automatically enabled, however you still need to load the reg files into you vm. + +Now you should be ready to go and try to connect to your vm with winapps. + +For stopping the vm just use: +```shell +docker compose stop +``` + +For starting again afterwards use: +```shell +docker compose start +``` From a59e2506bedd1354fdb54f4230e71e2aab8cee0a Mon Sep 17 00:00:00 2001 From: LDprg <71488985+LDprg@users.noreply.github.com> Date: Fri, 24 May 2024 18:18:03 +0200 Subject: [PATCH 11/11] FIx strange chars docker.md --- docs/docker.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/docker.md b/docs/docker.md index d2cbcad..c46ca5f 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -38,8 +38,7 @@ services: VERSION: "tiny11" RAM_SIZE: "4G" CPU_CORES: "4" - privileged: -true + privileged: true ports: - 8006:8006 - 3389:3389/tcp