Synced
This commit is contained in:
parent
34fbfc54d8
commit
88e6709a94
4 changed files with 205 additions and 17 deletions
105
docker/root-with-sshd.Dockerfile
Normal file
105
docker/root-with-sshd.Dockerfile
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
FROM python:3.11.11-slim-bullseye AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN <<EOF
|
||||||
|
apt-get update -qq
|
||||||
|
apt-get -qqq install --no-install-recommends -y pkg-config gcc g++
|
||||||
|
apt-get upgrade --assume-yes
|
||||||
|
apt-get clean
|
||||||
|
rm -rf /var/lib/apt
|
||||||
|
|
||||||
|
python -mvenv venv
|
||||||
|
./venv/bin/pip install --no-cache-dir --upgrade pip
|
||||||
|
EOF
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Install package from source code, compile translations
|
||||||
|
RUN <<EOF
|
||||||
|
./venv/bin/pip install Babel==2.12.1
|
||||||
|
./venv/bin/python scripts/compile_locales.py
|
||||||
|
./venv/bin/pip install torch==2.2.0 --extra-index-url https://download.pytorch.org/whl/cpu
|
||||||
|
./venv/bin/pip install "numpy<2"
|
||||||
|
./venv/bin/pip install .
|
||||||
|
./venv/bin/pip cache purge
|
||||||
|
EOF
|
||||||
|
|
||||||
|
FROM python:3.11.11-slim-bullseye
|
||||||
|
|
||||||
|
ARG with_models=false
|
||||||
|
ARG models=""
|
||||||
|
|
||||||
|
ARG root_password=""
|
||||||
|
ARG api_key=""
|
||||||
|
|
||||||
|
ENV ENABLE_SSHD=${root_password:+true}
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
if [ "$ENABLE_SSHD" = "true" ]; then
|
||||||
|
# sshd
|
||||||
|
mkdir /var/run/sshd
|
||||||
|
apt-get update -qq
|
||||||
|
apt-get -qqq install --no-install-recommends -y openssh-server
|
||||||
|
apt-get clean
|
||||||
|
rm -rf /var/lib/apt
|
||||||
|
|
||||||
|
# sshd_config
|
||||||
|
echo "root:${root_password}" | chpasswd
|
||||||
|
sed -i 's/^#?\(PermitRootLogin\) .*$/\1 yes/' /etc/ssh/sshd_config
|
||||||
|
sed -i 's/^#?\(PasswordAuthentication\) .*$/\1 yes/' /etc/ssh/sshd_config
|
||||||
|
sed -i 's/^#?\(UsePAM\) .*$/\1 no/' /etc/ssh/sshd_config
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
COPY --from=builder --chown=root:root /app /app
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY --from=builder --chown=root:root /app/venv/bin/ltmanage /usr/bin/
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
if [ "$with_models" = "true" ]; then
|
||||||
|
# initialize the language models
|
||||||
|
if [ ! -z "$models" ]; then
|
||||||
|
./venv/bin/python scripts/install_models.py --load_only_lang_codes "$models"
|
||||||
|
else
|
||||||
|
./venv/bin/python scripts/install_models.py
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
if [ ! -z "$api_key" ]; then
|
||||||
|
# initialize the API key database
|
||||||
|
./venv/bin/python - <<'EOPython'
|
||||||
|
from libretranslate.api_keys import Database
|
||||||
|
from libretranslate.default_values import DEFAULT_ARGUMENTS as DEFARGS
|
||||||
|
Database(DEFARGS['API_KEYS_DB_PATH'])
|
||||||
|
EOPython
|
||||||
|
|
||||||
|
# initialize one API key
|
||||||
|
ltmanage keys add 120 --key "$api_key"
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
EXPOSE 22
|
||||||
|
EXPOSE 5000
|
||||||
|
|
||||||
|
# entry point
|
||||||
|
RUN <<EOF
|
||||||
|
cat >'/app/start.sh' <<EOENTRY
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$ENABLE_SSHD" = "true" ]; then
|
||||||
|
service ssh start &
|
||||||
|
fi
|
||||||
|
|
||||||
|
/app/venv/bin/libretranslate --host '*'
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
EOENTRY
|
||||||
|
chmod 755 /app/start.sh
|
||||||
|
EOF
|
||||||
|
ENTRYPOINT [ "/app/start.sh" ]
|
||||||
78
docker/user-with-api-key.Dockerfile
Normal file
78
docker/user-with-api-key.Dockerfile
Normal file
|
|
@ -0,0 +1,78 @@
|
||||||
|
FROM python:3.11.11-slim-bullseye AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN <<EOF
|
||||||
|
apt-get update -qq
|
||||||
|
apt-get -qqq install --no-install-recommends -y pkg-config gcc g++
|
||||||
|
apt-get upgrade --assume-yes
|
||||||
|
apt-get clean
|
||||||
|
rm -rf /var/lib/apt
|
||||||
|
|
||||||
|
python -mvenv venv
|
||||||
|
./venv/bin/pip install --no-cache-dir --upgrade pip
|
||||||
|
EOF
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Install package from source code, compile translations
|
||||||
|
RUN <<EOF
|
||||||
|
./venv/bin/pip install Babel==2.12.1
|
||||||
|
./venv/bin/python scripts/compile_locales.py
|
||||||
|
./venv/bin/pip install torch==2.2.0 --extra-index-url https://download.pytorch.org/whl/cpu
|
||||||
|
./venv/bin/pip install "numpy<2"
|
||||||
|
./venv/bin/pip install .
|
||||||
|
./venv/bin/pip cache purge
|
||||||
|
EOF
|
||||||
|
|
||||||
|
FROM python:3.11.11-slim-bullseye
|
||||||
|
|
||||||
|
ARG with_models=false
|
||||||
|
ARG models=""
|
||||||
|
|
||||||
|
ARG api_key=""
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
addgroup --system --gid 1032 libretranslate
|
||||||
|
adduser --system --uid 1032 libretranslate
|
||||||
|
mkdir -p /home/libretranslate/.local
|
||||||
|
chown -R libretranslate:libretranslate /home/libretranslate/.local
|
||||||
|
EOF
|
||||||
|
|
||||||
|
USER libretranslate
|
||||||
|
|
||||||
|
COPY --from=builder --chown=1032:1032 /app /app
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY --from=builder --chown=1032:1032 /app/venv/bin/ltmanage /usr/bin/
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
if [ "$with_models" = "true" ]; then
|
||||||
|
# initialize the language models
|
||||||
|
if [ ! -z "$models" ]; then
|
||||||
|
./venv/bin/python scripts/install_models.py --load_only_lang_codes "$models"
|
||||||
|
else
|
||||||
|
./venv/bin/python scripts/install_models.py
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
RUN <<EOF
|
||||||
|
if [ ! -z "$api_key" ]; then
|
||||||
|
# initialize the API key database
|
||||||
|
./venv/bin/python - <<'EOPython'
|
||||||
|
from libretranslate.api_keys import Database
|
||||||
|
from libretranslate.default_values import DEFAULT_ARGUMENTS as DEFARGS
|
||||||
|
Database(DEFARGS['API_KEYS_DB_PATH'])
|
||||||
|
EOPython
|
||||||
|
|
||||||
|
# initialize one API key
|
||||||
|
ltmanage keys add 120 --key "$api_key"
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
EXPOSE 22
|
||||||
|
EXPOSE 5000
|
||||||
|
|
||||||
|
ENTRYPOINT [ "./venv/bin/libretranslate", "--host", "*" ]
|
||||||
|
|
@ -9,15 +9,16 @@ msgstr ""
|
||||||
"Project-Id-Version: LibreTranslate 1.3.9\n"
|
"Project-Id-Version: LibreTranslate 1.3.9\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2025-04-18 14:43-0400\n"
|
"POT-Creation-Date: 2025-04-18 14:43-0400\n"
|
||||||
"PO-Revision-Date: 2024-01-23 14:01+0000\n"
|
"PO-Revision-Date: 2025-04-25 07:48+0000\n"
|
||||||
"Last-Translator: Michal Čihař <michal@weblate.org>\n"
|
"Last-Translator: slrslr <adm@prnet.info>\n"
|
||||||
|
"Language-Team: Czech <https://hosted.weblate.org/projects/libretranslate/app/"
|
||||||
|
"cs/>\n"
|
||||||
"Language: cs\n"
|
"Language: cs\n"
|
||||||
"Language-Team: Czech "
|
|
||||||
"<https://hosted.weblate.org/projects/libretranslate/app/cs/>\n"
|
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
|
||||||
|
"X-Generator: Weblate 5.11.1-dev\n"
|
||||||
"Generated-By: Babel 2.12.1\n"
|
"Generated-By: Babel 2.12.1\n"
|
||||||
|
|
||||||
#: libretranslate/app.py:93
|
#: libretranslate/app.py:93
|
||||||
|
|
@ -260,7 +261,7 @@ msgstr "Portugalština"
|
||||||
|
|
||||||
#: libretranslate/locales/.langs.py:34
|
#: libretranslate/locales/.langs.py:34
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr ""
|
msgstr "Portugalština (Brazílie)"
|
||||||
|
|
||||||
#: libretranslate/locales/.langs.py:35
|
#: libretranslate/locales/.langs.py:35
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
|
|
@ -308,15 +309,15 @@ msgstr "Urdu"
|
||||||
|
|
||||||
#: libretranslate/locales/.langs.py:46
|
#: libretranslate/locales/.langs.py:46
|
||||||
msgid "Serbian"
|
msgid "Serbian"
|
||||||
msgstr ""
|
msgstr "Srbština"
|
||||||
|
|
||||||
#: libretranslate/locales/.langs.py:47
|
#: libretranslate/locales/.langs.py:47
|
||||||
msgid "Ukrainian"
|
msgid "Ukrainian"
|
||||||
msgstr ""
|
msgstr "Ukrajinština"
|
||||||
|
|
||||||
#: libretranslate/locales/.langs.py:48
|
#: libretranslate/locales/.langs.py:48
|
||||||
msgid "Vietnamese"
|
msgid "Vietnamese"
|
||||||
msgstr ""
|
msgstr "Vietnamština"
|
||||||
|
|
||||||
#: libretranslate/locales/.swag.py:1
|
#: libretranslate/locales/.swag.py:1
|
||||||
msgid "Retrieve list of supported languages"
|
msgid "Retrieve list of supported languages"
|
||||||
|
|
@ -639,6 +640,8 @@ msgid ""
|
||||||
"Due to bot abuse, translation requests are temporarily limited to users "
|
"Due to bot abuse, translation requests are temporarily limited to users "
|
||||||
"with a valid API key. Sorry for the inconvenience!"
|
"with a valid API key. Sorry for the inconvenience!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Vzhledem ke zneužití roboty, jsou požadavky na překlad dočasně omezeny na "
|
||||||
|
"uživatele s platným klíčem API. Omlouváme se za nepříjemnost!"
|
||||||
|
|
||||||
#: libretranslate/templates/index.html:182
|
#: libretranslate/templates/index.html:182
|
||||||
msgid "Translation API"
|
msgid "Translation API"
|
||||||
|
|
@ -770,4 +773,3 @@ msgstr "%(libretranslate)s přispěvateli"
|
||||||
|
|
||||||
#~ msgid "Galician"
|
#~ msgid "Galician"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,15 +9,16 @@ msgstr ""
|
||||||
"Project-Id-Version: LibreTranslate 1.3.9\n"
|
"Project-Id-Version: LibreTranslate 1.3.9\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2025-04-18 14:43-0400\n"
|
"POT-Creation-Date: 2025-04-18 14:43-0400\n"
|
||||||
"PO-Revision-Date: 2024-10-23 17:15+0000\n"
|
"PO-Revision-Date: 2025-04-26 07:29+0000\n"
|
||||||
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
|
"Last-Translator: Wuzzy <Wuzzy@disroot.org>\n"
|
||||||
|
"Language-Team: German <https://hosted.weblate.org/projects/libretranslate/"
|
||||||
|
"app/de/>\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"Language-Team: German "
|
|
||||||
"<https://hosted.weblate.org/projects/libretranslate/app/de/>\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 5.12-dev\n"
|
||||||
"Generated-By: Babel 2.12.1\n"
|
"Generated-By: Babel 2.12.1\n"
|
||||||
|
|
||||||
#: libretranslate/app.py:93
|
#: libretranslate/app.py:93
|
||||||
|
|
@ -260,7 +261,7 @@ msgstr "Portugiesisch"
|
||||||
|
|
||||||
#: libretranslate/locales/.langs.py:34
|
#: libretranslate/locales/.langs.py:34
|
||||||
msgid "Portuguese (Brazil)"
|
msgid "Portuguese (Brazil)"
|
||||||
msgstr ""
|
msgstr "Portugiesisch (Brasilien)"
|
||||||
|
|
||||||
#: libretranslate/locales/.langs.py:35
|
#: libretranslate/locales/.langs.py:35
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
|
|
@ -643,6 +644,9 @@ msgid ""
|
||||||
"Due to bot abuse, translation requests are temporarily limited to users "
|
"Due to bot abuse, translation requests are temporarily limited to users "
|
||||||
"with a valid API key. Sorry for the inconvenience!"
|
"with a valid API key. Sorry for the inconvenience!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Aufgrund von Bot-Missbrauchs werden Übersetzungsanfragen temporär auf "
|
||||||
|
"Benutzer mit einem gültigen API-Key beschränkt. Tschuldigung für die "
|
||||||
|
"Unannehmlichkeiten!"
|
||||||
|
|
||||||
#: libretranslate/templates/index.html:182
|
#: libretranslate/templates/index.html:182
|
||||||
msgid "Translation API"
|
msgid "Translation API"
|
||||||
|
|
@ -773,4 +777,3 @@ msgstr "den %(libretranslate)s-Mitwirkenden"
|
||||||
|
|
||||||
#~ msgid "Galician"
|
#~ msgid "Galician"
|
||||||
#~ msgstr "Galicisch"
|
#~ msgstr "Galicisch"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue