Initial commit
This commit is contained in:
commit
906ff74f53
|
@ -0,0 +1,75 @@
|
|||
FROM nestybox/ubuntu-focal-systemd
|
||||
|
||||
ENV ROS_DISTRO noetic
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install curl gnupg2 software-properties-common -y
|
||||
|
||||
RUN sh -c 'curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -'
|
||||
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
|
||||
RUN sh -c 'curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -'
|
||||
RUN sh -c 'add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"'
|
||||
# RUN add-apt-repository ppa:flatpak/stable
|
||||
|
||||
#Make sure we're running latest gazebo11, since px4io/px4-dev-ros-noetic does.
|
||||
RUN sh -c "curl -sSL http://get.gazebosim.org | sh"
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install ros-$ROS_DISTRO-desktop-full -y
|
||||
RUN apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
|
||||
RUN apt-get install ros-$ROS_DISTRO-gazebo-ros-pkgs ros-$ROS_DISTRO-gazebo-ros-control gazebo11 -y
|
||||
RUN apt-get install ros-$ROS_DISTRO-mavros -y
|
||||
RUN apt-get install lxqt-core -y
|
||||
RUN apt-get install vim nano htop git -y
|
||||
# RUN apt-get install flatpak xdg-desktop-portal-kde -y
|
||||
# RUN flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
# RUN flatpak install flathub org.mozilla.firefox
|
||||
|
||||
RUN apt-get remove gnome-shell -y
|
||||
RUN apt-get autoremove -y
|
||||
|
||||
RUN wget https://github.com/kasmtech/KasmVNC/releases/download/v1.2.0/kasmvncserver_focal_1.2.0_amd64.deb
|
||||
RUN apt-get install ./kasmvncserver_focal_1.2.0_amd64.deb --yes
|
||||
RUN rm ./kasmvncserver_focal_1.2.0_amd64.deb
|
||||
|
||||
COPY ./kasmvnc.yaml /etc/kasmvnc/kasmvnc.yaml
|
||||
COPY ./kasmvnc.service /etc/systemd/system/
|
||||
RUN systemctl enable kasmvnc
|
||||
|
||||
#Custom user skel overrides. We're not going to be too worried about permissions for this one.
|
||||
COPY ./skel /etc/skel/
|
||||
|
||||
#Delete default user and replace it with our own
|
||||
RUN userdel -r admin
|
||||
|
||||
ARG USERNAME=spiri
|
||||
ARG USER_UID=1000
|
||||
ARG USER_GID=$USER_UID
|
||||
|
||||
RUN groupadd --gid $USER_GID $USERNAME
|
||||
RUN useradd --uid $USER_UID --gid $USER_GID --create-home --shell /bin/bash $USERNAME
|
||||
RUN usermod -aG sudo,ssl-cert $USERNAME
|
||||
RUN echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$USERNAME
|
||||
RUN chmod 0440 /etc/sudoers.d/$USERNAME
|
||||
RUN echo "${USERNAME}:spiri-friend" | chpasswd
|
||||
|
||||
COPY --chown=$USER_UID:$USER_GID ./kasmpasswd /home/$USERNAME/.kasmpasswd
|
||||
COPY --chown=$USER_UID:$USER_GID --chmod=0755 ./xstartup /home/$USERNAME/.vnc/xstartup
|
||||
|
||||
COPY ./background.png /opt/spiri-wallpaper.png
|
||||
run sed -i 's|/usr/share/lxqt/themes/debian/wallpaper.svg|/opt/spiri-wallpaper.png|' /etc/xdg/pcmanfm-qt/lxqt/settings.conf
|
||||
#Remove transparency it can make lead to compression artifacts
|
||||
run sed -i 's|TerminalTransparency=10|/TerminalTransparency=0|' /etc/xdg/qterminal.org/qterminal.ini
|
||||
|
||||
#Copy in our custom gazebo resources
|
||||
COPY --link --from=git.spirirobotics.com/spiri/gazebo-resources:latest /models /usr/share/gazebo-11/models/
|
||||
COPY --link --from=git.spirirobotics.com/spiri/gazebo-resources:latest /worlds /usr/share/gazebo-11/worlds/
|
||||
COPY --link --from=git.spirirobotics.com/spiri/gazebo-resources:latest /plugins /usr/lib/x86_64-linux-gnu/gazebo-11/plugins
|
||||
|
||||
# USER $USERNAME
|
||||
# #Install nix, for easy mixin packages. Homebrew would also work...
|
||||
# RUN curl -L https://nixos.org/nix/install | sh -s -- --no-daemon
|
||||
# COPY ./nix.conf /etc/nix/nix.conf
|
||||
# # RUN nix flake init
|
||||
# USER 0
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
Make sure sysbox is installed and run
|
||||
|
||||
```sh
|
||||
docker run --runtime=sysbox-runc -it spiri-sdk-desktop
|
||||
```
|
||||
|
||||
Navigate to http://localhost:8466, and log in using the username `spiri` and the password `spiri-friend`
|
Binary file not shown.
After Width: | Height: | Size: 834 KiB |
|
@ -0,0 +1 @@
|
|||
spiri:$5$kasm$bc2Fwutowq1kSiQCv2rNYVgn8.bJeARYMydYCvU1WKC:wo
|
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=KasmVNC
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=kasmvncserver :23 -fg -select-de LXQT
|
||||
ExectStop kasmvncserver -kill :23
|
||||
User=spiri
|
||||
Group=spiri
|
||||
|
||||
Restart=on-failure
|
||||
RestartSec=3
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
|
|
@ -0,0 +1,131 @@
|
|||
desktop:
|
||||
resolution:
|
||||
width: 1024
|
||||
height: 768
|
||||
allow_resize: true
|
||||
pixel_depth: 24
|
||||
gpu:
|
||||
hw3d: false
|
||||
drinode: /dev/dri/renderD128
|
||||
|
||||
network:
|
||||
protocol: http
|
||||
interface: 0.0.0.0
|
||||
websocket_port: auto
|
||||
use_ipv4: true
|
||||
use_ipv6: true
|
||||
udp:
|
||||
public_ip: auto
|
||||
port: auto
|
||||
stun_server: auto
|
||||
ssl:
|
||||
pem_certificate: /etc/ssl/certs/ssl-cert-snakeoil.pem
|
||||
pem_key: /etc/ssl/private/ssl-cert-snakeoil.key
|
||||
require_ssl: false
|
||||
|
||||
user_session:
|
||||
new_session_disconnects_existing_exclusive_session: false
|
||||
concurrent_connections_prompt: false
|
||||
concurrent_connections_prompt_timeout: 10
|
||||
idle_timeout: never
|
||||
|
||||
keyboard:
|
||||
remap_keys:
|
||||
ignore_numlock: false
|
||||
raw_keyboard: false
|
||||
|
||||
pointer:
|
||||
enabled: true
|
||||
|
||||
runtime_configuration:
|
||||
allow_client_to_override_kasm_server_settings: true
|
||||
allow_override_standard_vnc_server_settings: true
|
||||
allow_override_list:
|
||||
- pointer.enabled
|
||||
- data_loss_prevention.clipboard.server_to_client.enabled
|
||||
- data_loss_prevention.clipboard.client_to_server.enabled
|
||||
- data_loss_prevention.clipboard.server_to_client.primary_clipboard_enabled
|
||||
|
||||
logging:
|
||||
log_writer_name: all
|
||||
log_dest: logfile
|
||||
level: 30
|
||||
|
||||
security:
|
||||
brute_force_protection:
|
||||
blacklist_threshold: 5
|
||||
blacklist_timeout: 10
|
||||
|
||||
data_loss_prevention:
|
||||
visible_region:
|
||||
# top: 10
|
||||
# left: 10
|
||||
# right: 40
|
||||
# bottom: 40
|
||||
concealed_region:
|
||||
allow_click_down: false
|
||||
allow_click_release: false
|
||||
clipboard:
|
||||
delay_between_operations: none
|
||||
allow_mimetypes:
|
||||
- chromium/x-web-custom-data
|
||||
- text/html
|
||||
- image/png
|
||||
server_to_client:
|
||||
enabled: true
|
||||
size: unlimited
|
||||
primary_clipboard_enabled: false
|
||||
client_to_server:
|
||||
enabled: true
|
||||
size: unlimited
|
||||
keyboard:
|
||||
enabled: true
|
||||
rate_limit: unlimited
|
||||
logging:
|
||||
level: off
|
||||
|
||||
encoding:
|
||||
max_frame_rate: 60
|
||||
full_frame_updates: none
|
||||
rect_encoding_mode:
|
||||
min_quality: 7
|
||||
max_quality: 8
|
||||
consider_lossless_quality: 10
|
||||
rectangle_compress_threads: auto
|
||||
|
||||
video_encoding_mode:
|
||||
jpeg_quality: -1
|
||||
webp_quality: -1
|
||||
max_resolution:
|
||||
width: 1920
|
||||
height: 1080
|
||||
enter_video_encoding_mode:
|
||||
time_threshold: 5
|
||||
area_threshold: 45%
|
||||
exit_video_encoding_mode:
|
||||
time_threshold: 3
|
||||
logging:
|
||||
level: off
|
||||
scaling_algorithm: progressive_bilinear
|
||||
|
||||
compare_framebuffer: auto
|
||||
zrle_zlib_level: auto
|
||||
hextile_improved_compression: true
|
||||
|
||||
server:
|
||||
http:
|
||||
headers:
|
||||
- Cross-Origin-Embedder-Policy=require-corp
|
||||
- Cross-Origin-Opener-Policy=same-origin
|
||||
httpd_directory: /usr/share/kasmvnc/www
|
||||
advanced:
|
||||
x_font_path: auto
|
||||
kasm_password_file: ${HOME}/.kasmpasswd
|
||||
x_authority_file: auto
|
||||
auto_shutdown:
|
||||
no_user_session_timeout: never
|
||||
active_user_session_timeout: never
|
||||
inactive_user_session_timeout: never
|
||||
|
||||
command_line:
|
||||
prompt: true
|
Loading…
Reference in New Issue