| 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 |