v71: переезд на lang.kube5s.ru (германская ВМ, nginx, без кубера)
This commit is contained in:
+3
-15
@@ -9,20 +9,8 @@ KEY=$(cat ~/lang/token.txt)
|
|||||||
cp ~/lang/dist/index.html /tmp/lyngvo_index.html
|
cp ~/lang/dist/index.html /tmp/lyngvo_index.html
|
||||||
sed -i "s|const GROQ_API_KEY = '';|const GROQ_API_KEY = '${KEY}';|" /tmp/lyngvo_index.html
|
sed -i "s|const GROQ_API_KEY = '';|const GROQ_API_KEY = '${KEY}';|" /tmp/lyngvo_index.html
|
||||||
|
|
||||||
# Синхронизация всей папки lang на ВМ
|
# Деплой на германскую ВМ (nginx + Groq прокси)
|
||||||
rsync -az -e "ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10" ~/lang/ naeel@5.172.178.213:~/terra/lang/
|
scp -i ~/.ssh/vultr_openssh -o StrictHostKeyChecking=no /tmp/lyngvo_index.html root@95.179.252.111:/var/www/lyngvo/index.html
|
||||||
|
|
||||||
# Деплой на ВМ (index.html с ключом — через временный файл)
|
|
||||||
scp -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 /tmp/lyngvo_index.html naeel@5.172.178.213:~/terra/lang/index.html
|
|
||||||
ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 '
|
|
||||||
cd ~/terra/lang && \
|
|
||||||
kubectl create configmap lyngvo-html --from-file=index.html -n default --dry-run=client -o yaml | kubectl apply -f - && \
|
|
||||||
kubectl create configmap lyngvo-nginx --from-file=default.conf=nginx.conf -n default --dry-run=client -o yaml | kubectl apply -f - && \
|
|
||||||
kubectl apply -f k8s/deployment.yaml && \
|
|
||||||
kubectl apply -f k8s/ingress.yaml && \
|
|
||||||
kubectl rollout restart deploy/lyngvo -n default && \
|
|
||||||
kubectl rollout status deploy/lyngvo -n default --timeout=60s
|
|
||||||
'
|
|
||||||
|
|
||||||
rm -f /tmp/lyngvo_index.html
|
rm -f /tmp/lyngvo_index.html
|
||||||
echo "\n=== Деплой завершён. Проверяй capire.kube5s.ru ==="
|
echo "\n=== Деплой завершён. Проверяй https://lang.kube5s.ru ==="
|
||||||
|
|||||||
Vendored
+3
-3
@@ -264,7 +264,7 @@ async function transcribe(blob) {
|
|||||||
console.log('[HTTP] blob ' + (blob.size/1024).toFixed(1) + 'KB → multipart POST');
|
console.log('[HTTP] blob ' + (blob.size/1024).toFixed(1) + 'KB → multipart POST');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const r = await fetch('https://proxy.kube5s.ru/openai/v1/audio/transcriptions', {
|
const r = await fetch('https://lang.kube5s.ru/openai/v1/audio/transcriptions', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Authorization': 'Bearer ' + GROQ_API_KEY },
|
headers: { 'Authorization': 'Bearer ' + GROQ_API_KEY },
|
||||||
body: form
|
body: form
|
||||||
@@ -281,7 +281,7 @@ async function transcribe(blob) {
|
|||||||
async function translateToRussian(text) {
|
async function translateToRussian(text) {
|
||||||
if (!GROQ_API_KEY) return;
|
if (!GROQ_API_KEY) return;
|
||||||
try {
|
try {
|
||||||
const res = await fetch('https://proxy.kube5s.ru/openai/v1/chat/completions', {
|
const res = await fetch('https://lang.kube5s.ru/openai/v1/chat/completions', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Authorization': `Bearer ${GROQ_API_KEY}`, 'Content-Type': 'application/json' },
|
headers: { 'Authorization': `Bearer ${GROQ_API_KEY}`, 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
@@ -693,7 +693,7 @@ async function doCompare(blob, originalText, duration) {
|
|||||||
<script>
|
<script>
|
||||||
// ---------- Глобальные переменные и инициализация ----------
|
// ---------- Глобальные переменные и инициализация ----------
|
||||||
const GROQ_API_KEY = '';
|
const GROQ_API_KEY = '';
|
||||||
const VERSION = 'v70';
|
const VERSION = 'v71';
|
||||||
|
|
||||||
let mediaRecorder, audioChunks = [], userAudioBlob = null, ttsText = '';
|
let mediaRecorder, audioChunks = [], userAudioBlob = null, ttsText = '';
|
||||||
let isRecording = false, isAnalyzing = false, micAnalyser = null, micAnimId = null;
|
let isRecording = false, isAnalyzing = false, micAnalyser = null, micAnimId = null;
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
// ---------- Глобальные переменные и инициализация ----------
|
// ---------- Глобальные переменные и инициализация ----------
|
||||||
const GROQ_API_KEY = '';
|
const GROQ_API_KEY = '';
|
||||||
const VERSION = 'v70';
|
const VERSION = 'v71';
|
||||||
|
|
||||||
let mediaRecorder, audioChunks = [], userAudioBlob = null, ttsText = '';
|
let mediaRecorder, audioChunks = [], userAudioBlob = null, ttsText = '';
|
||||||
let isRecording = false, isAnalyzing = false, micAnalyser = null, micAnimId = null;
|
let isRecording = false, isAnalyzing = false, micAnalyser = null, micAnimId = null;
|
||||||
|
|||||||
+2
-2
@@ -12,7 +12,7 @@ async function transcribe(blob) {
|
|||||||
console.log('[HTTP] blob ' + (blob.size/1024).toFixed(1) + 'KB → multipart POST');
|
console.log('[HTTP] blob ' + (blob.size/1024).toFixed(1) + 'KB → multipart POST');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const r = await fetch('https://proxy.kube5s.ru/openai/v1/audio/transcriptions', {
|
const r = await fetch('https://lang.kube5s.ru/openai/v1/audio/transcriptions', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Authorization': 'Bearer ' + GROQ_API_KEY },
|
headers: { 'Authorization': 'Bearer ' + GROQ_API_KEY },
|
||||||
body: form
|
body: form
|
||||||
@@ -29,7 +29,7 @@ async function transcribe(blob) {
|
|||||||
async function translateToRussian(text) {
|
async function translateToRussian(text) {
|
||||||
if (!GROQ_API_KEY) return;
|
if (!GROQ_API_KEY) return;
|
||||||
try {
|
try {
|
||||||
const res = await fetch('https://proxy.kube5s.ru/openai/v1/chat/completions', {
|
const res = await fetch('https://lang.kube5s.ru/openai/v1/chat/completions', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Authorization': `Bearer ${GROQ_API_KEY}`, 'Content-Type': 'application/json' },
|
headers: { 'Authorization': `Bearer ${GROQ_API_KEY}`, 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
|
|||||||
Reference in New Issue
Block a user