|
FROM ubuntu:22.04 |
|
|
|
ENV DEBIAN_FRONTEND=noninteractive |
|
ENV TERM=xterm-256color |
|
ENV NPM_CONFIG_PREFIX=/home/Draco/.npm-global |
|
ENV PATH=$PATH:/home/Draco/.npm-global/bin |
|
|
|
|
|
RUN apt-get update && apt-get install -y sudo && \ |
|
mkdir -p /etc/sudoers.d && \ |
|
useradd -m -u 1000 -s /bin/bash Draco && \ |
|
echo "Draco ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/draco && \ |
|
chmod 440 /etc/sudoers.d/draco && \ |
|
mkdir -p /home/Draco/.npm-global && chown -R Draco:Draco /home/Draco/.npm-global |
|
|
|
|
|
RUN apt-get install -y curl gnupg apt-transport-https ca-certificates && apt-get clean |
|
|
|
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ |
|
apt-get install -y --no-install-recommends \ |
|
nodejs \ |
|
ffmpeg \ |
|
python3 python3-pip python3-venv \ |
|
build-essential \ |
|
openssh-client \ |
|
neofetch \ |
|
git \ |
|
wget \ |
|
vim nano unzip zip htop \ |
|
net-tools iputils-ping dnsutils \ |
|
tmux screen jq \ |
|
software-properties-common \ |
|
sqlite3 libsqlite3-dev libssl-dev libffi-dev \ |
|
libxml2-dev libxslt1-dev libjpeg-dev \ |
|
zlib1g-dev libpng-dev libwebp-dev \ |
|
pkg-config rsync lsof \ |
|
tree mc \ |
|
python3-dev python3-distutils python3-setuptools \ |
|
cron aria2 telnet expect && \ |
|
apt-get clean && rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
RUN pip3 install --no-cache-dir \ |
|
pytelegrambotapi \ |
|
requests \ |
|
beautifulsoup4 \ |
|
lxml \ |
|
flask \ |
|
httpx \ |
|
aiohttp \ |
|
schedule |
|
|
|
|
|
RUN curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | \ |
|
tee /usr/share/keyrings/tailscale-archive-keyring.gpg > /dev/null && \ |
|
echo "deb [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] https://pkgs.tailscale.com/stable/ubuntu jammy main" \ |
|
> /etc/apt/sources.list.d/tailscale.list && \ |
|
apt-get update && \ |
|
apt-get install -y tailscale && \ |
|
apt-get clean && rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
RUN mkdir -p /app && echo "Tailscale & app running..." > /app/index.html && \ |
|
chown -R Draco:Draco /app |
|
|
|
WORKDIR /app |
|
|
|
USER Draco |
|
|
|
|
|
CMD tailscaled --tun=userspace-networking --socks5-server=localhost:1055 > /dev/null 2>&1 & \ |
|
for i in $(seq 1 10); do \ |
|
if [ -S /tmp/tailscaled.sock ]; then \ |
|
echo "tailscaled is ready"; break; \ |
|
fi; \ |
|
sleep 1; \ |
|
done; \ |
|
tailscale up --authkey=tskey-auth-krBh6cJ4GS11CNTRL-Ys653FbsA8VzjZbm7CdD8Vy4C1iCpmh2 --ssh --netfilter-mode=off && \ |
|
python3 -m http.server 7860 |