1- # Alpine docker container image with "headless" VNC/RDP environments
1+ # Tiny Remote Desktop
22
3- Installed with the following components:
3+ Alpine-based Docker container with "headless" VNC/RDP remote desktop environments.
44
5- * Desktop environment [ ** Fluxbox** ] ( http://fluxbox.org )
6- * xrdp server (default RDP port ` 3389 ` )
7- * vnc server (default VNC port ` 5901 ` )
8- * [ ** noVNC** ] ( https://github.com/novnc/noVNC ) - HTML5 VNC client (default http port ` 6901 ` )
9- * Browsers:
10- * Chromium
11- * Firefox
12-
5+ ## Features
136
14- ## Current provided OS & UI sessions:
7+ * Desktop environment: [ ** Fluxbox** ] ( http://fluxbox.org ) (lightweight)
8+ * VNC server: ** x11vnc** (port ` 5901 ` )
9+ * RDP server: ** xrdp** (port ` 3389 ` )
10+ * Web VNC: [ ** noVNC** ] ( https://github.com/novnc/noVNC ) - HTML5 VNC client (port ` 6901 ` )
11+ * Browser: ** Firefox**
12+ * ** Configurable** : Enable/disable services via environment variables
13+ * ** Auto-start** : Firefox can auto-launch on startup
1514
16- * ` soff/tiny-remote-desktop ` : __ Alpine with ` Fluxbox ` UI session __
15+ ## Image Size Optimization
1716
17+ ### Current Size: ~ 300-350MB
1818
19- ## Usage
19+ The image has been optimized by removing unnecessary packages:
20+ - ❌ ** Chromium** (~ 200MB) - Removed to reduce size
21+ - ❌ ** xterm** - Removed (not essential)
22+ - ❌ ** bash** - Using Alpine's built-in ` sh `
23+ - ❌ ** wqy-zenhei** (Chinese fonts) - Removed
2024
21- - Run command with mapping to local port ` 5901 ` (vnc protocol) and ` 6901 ` (vnc web access):
25+ ### Further Size Reduction
2226
23- docker run -d -p 5901:5901 -p 6901:6901 soff/tiny-remote-desktop
27+ If you need an even smaller image:
2428
25- - Run command with mapping to local port ` 3389 ` (rdp protocol):
29+ 1 . ** Remove Firefox** (~ 100MB saved):
30+ ``` dockerfile
31+ # Remove 'firefox' from line 12 in Dockerfile
32+ # Set AUTOSTART_FIREFOX=false
33+ # Final size: ~200-250MB
34+ ```
2635
27- docker run -d -p 3389:3389 soff/tiny-remote-desktop
36+ 2 . ** Remove noVNC** (~ 10-20MB saved):
37+ ``` dockerfile
38+ # Remove 'novnc' and 'websockify' from Dockerfile
39+ # Set ENABLE_NOVNC=false
40+ ```
2841
29- - Run command with mapping to local port ` 5901 ` (vnc protocol) and ` 6901 ` (vnc web access) with access password:
42+ 3 . ** VNC-only setup** (~ 150-200MB):
43+ ``` dockerfile
44+ # Keep only: xvfb, x11vnc, fluxbox, supervisor
45+ # Remove: firefox, xrdp, novnc, websockify
46+ ```
3047
31- docker run -d -p 5901:5901 -p 6901:6901 -e VNC_PASSWORD="vncpassword" soff/tiny-remote-desktop
48+ ## VNC vs RDP - Which is Faster?
3249
33- - Run command with mapping to local port ` 5901 ` (vnc protocol) and ` 6901 ` (vnc web access) with specific resolution:
50+ ### VNC (Recommended) ✅
51+ - ** Faster** for local/LAN connections
52+ - Lower latency and overhead
53+ - Direct connection without additional layers
54+ - ** Best choice for this setup**
3455
35- docker run -d -p 5901:5901 -p 6901:6901 -e RESOLUTION=1600x1200 soff/tiny-remote-desktop
56+ ### RDP
57+ - Better for slow/WAN connections (better compression)
58+ - In this setup, RDP wraps VNC (adds overhead)
59+ - Use VNC directly for better performance
60+
61+ ** Verdict** : ** VNC is faster** - RDP just adds an extra layer in this configuration.
3662
3763## Automated Builds
3864
@@ -51,7 +77,139 @@ To enable automated builds, the following secrets must be configured in the repo
5177- ` DOCKERHUB_USERNAME ` : Your Docker Hub username
5278- ` DOCKERHUB_TOKEN ` : Your Docker Hub access token (create one at https://hub.docker.com/settings/security )
5379
54- ## Hints
55-
56- ### 1) No start menu?
57- Just right click on desktop, the start menu will pop up.
80+ ## Configuration
81+
82+ ### Environment Variables
83+
84+ | Variable | Default | Description |
85+ | ----------| ---------| -------------|
86+ | ` RESOLUTION ` | ` 1024x768 ` | Screen resolution |
87+ | ` VNC_PASSWORD ` | (none) | VNC password (optional) |
88+ | ` ENABLE_VNC ` | ` true ` | Enable VNC server |
89+ | ` ENABLE_RDP ` | ` true ` | Enable RDP server |
90+ | ` ENABLE_NOVNC ` | ` true ` | Enable web-based VNC |
91+ | ` AUTOSTART_FIREFOX ` | ` true ` | Auto-start Firefox |
92+
93+ ### Ports
94+
95+ | Port | Protocol | Description |
96+ | ------| ----------| -------------|
97+ | 5901 | VNC | Direct VNC access |
98+ | 6901 | HTTP | noVNC web interface |
99+ | 3389 | RDP | Remote Desktop Protocol |
100+
101+ ## Usage Examples
102+
103+ ### Default Setup (All Services)
104+ ``` bash
105+ docker run -d \
106+ -p 5901:5901 \
107+ -p 6901:6901 \
108+ -p 3389:3389 \
109+ --name remote-desktop \
110+ soff/tiny-remote-desktop
111+ ```
112+
113+ Access via:
114+ - VNC client: ` localhost:5901 `
115+ - Web browser: ` http://localhost:6901 `
116+ - RDP client: ` localhost:3389 `
117+
118+ ### VNC-Only (Fastest, Smallest)
119+ ``` bash
120+ docker run -d \
121+ -p 5901:5901 \
122+ -e ENABLE_RDP=false \
123+ -e ENABLE_NOVNC=false \
124+ --name remote-desktop \
125+ soff/tiny-remote-desktop
126+ ```
127+
128+ ### RDP-Only
129+ ``` bash
130+ docker run -d \
131+ -p 3389:3389 \
132+ -e ENABLE_VNC=false \
133+ -e ENABLE_NOVNC=false \
134+ --name remote-desktop \
135+ soff/tiny-remote-desktop
136+ ```
137+
138+ ### With VNC Password
139+ ``` bash
140+ docker run -d \
141+ -p 5901:5901 \
142+ -p 6901:6901 \
143+ -e VNC_PASSWORD=" vncpassword" \
144+ --name remote-desktop \
145+ soff/tiny-remote-desktop
146+ ```
147+
148+ ### Custom Resolution
149+ ``` bash
150+ docker run -d \
151+ -p 5901:5901 \
152+ -p 6901:6901 \
153+ -e RESOLUTION=1920x1080 \
154+ --name remote-desktop \
155+ soff/tiny-remote-desktop
156+ ```
157+
158+ ### Without Firefox Auto-Start
159+ ``` bash
160+ docker run -d \
161+ -p 5901:5901 \
162+ -e AUTOSTART_FIREFOX=false \
163+ --name remote-desktop \
164+ soff/tiny-remote-desktop
165+ ```
166+
167+ ## Troubleshooting
168+
169+ ### "Another user already login with this id" Error
170+
171+ ** Fixed!** This error has been resolved by:
172+ - Adding ` -forever ` flag to x11vnc
173+ - Proper service startup priorities
174+ - Correct DISPLAY environment configuration
175+
176+ If you still see this error:
177+ 1 . Ensure only one container instance is running
178+ 2 . Restart the container: ` docker restart <container_name> `
179+ 3 . Check logs: ` docker logs <container_name> `
180+
181+ ### RDP Auto-Login
182+
183+ When connecting via RDP:
184+ - Username: ` root ` (pre-filled)
185+ - Password: (leave empty, press Enter)
186+ - Session: ` Xvnc ` (pre-selected)
187+ - Just click ** OK** or press Enter
188+
189+ For completely password-free access, use VNC directly (port 5901).
190+
191+ ### Firefox Auto-Start
192+
193+ Firefox auto-starts when ` AUTOSTART_FIREFOX=true ` (default).
194+
195+ If Firefox doesn't start:
196+ 1 . Check logs: ` docker logs <container_name> `
197+ 2 . Start manually from Fluxbox menu (right-click desktop)
198+ 3 . Verify startup script exists:
199+ ``` bash
200+ docker exec < container_name> cat /root/.fluxbox/startup
201+ ```
202+
203+ ### No Start Menu?
204+
205+ Right-click anywhere on the desktop to open the Fluxbox menu.
206+
207+ ## Building
208+
209+ ``` bash
210+ docker build -t tiny-remote-desktop .
211+ ```
212+
213+ ## License
214+
215+ This project does not yet include a formal license file. All rights are reserved by the maintainer unless otherwise stated. Please contact the maintainer for usage permissions.
0 commit comments