File size: 2,389 Bytes
6f7c08e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
FROM python:3.9.5-buster

# Fix apt sources for old Buster release
RUN sed -i 's|deb.debian.org|archive.debian.org|g' /etc/apt/sources.list && \
    sed -i 's|security.debian.org|archive.debian.org|g' /etc/apt/sources.list && \
    sed -i '/stretch-updates/d' /etc/apt/sources.list && \
    echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99no-check-valid-until
    
# Set timezone
ENV TZ=Asia/Kolkata
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN sed -i 's/main/main contrib non-free/' /etc/apt/sources.list && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        neofetch \
        git \
        curl \
        wget \
        mediainfo \
        ffmpeg \
        p7zip-full \
        unrar \
        unzip \
        libssl-dev \
        libffi-dev \
        python3-dev && \
    apt-get autoremove --purge -y && \
    rm -rf /var/lib/apt/lists/*

# Set working directory
WORKDIR /Ult

# Copy the application code
COPY . .

# --- FIX 1: Connection Speed & Stability ---
# Installing cryptg speeds up encryption, preventing timeouts.
# pysocks helps with connection routing.
RUN pip3 install --no-cache-dir pysocks cryptg

# Install requirements
RUN if [ -f reqs.txt ]; then pip3 install --no-cache-dir -r reqs.txt; fi
RUN pip3 install -U pip
RUN pip3 install -U redis

RUN if [ -f addons.txt ]; then pip3 install --no-cache-dir -r addons.txt; fi
RUN pip3 install --no-cache-dir -r requirements.txt
RUN if [ -f resources/startup/optional-requirements.txt ]; then pip3 install --no-cache-dir -r resources/startup/optional-requirements.txt; fi || true

# --- FIX 2: Resolve Crash (Server.py) ---
# Downgrade FastAPI to be compatible with Pydantic v1 (which your bot likely uses)
# This fixes: ImportError: cannot import name 'TypeAdapter' from 'pydantic'
RUN pip3 install "fastapi<0.100.0" "pydantic<2.0.0" uvicorn

# Set appropriate permissions
RUN chown -R 1000:0 /Ult && \
    chmod 777 . && \
    chmod 777 /usr && \
    chown -R 1000:0 /usr && \
    chmod -R 755 /Ult

# Expose port for Hugging Face Spaces
EXPOSE 7860

# --- TRICK 3: Auto-delete session + Force IPv4 ---
# Deletes old sessions AND forces Python to use IPv4 for DNS (helps with connection blocks)
CMD ["bash", "-c", "echo '🔄 Cleaning sessions...' && find . -name '*.session' -type f -delete && python3 server.py & python3 bot.py"]