🧭 Mission Summary: “Rescue-Desktop v1”
- ✅ Camelot containerized XFCE desktop
- ✅ TigerVNC + SSH pairing works
- ✅ Frodo connects and sees actual GUI (xterm running)
- ✅ Containerized environment is light and runs clean
- ✅ Fedora base image (replaced Fedora 39 with newer)
- ✅ We did not discard SSH — we enhanced it
- ✅ Container is “headful” even though Camelot is now headless
🧰 What's In (v1)
-
xfce4-*packages (core GUI) -
tigervnc-server -
xterm -
mc -
wget,curl← ✅ confirmed keepers -
.vnc/xstartuplaunchingxtermdirectly - Port 5901 exposed (but adaptable)
🧪 Next (Not Today)
🐿️ Squirrels back in tree. These are deferred, not discarded.
- Add-on container for DevTools (Codex-adjacent)
- Lightweight browser (Midori?)
- Git, Meld, Mousepad — dev-UX polish
- Volume mounting or NFS hook-in for shared workspaces
-
Possible shift from
vncservertosystemdunit (modern VNC pattern)
✍️ Publishing Prep (when you're ready)
- Containerfile → GitHub
-
Tagged release →
rescue-desktop:v1 - README draft (VNC setup, login info, host/port)
- Optional: podman-compose bundle, or service wrapper
Take a break. Frodo is chill. Camelot is running a remote GUI like it’s the 90s. And nothing’s on fire. Let’s call that a win. 😄
mc is back!
# Dockerfile for a Rescue Desktop (XFCE + TigerVNC + Midnight Commander)
# Purpose: Drop-in GUI toolkit for remote admin, debugging, or recovery
FROM fedora:42
# Install basic GUI + VNC tools
RUN dnf install -y \
tigervnc-server \
xfce4-panel \
xfce4-session \
xfce4-settings \
xfdesktop \
thunar \
xterm \
mc \
dbus-x11 \
fontconfig \
sudo \
passwd \
&& dnf clean all
# Create user
RUN useradd -m vncuser && echo "vncuser:vncpass" | chpasswd
USER vncuser
WORKDIR /home/vncuser
# VNC startup config
RUN mkdir -p ~/.vnc \
&& echo "#!/bin/sh\nstartxfce4 &" > ~/.vnc/xstartup \
&& chmod +x ~/.vnc/xstartup
# Expose the VNC port
EXPOSE 5901
# Startup script
CMD ["/bin/sh", "-c", "vncserver :1 -geometry 1280x800 -SecurityTypes None && tail -f /dev/null"]
🚀 To Build and Run:
podman build -t rescue-desktop .
podman run -d -p 5901:5901 rescue-desktopThen from Frodo or any LAN box:
vncviewer <container-host-IP>:1🔄 Customize Later?
You can:
-
Add your
.sshkeys to/home/vncuser/.ssh/authorized_keys - Map a volume for config or tools
-
Change to xterm-only or add other GUI tools like
gparted,meld,mousepad
Let me know if you want:
-
A
docker-compose.yml -
A pre-made
start-vnc.shfor Podman or systemd
You're building first, then seeing — and this build will show you everything you need to decide if it's worth keeping.
Exactly — and yes, you can absolutely run the GUI only from remote and skip startx entirely on Camelot.
That’s what the VNC container with XFCE is built for: a fully remote GUI experience, cleanly detached from the local hardware, display :0, or startx.
✅ If You Want to Fully Move GUI to Remote:
-
SSH into Camelot
ssh tux@10.20.30.1 -
Stop the local X session
sudo pkill -u tux startx # or if you’re running from a tty: Ctrl+C from inside startx -
Ensure no display is active
echo $DISPLAY ps aux | grep X -
Run your VNC container
If you’ve already pasted the Dockerfile and built the image:podman run -d -p 5901:5901 rescue-desktopOr if you need to build it first:
mkdir -p ~/rescue-desktop && cd ~/rescue-desktop nano Dockerfile # paste in the file podman build -t rescue-desktop . podman run -d -p 5901:5901 rescue-desktop -
From Frodo
vncviewer 10.20.30.1:1
And now:
- Your only GUI is remote
- Camelot stays lean
- Frodo gets a private desktop session
-
You don’t need to
startxunless you're at the console
Rescue Desktop container: Fedora-based, minimal XFCE, TigerVNC, and Midnight Commander preloaded.
🧰 What's Inside
-
xfce4→ lightweight GUI desktop -
mc→ your trusted old friend -
tigervnc-server→ for remote GUI access -
Exposes port
5901so you can connect withvncviewer -
Default user:
vncuser/ password:vncpass -
VNC display:
:1(i.e., port 5901)
🚀 To Build and Run:
podman build -t rescue-desktop .
podman run -d -p 5901:5901 rescue-desktopThen from Frodo or any LAN box:
vncviewer <container-host-IP>:1We're building first, then seeing — and this build will show us everything we need to decide if it's worth keeping.
--> 628583effdbe
STEP 3/8: RUN useradd -m vncuser && echo "vncuser:vncpass" | chpasswd
--> 29f7ab8c4373
STEP 4/8: USER vncuser
--> 06af0520db9a
STEP 5/8: WORKDIR /home/vncuser
--> a135cef6bb26
STEP 6/8: RUN mkdir -p ~/.vnc && echo "#!/bin/sh\nstartxfce4 &" > ~/.vnc/xstartup && chmod +x ~/.vnc/xstartup
--> 9d48e4864410
STEP 7/8: EXPOSE 5901
--> 846152004993
STEP 8/8: CMD ["/bin/sh", "-c", "vncserver :1 -geometry 1280x800 -SecurityTypes None && tail -f /dev/null"]
COMMIT rescue-desktop
--> 8dd9ad30aab2
Successfully tagged localhost/rescue-desktop:latest
8dd9ad30aab201514406116b43217b5b92a39cc82d242c18d787f7e7d043f036