feat: публикация наружу через Cloudflare Quick Tunnel (cloudflared)
This commit is contained in:
+11
-1
@@ -13,4 +13,14 @@ AI_MODEL_REPO=Qwen/Qwen2.5-1.5B-Instruct-GGUF
|
|||||||
# Промпт по умолчанию для автоисправления текстов (переопределяет встроенный, если в настройках не сохранён свой)
|
# Промпт по умолчанию для автоисправления текстов (переопределяет встроенный, если в настройках не сохранён свой)
|
||||||
AI_PROMPT=Ты — редактор текстов. Исправь ТОЛЬКО грамматические, орфографические и пунктуационные ошибки в тексте. Приведи к правильному регистру буквы. НЕ меняй слова, структуру предложений, стиль или смысл текста. Верни ТОЛЬКО исправленный текст без пояснений.
|
AI_PROMPT=Ты — редактор текстов. Исправь ТОЛЬКО грамматические, орфографические и пунктуационные ошибки в тексте. Приведи к правильному регистру буквы. НЕ меняй слова, структуру предложений, стиль или смысл текста. Верни ТОЛЬКО исправленный текст без пояснений.
|
||||||
# Таймаут запроса к AI (мс), по умолчанию 120000 (2 минуты)
|
# Таймаут запроса к AI (мс), по умолчанию 120000 (2 минуты)
|
||||||
AI_REQUEST_TIMEOUT_MS=120000
|
AI_REQUEST_TIMEOUT_MS=120000
|
||||||
|
|
||||||
|
# === Cloudflare Tunnel (контейнер cloudflared) ===
|
||||||
|
# По умолчанию — Quick Tunnel на trycloudflare.com: случайный публичный URL,
|
||||||
|
# адрес печатается в логах: docker compose logs -f cloudflared.
|
||||||
|
# Чтобы привязать свой домен, замените command сервиса cloudflared
|
||||||
|
# в docker-compose.yml на: command: ["tunnel", "run", "--token", "${CLOUDFLARE_TUNNEL_TOKEN}"]
|
||||||
|
# (токен вида "eyJ..." создаётся в Cloudflare Zero Trust -> Networks -> Tunnels).
|
||||||
|
CLOUDFLARE_TUNNEL_TOKEN=
|
||||||
|
# Внутренний адрес приложения, на который указывает Quick Tunnel.
|
||||||
|
CLOUDFLARE_TUNNEL_URL=http://app:3003
|
||||||
@@ -172,6 +172,18 @@ docker exec whatido-tailscale-1 tailscale funnel status
|
|||||||
|
|
||||||
Исторически проект публиковался через reverse-proxy Caddy + Let's Encrypt (файлы `Caddyfile.example`, закомментированный сервис в старых версиях compose). Если нужно классическое публичное HTTPS на собственном домене с проброшенными портами 80/443 — этот вариант остаётся возможным: раскомментируйте/восстановите сервис `caddy`, укажите домен в `Caddyfile` и уберите сетевые блокировки. По умолчанию сейчас рекомендуется Tailscale-схема выше.
|
Исторически проект публиковался через reverse-proxy Caddy + Let's Encrypt (файлы `Caddyfile.example`, закомментированный сервис в старых версиях compose). Если нужно классическое публичное HTTPS на собственном домене с проброшенными портами 80/443 — этот вариант остаётся возможным: раскомментируйте/восстановите сервис `caddy`, укажите домен в `Caddyfile` и уберите сетевые блокировки. По умолчанию сейчас рекомендуется Tailscale-схема выше.
|
||||||
|
|
||||||
|
## Публикация наружу через Cloudflare (Quick Tunnel)
|
||||||
|
|
||||||
|
Помимо Tailscale, стек умеет публиковать приложение через контейнер `cloudflared` (сервис в `docker-compose.yml`). **Quick Tunnel** даёт случайный публичный адрес `*.trycloudflare.com` через Cloudflare — без своего домена, банковской карты и проброса портов (подойдёт, если Zero Trust требует привязать карту).
|
||||||
|
|
||||||
|
Узнать текущий адрес для доступа:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose logs cloudflared | grep trycloud
|
||||||
|
```
|
||||||
|
|
||||||
|
Адрес меняется при каждом перезапуске контейнера `cloudflared`. Для постоянного адреса используйте именованный туннель (замените `command` сервиса `cloudflared` в `docker-compose.yml` на `["tunnel", "run", "--token", "${CLOUDFLARE_TUNNEL_TOKEN}"]`, токен — из Cloudflare Zero Trust **Networks → Tunnels**) или схему через Tailscale выше.
|
||||||
|
|
||||||
## Структура данных
|
## Структура данных
|
||||||
|
|
||||||
- `groups` — группы, расписание (`day_of_week`, `time_start`, `time_end`)
|
- `groups` — группы, расписание (`day_of_week`, `time_start`, `time_end`)
|
||||||
|
|||||||
@@ -65,6 +65,24 @@ services:
|
|||||||
# depends_on:
|
# depends_on:
|
||||||
# - app
|
# - app
|
||||||
|
|
||||||
|
# Публикация наружу через Cloudflare Tunnel (cloudflared), Quick Tunnel:
|
||||||
|
# случайный публичный URL *.trycloudflare.com, который печатается в логах:
|
||||||
|
# docker compose logs -f cloudflared
|
||||||
|
# ВАЖНО: официальный образ cloudflare/cloudflared НЕ содержит /bin/sh,
|
||||||
|
# поэтому логика передаётся аргументами в command (entrypoint образа = cloudflared),
|
||||||
|
# а не скриптом.
|
||||||
|
# Для именованного туннеля на свой домен замените command ниже на:
|
||||||
|
# command: ["tunnel", "run", "--token", "${CLOUDFLARE_TUNNEL_TOKEN}"]
|
||||||
|
# (токен получается в Cloudflare Zero Trust -> Networks -> Tunnels).
|
||||||
|
cloudflared:
|
||||||
|
image: cloudflare/cloudflared:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
TZ: Europe/Moscow
|
||||||
|
command: ["tunnel", "--url", "${CLOUDFLARE_TUNNEL_URL:-http://app:3003}"]
|
||||||
|
depends_on:
|
||||||
|
- app
|
||||||
|
|
||||||
|
|
||||||
text-corrector:
|
text-corrector:
|
||||||
image: ghcr.io/ggml-org/llama.cpp:server
|
image: ghcr.io/ggml-org/llama.cpp:server
|
||||||
|
|||||||
Reference in New Issue
Block a user