diff --git a/MOK.crt b/MOK.crt new file mode 100644 index 000000000..c41b32f88 --- /dev/null +++ b/MOK.crt @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDEzCCAfugAwIBAgIUeSRdboyaHjkf4gS+bJst5Zw9vGQwDQYJKoZIhvcNAQEL +BQAwGDEWMBQGA1UEAwwNTXkgTlZJRElBIE1PSzAgFw0yNTA1MDcwOTU1MjNaGA8y +MTI1MDQxMzA5NTUyM1owGDEWMBQGA1UEAwwNTXkgTlZJRElBIE1PSzCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBANHjKi57HN2R+l3vPwgo5ppm42adv82l +lEsVNYkQwsMqbj19Ixr42kkysJnvU3fUAM41VN6WbJIwY6gi1AAa8MBOa67+aOXi +LvoY3LPSbg30jfDF8YTDxOjyobXHpyA5eq5MshJiKeJsEFeWS/uMkCbuLZgzi4j8 +UpJbr0uNwAPCAer32ajUGGRSaF/RIhYwoRIH666rKMDbbNnCV4EqTxMXAblBej5i +TrSxF1/n/T1KxZJn5gWcTvvFHfPpBJdiFeQd68kEBF7ia7wT8fduoJnby5LgYrSI +mrG46+cbY9HurRvBYqZWiQqQubeKgcYL57xwN2IMC/EOlbKUiNiGeH8CAwEAAaNT +MFEwHQYDVR0OBBYEFKCrW0cdxE/8/cX3Dt0EtYOyuFdYMB8GA1UdIwQYMBaAFKCr +W0cdxE/8/cX3Dt0EtYOyuFdYMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBAJzctv8tz3TqL18+8K5I9c9vodF4XnOEJHj3jam/cPMAXahcSI0Lfg08 +sibp8Wg16KeQxqWfT+z0ayyTjnK9sy/w46+y5BpVV+5+HjY25CdCI35HEshqmRp8 +2KM0+t7nTIQFUnOt/FSD16s8QAgQ1gNssjOGbgRup+F52lI6p9e507TWFTIBwA7p +dZe9SCVLnmuoBrtLBiQEDq/cH8gf3M+98yFTL9NakYBVmZyZwq28qS80YD0aPNjm +4OwbYz81kyHXZYbd/cEUFwtgUGdMVZqyMLTf7YrKGS4YwIMddbbZt3NAQkAIEcLA +nU1vFA0yAgl+BvSZIglJfOlhqFnzdcs= +-----END CERTIFICATE----- diff --git a/MOK.der b/MOK.der new file mode 100644 index 000000000..f26d6738b Binary files /dev/null and b/MOK.der differ diff --git a/MOK.key b/MOK.key new file mode 100644 index 000000000..b4499b931 --- /dev/null +++ b/MOK.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDR4youexzdkfpd +7z8IKOaaZuNmnb/NpZRLFTWJEMLDKm49fSMa+NpJMrCZ71N31ADONVTelmySMGOo +ItQAGvDATmuu/mjl4i76GNyz0m4N9I3wxfGEw8To8qG1x6cgOXquTLISYinibBBX +lkv7jJAm7i2YM4uI/FKSW69LjcADwgHq99mo1BhkUmhf0SIWMKESB+uuqyjA22zZ +wleBKk8TFwG5QXo+Yk60sRdf5/09SsWSZ+YFnE77xR3z6QSXYhXkHevJBARe4mu8 +E/H3bqCZ28uS4GK0iJqxuOvnG2PR7q0bwWKmVokKkLm3ioHGC+e8cDdiDAvxDpWy +lIjYhnh/AgMBAAECggEAGlDKJCPJfbpk0sxBcet25lsKHf6fYtBk5HkXSkUwtjmm +sszyztnuvIi/fb11EKwjIbesGXBw0m+Avz8Gp7C5CNOMSteZHWGblD3zxhQXOma0 +OUEIRCYrlS1+uwT6Xl72k84H8agfKkV0UxcEFdkM5eStEM09rII+dB1MwENYlN/P +E/kzhhQDQlmU7lyK8WlhH2dff4xHRjvoWub9KjzRDjyQSNLg5nzUsxO3YPd/Mkxv +1il1hese+pBcrh40iPutYLGFOkwM5R8++Norxm3HnDQRNlm9UfJOIMaMpx5U5hyO +izgBQ9q02mRtcydXGgBzRG5MC3XODi82Cxi0abUaaQKBgQD2RrO4XqIt/iEELJAZ +aKAPrYnQ1K/gM8krG/ANiJ3sAavHS3wNpsv2SNl9xb2BWQHUXfmFAIpnXgVBiLkE +PGiGuFhWZCNEzrP88UobCMWs44ruZN5lwxy0EbEEqtbbfdfedxlJTsEkSx02A0MD +Hut+A+gBT8xqrOpCLXeBOzd6VQKBgQDaLKdXzV8kXgEPtbdR1MdaUUErPc8UgaG8 +7xkKKJcAbg3nK7e5gJJ58mMo7Lr5s6HiowWdYuN0ugcK2xGC83C/K07C2tJhQHuR +xqvpS4P4St9igoBc2QH4yTJSqv4nLHIiDUn3A4dKG3lgYziAUxWn+NlyzL8hiAUq +Cw5m94RjgwKBgQC3ebsA+3fF3hNI4c5FL743j+khrKKO3OXdeQXhf0tv/Vq1slXs +cbx4cpOd8Qia6e3EAnMXlGyIT/KIfUyhjEOvQn2FdzsTUw+ivTyhYWqrwCXML1fE +5pRmzttbh89kXJ/LfF1ZURPxbwiHKezt0UZObqiU+ZdoTgSEYw0qOSy+tQKBgBIO +gAsURDuOTCgwsetj4NvovawGgY0A7ZHld/0PPvAaK6xmQd5odbcCCJLqhM8FvvAy +7dQIyypt+wc6+kgMPdiUjQAzfBXwcEmwV6oHRfTWvYY5psYIb9FXVYLiBAbZ9tg6 +oVSARkIr4+/GRnbYaYJtZhHKQEdWKpdAMwDym1JhAoGBAO3N1Ecr7gqcbxN31tYh +pHWitfTAOim+bJKUOtYPPokUX2PR6zO6H9p32hCphVdFWr/75Jk2gZIqX/wNsb0U +IIuW10Or8NP6eA8FrNhchNYwiOIh3TARqrCVkSuwpNbq5uN4ZeA+uOQyu4hhbORu +annRruopQB2/wd+KtZmzT9U1 +-----END PRIVATE KEY----- diff --git a/docker-compose.override.yaml b/docker-compose.override.yaml new file mode 100644 index 000000000..cc5cd95fa --- /dev/null +++ b/docker-compose.override.yaml @@ -0,0 +1,17 @@ +version: '3.8' + +services: + ollama: + deploy: + replicas: 3 # Укажите количество экземпляров для балансировки нагрузки + ports: + - "11434" # Убедитесь, что порт не конфликтует + + nginx: + image: nginx:latest + ports: + - "80:80" # Порт для доступа к Nginx + volumes: + - ./nginx.conf:/etc/nginx/nginx.conf # Ваш файл конфигурации Nginx + depends_on: + - ollama diff --git a/docker-compose.yaml b/docker-compose.yaml index 349734a93..89eb3484c 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,32 +1,34 @@ services: ollama: volumes: - - ollama:/root/.ollama + - /mnt/1TB/docker/ollama:/root/.ollama # Кастомный путь для данных container_name: ollama + ports: + - "11434:11434" # Пробрасываем порт 11434 наружу pull_policy: always tty: true restart: unless-stopped - image: ollama/ollama:${OLLAMA_DOCKER_TAG-latest} + image: ollama/ollama:latest open-webui: build: context: . + args: + OLLAMA_BASE_URL: '/ollama' dockerfile: Dockerfile - image: ghcr.io/open-webui/open-webui:${WEBUI_DOCKER_TAG-main} + image: ghcr.io/open-webui/open-webui:latest container_name: open-webui volumes: - - open-webui:/app/backend/data + - /mnt/1TB/docker/open-webui:/app/backend/data # Кастомный путь для данных depends_on: - ollama ports: - ${OPEN_WEBUI_PORT-3000}:8080 environment: - - 'OLLAMA_BASE_URL=http://ollama:11434' + - 'OLLAMA_BASE_URL=http://ollama:11434' # Внутри Docker-сети обращается к ollama по имени - 'WEBUI_SECRET_KEY=' extra_hosts: - host.docker.internal:host-gateway restart: unless-stopped -volumes: - ollama: {} - open-webui: {} +# Убраны volumes, так как используем bind mounts diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 000000000..1a015b2f8 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,22 @@ +http { + upstream ai { + server 192.168.2.43:11434; + server 192.168.2.197:11434; # Добавьте дополнительные экземпляры, если необходимо + # server ollama:11434; + } + + server { + listen 80; + + location /ollama/ { + proxy_pass http://ai/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + } +} +events { + worker_connections 1024; # Adjust this as needed +}