File size: 6,533 Bytes
4a63f17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c06bcbe
 
 
4a63f17
b3c4187
 
c06bcbe
4a63f17
 
b3c4187
 
 
c06bcbe
4a63f17
b3c4187
 
21f9b1e
c06bcbe
8cd2ee3
c06bcbe
 
ab8ddc0
0a2210a
 
 
c06bcbe
69d03c5
 
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
FROM libretranslate/libretranslate

USER root

RUN apt-get update && apt-get install -y \
    curl unzip git python3-pip

RUN mkdir -p /.local && chmod -R 777 /.local && \
    mkdir -p /app/db/sessions && chmod -R 777 /app/db && \
    mkdir -p /app/suggestions

ENV HOME=/app

# Install Kabyle Tasenselkimt model
RUN curl -L -o /app/en_kab_comp.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/en_kab_comp.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_kab_comp.argosmodel')"

# Install en-kab model
RUN curl -L -o /app/en_kab-1_0.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/en_kab-1_0.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_kab-1_0.argosmodel')"

# Install kab-en model
RUN curl -L -o /app/kab_en-1_0.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/kab_en-1_0.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/kab_en-1_0.argosmodel')"

# Install en-kab model 51000
RUN curl -L -o /app/en_kab-1_2.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/en_kab-1_2.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_kab-1_2.argosmodel')"

# Install en-kab model 27500 with OpenSubtitles BT
RUN curl -L -o /app/en_kab-1_0_os.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/en_kab-1_0_os.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_kab-1_0_os.argosmodel')"

# Install en-zgh tuned OPUS
RUN curl -L -o /app/translate-en_zgh-1_0.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/translate-en_zgh-1_0.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/translate-en_zgh-1_0.argosmodel')"

# Install en-kab model num 40000
RUN curl -L -o /app/en_kab-num40000.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/en_kab-num40000.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_kab-num40000.argosmodel')"

# Install en-kab model 34000
RUN curl -L -o /app/en_kab-kab.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/en_kab-kab.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_kab-kab.argosmodel')"

# Install Occitan model
RUN curl -L -o /app/translate-en_oc-1_0.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/translate-en_oc-1_0.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/translate-en_oc-1_0.argosmodel')"

# Install Occitan 20000 model
RUN curl -L -o /app/translate-en_oc-1_1.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/translate-en_oc-1_1.argosmodel && \
    ls -lh /app/translate-en_oc-1_1.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/translate-en_oc-1_1.argosmodel')"

# Install Occitan 26000 model
RUN curl -L -o /app/en_oc-1_3.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/en_oc-1_3.argosmodel && \
    ls -lh /app/en_oc-1_3.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_oc-1_3.argosmodel')"

# Install English to Breton OPUS model
RUN curl -L -o /app/opus-en_br-1_0.argosmodel \
    https://huggingface.co/spaces/Imsidag-community/LibreTranslate_Kabyle/resolve/main/opus-en_br-1_0.argosmodel && \
    ls -lh /app/opus-en_br-1_0.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/opus-en_br-1_0.argosmodel')"

# Install English to French model
RUN curl -L -o /app/en_fr.argosmodel \
    https://argos-net.com/v1/translate-en_fr-1_9.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_fr.argosmodel')"

# Install French to english model
RUN curl -L -o /app/fr_en.argosmodel \
    https://argos-net.com/v1/translate-fr_en-1_9.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/fr_en.argosmodel')"

# Install Catalan to english model
RUN curl -L -o /app/ca_en.argosmodel \
    https://argos-net.com/v1/translate-ca_en-1_7.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/ca_en.argosmodel')"

# Install English to Catalan model
RUN curl -L -o /app/en_ca.argosmodel \
    https://argos-net.com/v1/translate-en_ca-1_9.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_ca.argosmodel')"

# Install German model
RUN curl -L -o /app/en_de.argosmodel \
    https://argos-net.com/v1/translate-en_de-1_0.argosmodel && \
    /app/venv/bin/python3 -c "import argostranslate.package; argostranslate.package.install_from_path('/app/en_de.argosmodel')"

# Install Hugging Face hub client
RUN /app/venv/bin/pip install huggingface_hub

# ── NEW: proxy dependencies ──
RUN /app/venv/bin/pip install fastapi uvicorn httpx

COPY upload_suggestions.py /app/upload_suggestions.py

# ── NEW: proxy and startup script ──
COPY proxy.py /app/proxy.py
COPY start.sh /app/start.sh
RUN chmod +x /app/start.sh

# LibreTranslate runs internally; proxy serves externally
ENV LT_HOST="127.0.0.1"
ENV LT_PORT="5000"
ENV LT_LOAD_ONLY="en,de,kab,kab_comp,kab_os,kab_num,oc,oc_comp,kab_kab"
ENV LT_SSL=True
ENV LT_SUGGESTIONS="true"
ENV LT_REQ_LIMIT="100"
ENV LT_FRONTEND_LANGUAGE_SOURCE="en"
ENV LT_FRONTEND_LANGUAGE_TARGET="kab"
ENV LT_MAX_TEXT_LENGTH=5000
ENV LT_CHAR_LIMIT=50000
ENV LT_CHAR_LIMIT_WINDOW=3600

ENTRYPOINT ["/app/start.sh"]
CMD []