This repository contains a Docker/Podman-based setup for running an Ubuntu 22.04 desktop (XFCE) with XRDP, Visual Studio Code, Git, SSH server, and an F5 VPN client (gof5). It was built and tested on an Apple Silicon (arm64) Mac using Podman. It may or may not work on other platforms.
- XRDP setup based on ideas from danchitnis/container-xrdp.
- XRDP for remote desktop access via RDP
- XFCE desktop for a lightweight GUI
- SSH server for secure shell access
- Visual Studio Code installed via Microsoft’s apt repository
- Git for version control
- F5 VPN client (gof5) for VPN connectivity
- Podman (or Docker)
- Apple Silicon Mac (arm64) – tested on macOS with Apple M-series
- RDP client (e.g., Microsoft “Windows App” Remote Desktop on macOS)
-
Clone or download this repository.
-
Build the container:
podman compose build
or (if your system supports Docker Compose):
docker compose build
-
Run the container in the background, mapping RDP and SSH ports:
podman compose up -d
By default, RDP is exposed on port 3389 and SSH on port 2222 (depending on your configuration).
-
Default credentials:
- Username:
admin
- Password:
admin
- Username:
- Install the “Windows App” (Microsoft Remote Desktop) from the Mac App Store if you haven’t already.
- Open the Microsoft Remote Desktop app.
- Add a new connection:
- PC name:
localhost:3389
- User account: If prompted, enter username
admin
and passwordadmin
.
- PC name:
- Connect. Wait a few seconds on the black screen while the XFCE desktop initializes.
Once the desktop appears, you can launch Visual Studio Code or use Git on the container’s terminal.
- Open a terminal on your Mac.
- Connect via SSH:
Enter the password
ssh -p 2222 admin@localhost
admin
.
The open-source F5 VPN client, gof5, is installed at /usr/local/bin/gof5
.
- In a terminal (RDP or SSH), run something like:
gof5 --server <YOUR_F5_SERVER> --username <YOUR_USERNAME> --passwd <YOUR_PASSWORD>
- For more info and advanced usage, see the official gof5 documentation.
- This project was only tested on an Apple Silicon Mac using Podman. It might not work on other CPU architectures or operating systems without tweaks.
- If you see issues with Snap-based packages, or if you need additional capabilities, you may need to run podman or docker in privileged mode.
- The default credentials (
admin:admin
) are for demonstration. Change them before exposing your container to untrusted networks.