diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..a538455
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,35 @@
+FROM ubuntu:22.04
+
+WORKDIR /app
+COPY . /app
+
+RUN useradd -ms /bin/bash -u 1000 -U -d /app inpx-web
+
+RUN set -e \
+ && apt update \
+ && apt -y upgrade \
+ && apt install -y --no-install-recommends curl wget zip ca-certificates \
+ && curl -sL https://deb.nodesource.com/setup_20.x | bash \
+ && apt install -y --no-install-recommends nodejs \
+ && apt clean
+
+RUN set -e \
+ && npm install \
+ && npm run build:client \
+ && node build/prepkg.js linux \
+ && mkdir -p /app/data \
+ && chown -R inpx-web:inpx-web /app \
+ && mkdir -p /library \
+ && rm ./server/config/application_env \
+ && echo "chown -R inpx-web:inpx-web /app"
+
+RUN echo "#!/bin/bash" >> /entrypoint.sh \
+ && echo "set -e" >> /entrypoint.sh \
+ && echo "su inpx-web -c \"node server --lib-dir=/library --app-dir=/app/data --inpx=/app/data/index.inpx --recreate\"" >> /entrypoint.sh \
+ && chmod +x /entrypoint.sh
+
+EXPOSE 12380
+
+HEALTHCHECK CMD curl --fail http://localhost:12380 || exit 1
+
+ENTRYPOINT [ "/entrypoint.sh" ]
diff --git a/README.md b/README.md
index d0957c7..c1da5d3 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,7 @@ OPDS-сервер доступен по адресу [http://127.0.0.1:12380/opd
[Отблагодарить автора проекта](https://donatty.com/liberama)
+##
##
* [Возможности программы](#capabilities)
* [Использование](#usage)
@@ -32,6 +33,7 @@ OPDS-сервер доступен по адресу [http://127.0.0.1:12380/opd
* [Сборка релизов](#build)
* [Запуск без сборки релиза](#native_run)
* [Разработка](#development)
+* [Запуск в docker](#docker)
@@ -369,4 +371,16 @@ node server --app-dir=.inpx-web
npm run dev
```
+
+
+### Запуск в docker
+
+```sh
+docker build -t inpx-web .
+docker run -v /path/to/library:/library -v /path/to/library/flibusta.inpx:/app/data/index.inpx -p 12380:12380 inpx-web
+```
+
+Внутри контейнера создаётся пользователь inpx-web и id=1000 и сервер запускается под этим пользователем.
+Важно: запускать контейнер и монтировать внутрь папку с архивами в `/library` и файл inpx в `/app/data/index.inpx`.
+
Связаться с автором проекта: [bookpauk@gmail.com](mailto:bookpauk@gmail.com)
\ No newline at end of file