mirror of https://github.com/Box-boi/vubuntu.git
127 lines
5.2 KiB
Docker
Executable File
127 lines
5.2 KiB
Docker
Executable File
FROM ubuntu:20.04
|
|
|
|
LABEL Maintainer "Apoorv Vyavahare <apoorvvyavahare@pm.me>"
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
#VNC Server Password
|
|
ENV VNC_PASS="samplepass" \
|
|
#VNC Server Title(w/o spaces)
|
|
VNC_TITLE="Vubuntu_Desktop" \
|
|
#VNC Resolution(720p is preferable)
|
|
VNC_RESOLUTION="1280x720" \
|
|
#VNC Shared Mode (0=off, 1=on)
|
|
VNC_SHARED=0 \
|
|
#Local Display Server Port
|
|
DISPLAY=:0 \
|
|
#NoVNC Port
|
|
NOVNC_PORT=$PORT \
|
|
#Ngrok Token
|
|
NGROK_AUTH_TOKEN="placeholder" \
|
|
#Brave Shared Memory Usage (Set it to 0 to disable the use of /dev/shm for Brave Browser, helpful for Heroku)
|
|
BRAVE_USE_SHM=1 \
|
|
#Self Backup: Enable Backup Of App Data And App Cache Using Rclone, disabled by default
|
|
SELF_BACKUP=0 \
|
|
#Rclone Config Link: rclone.conf : pasted to gist.github.com [Raw Links Only][Secret Gist Only]
|
|
RCLONE_CONFIG_LINK="placeholder" \
|
|
#Backup Script Link: Backup Script Which Specifies Which Folders Are To Be Synced By Rclone.
|
|
BACKUP_SCRIPT_LINK="https://gist.githubusercontent.com/Box-boi/dda8fe9a1be8c21b5666fd317a9d40cc/raw/rclone-backup-script.sh" \
|
|
#Locale
|
|
LANG=en_US.UTF-8 \
|
|
LANGUAGE=en_US.UTF-8 \
|
|
LC_ALL=C.UTF-8 \
|
|
TZ="Asia/Kolkata"
|
|
|
|
COPY . /app/.vubuntu
|
|
|
|
SHELL ["/bin/bash", "-c"]
|
|
|
|
RUN apt-get update && \
|
|
apt-get --no-install-recommends install -y \
|
|
#Basic Packages
|
|
tzdata software-properties-common apt-transport-https wget zip unzip htop git curl vim nano zip sudo net-tools x11-utils eterm iputils-ping build-essential xvfb x11vnc supervisor \
|
|
#GUI Utilities
|
|
gnome-terminal gnome-calculator gnome-system-monitor pcmanfm terminator firefox \
|
|
#Python
|
|
python3 python3-pip python-is-python3 \
|
|
#Java
|
|
default-jre default-jdk \
|
|
#Text Editors
|
|
vim-gtk3 mousepad pluma \
|
|
#NodeJS
|
|
nodejs npm \
|
|
#Go
|
|
golang \
|
|
#Other Languages
|
|
#perl \
|
|
#ruby \
|
|
#lua5.3 \
|
|
#scala \
|
|
#mono-complete \
|
|
#r-base \
|
|
#clojure \
|
|
#php \
|
|
#Extras
|
|
libreoffice \
|
|
gnupg \
|
|
dirmngr \
|
|
gdebi-core \
|
|
nginx \
|
|
ffmpeg && \
|
|
#Fluxbox & noVNC
|
|
apt-get install --no-install-recommends -y /app/.vubuntu/assets/packages/fluxbox.deb /app/.vubuntu/assets/packages/novnc.deb && \
|
|
cp /usr/share/novnc/vnc.html /usr/share/novnc/index.html && \
|
|
openssl req -new -newkey rsa:4096 -days 36500 -nodes -x509 -subj "/C=IN/ST=Maharastra/L=Private/O=Dis/CN=www.google.com" -keyout /etc/ssl/novnc.key -out /etc/ssl/novnc.cert && \
|
|
#Websockify
|
|
npm i websockify && \
|
|
#MATE Desktop (remove "/app/.vubuntu/assets/packages/fluxbox.deb" from line 66 before uncommenting)
|
|
#apt-get install -y \
|
|
#ubuntu-mate-core \
|
|
#ubuntu-mate-desktop && \
|
|
#XFCE Desktop (remove "/app/.vubuntu/assets/packages/fluxbox.deb" from line 66 before uncommenting)
|
|
#apt-get install -y \
|
|
#xubuntu-desktop && \
|
|
#TimeZone
|
|
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
|
|
echo $TZ > /etc/timezone && \
|
|
#VS Code - source
|
|
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /tmp/packages.microsoft.gpg && \
|
|
install -o root -g root -m 644 /tmp/packages.microsoft.gpg /etc/apt/trusted.gpg.d/ && \
|
|
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list && \
|
|
#Brave - source
|
|
curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg && \
|
|
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"|tee /etc/apt/sources.list.d/brave-browser-release.list && \
|
|
#PeaZip - source
|
|
wget https://github.com/peazip/PeaZip/releases/download/8.2.0/peazip_8.2.0.LINUX.GTK2-1_amd64.deb -P /tmp && \
|
|
#Sublime - source
|
|
curl -fsSL https://download.sublimetext.com/sublimehq-pub.gpg | apt-key add - && \
|
|
add-apt-repository "deb https://download.sublimetext.com/ apt/stable/" && \
|
|
#Telegram - source
|
|
wget https://updates.tdesktop.com/tlinux/tsetup.3.2.2.tar.xz -P /tmp && \
|
|
tar -xvf /tmp/tsetup.3.2.2.tar.xz -C /tmp && \
|
|
mv /tmp/Telegram/Telegram /usr/bin/telegram && \
|
|
#PowerShell - source
|
|
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -P /tmp && \
|
|
#Installation
|
|
apt-get update && \
|
|
apt-get install --no-install-recommends code brave-browser /tmp/peazip_8.2.0.LINUX.GTK2-1_amd64.deb sublime-text /tmp/packages-microsoft-prod.deb -y && \
|
|
apt-get update && \
|
|
apt-get install --no-install-recommends -y powershell && \
|
|
#Ngrok
|
|
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip -P /tmp && \
|
|
unzip /tmp/ngrok-stable-linux-amd64.zip -d /usr/bin && \
|
|
ngrok authtoken $NGROK_AUTH_TOKEN && \
|
|
#Live Server setup for VSCode
|
|
code --user-data-dir /root --no-sandbox --install-extension philnash.ngrok-for-vscode && \
|
|
code --user-data-dir /root --no-sandbox --install-extension ritwickdey.LiveServer && \
|
|
#Wipe Temp Files
|
|
rm -rf /var/lib/apt/lists/* && \
|
|
apt-get clean && \
|
|
apt-get autoremove -y && \
|
|
rm -rf /tmp/*
|
|
|
|
ENTRYPOINT ["supervisord", "-l", "/app/.vubuntu/assets/logs/supervisord.log", "-c"]
|
|
|
|
CMD ["/app/.vubuntu/assets/configs/supervisordconf"]
|
|
|