Spaces:
Sleeping
Sleeping
| FROM linuxserver/webtop:ubuntu-xfce | |
| # -------------------------------------------------------- | |
| # 1. SMART PORT CONFIGURATION | |
| # -------------------------------------------------------- | |
| RUN grep -rl "3000" /defaults | xargs sed -i 's/3000/7860/g' | |
| # -------------------------------------------------------- | |
| # 2. PERMISSIONS & ENVIRONMENT (QUALIDADE MÁXIMA) | |
| # -------------------------------------------------------- | |
| ENV PUID=1000 | |
| ENV PGID=1000 | |
| ENV TZ=America/Sao_Paulo | |
| # Configurações para forçar ALTA QUALIDADE no KasmVNC (Webtop) | |
| ENV KASMVNC_QUALITY=100 | |
| ENV KASMVNC_FPS=60 | |
| ENV KASMVNC_COMPRESSION_LEVEL=0 | |
| ENV KASMVNC_ENCODING=webp | |
| # -------------------------------------------------------- | |
| # 3. INSTALL APPS (CHROMIUM LEVE + EXTRAS) | |
| # -------------------------------------------------------- | |
| RUN apt-get update && apt-get install -y \ | |
| python3 \ | |
| python3-pip \ | |
| git \ | |
| firefox \ | |
| nano \ | |
| vlc \ | |
| iputils-ping \ | |
| dnsutils \ | |
| wget \ | |
| xdg-utils \ | |
| thunar \ | |
| mousepad \ | |
| xfce4-taskmanager \ | |
| xfce4-screenshooter \ | |
| xfce4-appfinder \ | |
| && apt-get clean | |
| # -------------------------------------------------------- | |
| # 4.1 FIREFOX "BOSS MODE" (Enterprise Policy) | |
| # -------------------------------------------------------- | |
| RUN mkdir -p /etc/firefox/policies && \ | |
| echo '{ "policies": { "DNSOverHTTPS": { "Enabled": true, "ProviderURL": "https://mozilla.cloudflare-dns.com/dns-query", "Locked": true } } }' > /etc/firefox/policies/policies.json | |
| # -------------------------------------------------------- | |
| # 4.2 CHROMIUM "BOSS MODE" (Managed Policy) | |
| # -------------------------------------------------------- | |
| RUN mkdir -p /etc/chromium/policies/managed && \ | |
| echo '{ "DnsOverHttpsMode": "secure", "DnsOverHttpsTemplates": "https://chrome.cloudflare-dns.com/dns-query" }' > /etc/chromium/policies/managed/managed_policies.json | |
| # Garante que funciona se o usuário instalar o Chrome oficial depois | |
| RUN mkdir -p /etc/opt/chrome/policies/managed && \ | |
| cp /etc/chromium/policies/managed/managed_policies.json /etc/opt/chrome/policies/managed/managed_policies.json | |
| # -------------------------------------------------------- | |
| # 4.3 DISFARCE VISUAL (PAPEL DE PAREDE FORÇADO) | |
| # -------------------------------------------------------- | |
| # Copiamos a imagem para múltiplos locais para garantir que o XFCE a encontre | |
| COPY papel.png /usr/share/backgrounds/xfce/custom-wallpaper.png | |
| RUN cp /usr/share/backgrounds/xfce/custom-wallpaper.png /usr/share/backgrounds/xfce/xfce-stripes.png && \ | |
| cp /usr/share/backgrounds/xfce/custom-wallpaper.png /usr/share/backgrounds/xfce/xfce-teal.png && \ | |
| cp /usr/share/backgrounds/xfce/custom-wallpaper.png /usr/share/backgrounds/xfce/xfce-blue.png | |
| # -------------------------------------------------------- | |
| # 5. CONFIGURAÇÃO DE PERFIL PADRÃO (O SEGREDO) | |
| # -------------------------------------------------------- | |
| # O Webtop usa o diretório /defaults/profile para criar o usuário 'abc' na primeira vez. | |
| # Vamos injetar a configuração do XFCE diretamente lá. | |
| # Ajustado para image-style=0 (Original/Centered) ou 5 (Stretched) para evitar interpolação ruim. | |
| RUN mkdir -p /defaults/profile/.config/xfce4/xfconf/xfce-perchannel-xml/ && \ | |
| echo '<?xml version="1.0" encoding="UTF-8"?>\n\ | |
| <channel name="xfce4-desktop" version="1.0">\n\ | |
| <property name="backdrop" type="empty">\n\ | |
| <property name="screen0" type="empty">\n\ | |
| <property name="monitor0" type="empty">\n\ | |
| <property name="workspace0" type="empty">\n\ | |
| <property name="last-image" type="string" value="/usr/share/backgrounds/xfce/custom-wallpaper.png"/>\n\ | |
| <property name="image-style" type="int" value="5"/>\n\ | |
| </property>\n\ | |
| </property>\n\ | |
| <property name="monitorVNC" type="empty">\n\ | |
| <property name="workspace0" type="empty">\n\ | |
| <property name="last-image" type="string" value="/usr/share/backgrounds/xfce/custom-wallpaper.png"/>\n\ | |
| <property name="image-style" type="int" value="5"/>\n\ | |
| </property>\n\ | |
| </property>\n\ | |
| <property name="monitorrdp0" type="empty">\n\ | |
| <property name="workspace0" type="empty">\n\ | |
| <property name="last-image" type="string" value="/usr/share/backgrounds/xfce/custom-wallpaper.png"/>\n\ | |
| <property name="image-style" type="int" value="5"/>\n\ | |
| </property>\n\ | |
| </property>\n\ | |
| </property>\n\ | |
| </property>\n\ | |
| <property name="desktop-icons" type="empty">\n\ | |
| <property name="file-icons" type="empty">\n\ | |
| <property name="show-filesystem" type="bool" value="false"/>\n\ | |
| <property name="show-home" type="bool" value="true"/>\n\ | |
| <property name="show-trash" type="bool" value="false"/>\n\ | |
| </property>\n\ | |
| </property>\n\ | |
| </channel>' > /defaults/profile/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml | |
| # -------------------------------------------------------- | |
| # 6. SCRIPT DE AUTO-REPARO (REFORÇADO) | |
| # -------------------------------------------------------- | |
| RUN echo '#!/bin/bash' > /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'sleep 10' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'mkdir -p $HOME/Desktop' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| \ | |
| # Atalhos Chrome/Chromium | |
| echo 'if [ -f /usr/share/applications/chromium-browser.desktop ]; then' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo ' cp /usr/share/applications/chromium-browser.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'elif [ -f /usr/share/applications/chromium.desktop ]; then' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo ' cp /usr/share/applications/chromium.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'fi' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| \ | |
| # Atalhos Padrão e Utilitários | |
| echo 'cp /usr/share/applications/firefox.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'cp /usr/share/applications/xfce4-terminal.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'cp /usr/share/applications/thunar.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'cp /usr/share/applications/mousepad.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'cp /usr/share/applications/xfce4-taskmanager.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'cp /usr/share/applications/xfce4-screenshooter.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'cp /usr/share/applications/xfce4-appfinder.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'cp /usr/share/applications/vlc.desktop $HOME/Desktop/' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| \ | |
| # Downloads | |
| echo 'mkdir -p $HOME/Downloads' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'ln -sf $HOME/Downloads $HOME/Desktop/Downloads' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| \ | |
| # Permissões | |
| echo 'chmod +x $HOME/Desktop/*.desktop' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| \ | |
| # FORÇAR WALLPAPER VIA XFCONF (Múltiplos alvos) | |
| echo 'IMG="/usr/share/backgrounds/xfce/custom-wallpaper.png"' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'export DISPLAY=:1' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| # FIX: Usar xfconf-query de forma agressiva para todos os monitores possíveis | |
| echo 'for p in $(xfconf-query -c xfce4-desktop -l | grep "last-image"); do' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo ' xfconf-query -c xfce4-desktop -p "$p" -s "$IMG" --create -t string' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'done' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'for p in $(xfconf-query -c xfce4-desktop -l | grep "image-style"); do' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo ' xfconf-query -c xfce4-desktop -p "$p" -s 5 --create -t int' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'done' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| \ | |
| # Desativa suavização de fonte e outros ajustes que podem causar borrão na interface | |
| echo 'xfconf-query -c xsettings -p /Xft/Antialias -s 1' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'xfconf-query -c xsettings -p /Xft/Hinting -s 1' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'xfconf-query -c xsettings -p /Xft/HintStyle -s "hintfull"' >> /usr/local/bin/force-desktop-icons.sh && \ | |
| echo 'xfdesktop --reload' >> /usr/local/bin/force-desktop-icons.sh | |
| # Torna executável e adiciona ao boot | |
| RUN chmod +x /usr/local/bin/force-desktop-icons.sh | |
| RUN mkdir -p /etc/xdg/autostart && \ | |
| echo '[Desktop Entry]' > /etc/xdg/autostart/force-icons.desktop && \ | |
| echo 'Type=Application' >> /etc/xdg/autostart/force-icons.desktop && \ | |
| echo 'Name=Fix Icons' >> /etc/xdg/autostart/force-icons.desktop && \ | |
| echo 'Exec=/usr/local/bin/force-desktop-icons.sh' >> /etc/xdg/autostart/force-icons.desktop | |
| # -------------------------------------------------------- | |
| # 7. SISTEMA DE CAMUFLAGEM BLINDADA (V8) | |
| # -------------------------------------------------------- | |
| RUN \ | |
| echo 'export HOSTNAME="vps-pro"' >> /etc/bash.bashrc && \ | |
| echo 'export SESSION_MANAGER="local/vps-pro:@/tmp/.ICE-unix/400"' >> /etc/bash.bashrc && \ | |
| echo 'unset SPACE_ID SPACE_SUBDOMAIN SPACE_TITLE SPACE_CREATOR_USER_ID HUGGINGFACE_HUB_TOKEN SPACE_AUTHOR_NAME SPACE_REPO_NAME SPACE_HOST' >> /etc/bash.bashrc && \ | |
| # Prompts | |
| echo 'export PS1="\[\e[1;32m\]user@vps-pro\[\e[m\]:\[\e[1;34m\]\w\[\e[m\]$ "' >> /etc/bash.bashrc && \ | |
| echo 'export PS1="\[\e[1;31m\]root@vps-pro\[\e[m\]:\[\e[1;34m\]\w\[\e[m\]# "' >> /root/.bashrc && \ | |
| # Proteções | |
| echo "alias env='/usr/bin/env | grep -vE \"hug|space|token|adrianorico|BASH_FUNC\"'" >> /etc/bash.bashrc && \ | |
| echo 'cat() {' >> /etc/bash.bashrc && \ | |
| echo ' /usr/bin/cat "$@" | sed -e "s/adri""anorico/client-id-8821/gI" -e "s/huggingface/aws-system/gI" -e "s/hf.space/compute.internal/gI";' >> /etc/bash.bashrc && \ | |
| echo '}' >> /etc/bash.bashrc && \ | |
| echo 'more() {' >> /etc/bash.bashrc && \ | |
| echo ' /usr/bin/more "$@" | sed -e "s/adri""anorico/client-id-8821/gI" -e "s/huggingface/aws-system/gI" -e "s/hf.space/compute.internal/gI";' >> /etc/bash.bashrc && \ | |
| echo '}' >> /etc/bash.bashrc && \ | |
| echo 'ping() {' >> /etc/bash.bashrc && \ | |
| echo ' /usr/bin/ping "$@" | sed -e "s/adri""anorico/client-id-8821/gI" -e "s/huggingface/aws-system/gI" -e "s/hf.space/compute.internal/gI";' >> /etc/bash.bashrc && \ | |
| echo '}' >> /etc/bash.bashrc && \ | |
| echo "alias hostname='echo vps-pro'" >> /etc/bash.bashrc && \ | |
| cp /etc/bash.bashrc /root/.bashrc | |
| # -------------------------------------------------------- | |
| # 8. START | |
| # -------------------------------------------------------- | |
| # The container handles the rest |