- Dockerfile 95.9%
- Shell 4.1%
| .forgejo/workflows | ||
| .dockerignore | ||
| custom_startup.sh | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
News
Moved to git.existiert.ch
Personal Desktop Project
A Dockerized personal workspace environment for secure communication and productivity. This project provides a preconfigured Kasm Workspaces-compatible image with XFCE, Signal, Delta Chat, and Vivaldi.
Features
- XFCE desktop environment: Lightweight and customizable desktop experience.
- Signal Desktop messenger: End-to-end encrypted messaging.
- Delta Chat Desktop messenger: Secure alternative for private communication.
- Vivaldi web browser: Privacy-focused browsing with built-in ad-blocking.
- Security updates applied at build time: Regular security patches included.
- Kasm Workspaces integration: Designed to work seamlessly in Kasm environments.
Security Notes
- Default credentials: The default VNC password is
password. Change this in production environments by setting theVNC_PWenvironment variable to a strong password. - Sandboxing disabled: Signal, Delta Chat, and Vivaldi are run with
--no-sandboxto work within the container. This reduces isolation between applications and the system. For production deployments, consider implementing additional security controls.
Quick Start
Testing using Docker Compose
docker compose up --build
Access the desktop at: http://localhost:6901
Default password: password
Using Docker directly
Build the image:
docker build -t personaldesktop .
Run the container:
docker run -d \
--name personaldesktop \
-p 6901:6901 \
-e VNC_PW=password \
--shm-size=512m \
personaldesktop
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
VNC_PW |
password | VNC/web access password |
Build Arguments
| Argument | Default | Description |
|---|---|---|
BASE_TAG |
1.18.0 | Kasm base image tag |
BASE_IMAGE |
core-debian-trixie | Kasm base image name |
DELTACHAT_VERSION |
latest | Delta Chat version to install (pinned to latest stable release) |
Startup Script
The project includes a custom startup script (custom_startup.sh) that handles desktop initialization for Kasm Workspaces. It signals when the desktop environment is ready and can be customized for additional launch tasks.
Usage
- Open
https://localhost:6901in your browser - Enter the password (default:
password) - Use the desktop shortcuts or application menu to launch Signal or Delta Chat
Updating Applications
Manual Update
To update Delta Chat, change the DELTACHAT_VERSION build argument and rebuild:
docker compose build --build-arg DELTACHAT_VERSION=2.36.0
Signal and Vivaldi update automatically from their apt repositories on rebuild.
Automated Update
This project includes a weekly automated update workflow (.forgejo/workflows/weekly-update.yml) that:
- Runs every Sunday at 03:00 UTC, or can be manually triggered from the Forgejo UI
- Checks Signal Desktop, DeltaChat, and Vivaldi versions against upstream sources
- Pulls the latest built image to compare installed versions
- Updates the
DELTACHAT_VERSIONARG in the Dockerfile and docker-compose.yml when newer versions are available - Rebuilds and pushes the image with both
:latestand date-based tags (e.g.,:26.05.12) - Commits version updates back to the repository
Adding to Kasm Workspaces
To add this image as a workspace in your Kasm deployment:
Add the workspace in Kasm Admin
- Log into Kasm as an administrator
- Navigate to Workspaces → Workspaces
- Click Add Workspace
- Fill in the fields below
General Settings
| Field | Value |
|---|---|
| Friendly Name | Personal Desktop |
| Description | Secure desktop with Signal, Delta Chat, and Vivaldi browser for private communication |
| Thumbnail URL | https://upload.wikimedia.org/wikipedia/commons/5/5b/Xfce_logo.svg |
Docker Settings
| Field | Value |
|---|---|
| Docker Image | leberschnitzel/personaldesktop:latest |
| Docker Registry | https://index.docker.io/v1/ |
| Cores | 2 |
| Memory (MB) | 4096 |
| GPU Count | 0 |
| CPU Allocation Method | Inherit |
- Click Save