Add Docker support and update requirements

This commit is contained in:
InviteMe Developer
2026-08-31 13:08:53 +03:00
parent 76a42f14d0
commit 17226dc925
5 changed files with 76 additions and 2 deletions
+17
View File
@@ -0,0 +1,17 @@
.git
.gitignore
venv/
.env
.env.*
instance/
__pycache__/
*.pyc
*.pyo
*.pyd
.Python
*.db
*.sqlite3
app/static/uploads/*
!app/static/uploads/.gitkeep
111.txt
inviteme_logo.png
+29
View File
@@ -0,0 +1,29 @@
FROM python:3.12-slim
WORKDIR /app
# Системные зависимости: шрифты и библиотеки для Pillow/reportlab
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
libjpeg-dev \
zlib1g-dev \
libfreetype6-dev \
libpng-dev \
libffi-dev \
libxml2-dev \
libxslt1-dev \
fonts-dejavu-core \
fonts-liberation \
&& rm -rf /var/lib/apt/lists/*
# Зависимости Python
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Копируем код приложения
COPY . .
# Порт, который слушает Waitress
EXPOSE 8888
CMD ["python", "run_waitress.py"]
+23
View File
@@ -0,0 +1,23 @@
version: "3.8"
services:
inviteme:
build: .
container_name: inviteme
restart: unless-stopped
ports:
- "8888:8888"
environment:
# Замени на сильный случайный ключ
- SECRET_KEY=change-me-in-production
- BASE_URL=https://ai.mycloud24.ru
- TIMEZONE=Europe/Moscow
# Первоначальные учётные записи (только при первом запуске)
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=change-admin-password
- STAFF_USERNAME=staff
- STAFF_PASSWORD=change-staff-password
volumes:
# База SQLite и загруженные файлы хранятся вне контейнера
- ./instance:/app/instance
- ./app/static/uploads:/app/app/static/uploads
+2
View File
@@ -13,3 +13,5 @@ Jinja2==3.1.2
svglib==2.2.0
reportlab==5.0.1
rlPyCairo==0.4.0
exchangelib==5.6.0
pywin32==312; platform_system=="Windows"
+5 -2
View File
@@ -1,3 +1,5 @@
import os
from waitress import serve
from app import create_app
@@ -5,5 +7,6 @@ app = create_app()
if __name__ == "__main__":
# host=0.0.0.0 — слушаем все интерфейсы
# port=8888 — порт, на который Nginx проксирует запросы
serve(app, host="0.0.0.0", port=8888, threads=4)
# port — из переменной окружения или 8888 по умолчанию
port = int(os.environ.get("PORT", "8888"))
serve(app, host="0.0.0.0", port=port, threads=4)