مواد پر جائیں۔

Repovio تعینات کیا جا رہا ہے۔

Repovio کے لیے پیداوار کی تعیناتی، TLS پراکسی، بیک اپ، بحال، اپ گریڈ اور رول بیک رہنمائی۔

محفوظ شدہ ماخذ سنیپ شاٹ۔ پروڈکٹ لیبلز کو معمول کے مطابق Repovio کر دیا گیا ہے۔ اس تاریخی ریلیز کے لیے، اس کی ٹیگ شدہ تعیناتی فائلوں سے کنفیگریشن شناخت کنندگان اور کنٹینر حوالہ جات کو بغیر تبدیلی کے استعمال کریں۔

Repovio کا کمپوز اسٹیک PostgreSQL شروع ہوتا ہے، ایک بار Prisma منتقلی کا اطلاق کرتا ہے، اور پھر API اور ویب ایپلیکیشنز شروع کرتا ہے۔ یہ TLS کو ختم نہیں کرتا ہے۔ ویب اور API سروسز کو ایک ریورس پراکسی کے پیچھے رکھیں جو عوامی میزبان نام اور سرٹیفکیٹس کا مالک ہو۔

شرائط

  • ڈوکر کمپوز v2 کے ساتھ ڈوکر انجن۔
  • عوامی میزبان نام کے لیے ایک DNS ریکارڈ۔
  • ایک ریورس پراکسی جو TLS سرٹیفکیٹ حاصل کرتی ہے اور اس کی تجدید کرتی ہے۔
  • ایک نجی سرور ڈائرکٹری جو صرف تعیناتی منتظمین کے ذریعہ پڑھنے کے قابل ہے۔

کمپوز اسٹیک PostgreSQL ڈیٹا کو برقرار رکھتا ہے، بشمول نارملائزڈ صارف پروفائل تصویریں، اس کے نامزد کردہ PostgreSQL والیوم میں ٹیگ شدہ کمپوز فائل میں کنفیگر کی گئی ہے۔ اس والیوم کو حذف نہ کریں جب تک کہ آپ جان بوجھ کر تمام Repovio ڈیٹا کو ہٹانا نہیں چاہتے ہیں۔

پہلی تعیناتی۔

مرحلہ 1: جاری کردہ Repovio ورژن دیکھیں اور نجی ماحول کی فائل بنائیں:

cp .env.example .env
chmod 600 .env

مرحلہ 2: .env میں ہر پلیس ہولڈر کو تبدیل کریں، خاص طور پر POSTGRES_PASSWORD، دونوں ڈیٹا بیس URLs، AUTH_JWT_SECRET، اور

TOKEN_ENCRYPTION_KEY اس کے ساتھ خفیہ کاری کی کلید بنائیں:

openssl rand -base64 32

مرحلہ 3: بیرونی طور پر دکھائی دینے والے یو آر ایل سیٹ کریں۔ https://repovio.example.com پر تعیناتی کے لیے، استعمال کریں:

PUBLIC_URL=https://repovio.example.com
OIDC_CALLBACK_URL=https://repovio.example.com/api/v1/auth/oidc/callback
CORS_ORIGIN=https://repovio.example.com
NUXT_PUBLIC_API_BASE_URL=https://repovio.example.com/api/v1
OAUTH_CALLBACK_URL=https://repovio.example.com/api/v1/provider-accounts/oauth/callback

مرحلہ 4: جب ایک ہی میزبان پر ریورس پراکسی چلتی ہے تو کنٹینر پورٹس کو لوپ بیک پر باندھیں:

ریلیز کے .env.example میں API اور ویب پورٹ متغیرات کا استعمال کریں، بالترتیب 127.0.0.1:3001 اور 127.0.0.1:3000 کی قدروں کے ساتھ۔ تاریخی متغیر نام موجودہ Repovio ریلیز سے مختلف ہیں۔

بصورت دیگر، میزبان فائر وال کے ساتھ بندرگاہوں 3000 اور 3001 تک رسائی کو محدود کریں۔ PostgreSQL کنٹینر کو کبھی بھی بے نقاب نہ کریں۔

مرحلہ 5: .env میں ٹیگ کردہ .env.example سے ریلیز سلیکشن متغیر کو بالکل جاری کردہ تصویری جوڑے پر سیٹ کریں، پھر اسٹیک شروع کریں:

docker compose pull
docker compose up --detach --wait

اس قدر کو .env میں رکھیں تاکہ ہر بعد میں Compose کمانڈ وہی API اور ویب ورژن استعمال کرے۔

مرحلہ 6: مقامی طور پر API ہیلتھ اینڈ پوائنٹ کی تصدیق کریں:

curl --fail http://127.0.0.1:3001/api/health

مرحلہ 7: عوامی Repovio URL کھولیں اور پہلا بنانے کے لیے ایک بار پہلا رن سیٹ اپ مکمل کریں

سسٹم ایڈمنسٹریٹر

ریورس پراکسی اور TLS

پورٹ 3000 پر عوامی ویب کی اصل اور API اور Socket.IO کو پورٹ 3001 تک پراکسی کریں۔ مثال کے طور پر، ایک Caddy سائٹ بلاک استعمال کر سکتا ہے:

repovio.example.com {
  reverse_proxy /api/* 127.0.0.1:3001
  reverse_proxy /socket.io/* 127.0.0.1:3001
  reverse_proxy /mcp 127.0.0.1:3001
  reverse_proxy 127.0.0.1:3000
}

پراکسی کو HTTP کو HTTPS پر ری ڈائریکٹ کرنا، اپنی مقامی پالیسی کے مطابق اپ اسٹریم کنکشن کی توثیق کرنا، اور عوامی میزبان نام کو محفوظ کرنا چاہیے۔ OAuth فراہم کنندگان کو OAUTH_CALLBACK_URL میں سیٹ کردہ اسی HTTPS کال بیک URL کے ساتھ ترتیب دیں۔

اپ گریڈ کرنا

اس تاریخی ریلیز کے ساتھ بھیجے گئے عین مطابق ترتیب اور تصویری حوالہ جات کا استعمال کریں۔ موجودہ برانڈنگ اپ گریڈ کی ہدایات صرف اس وقت لاگو ہوتی ہیں جب ایک نئے Repovio ریلیز میں منتقل ہوتے ہیں۔ نام تبدیل شدہ کنفیگریشن شناخت کنندگان کو کبھی بھی پرانی کمپوز فائل میں کاپی نہ کریں۔

مرحلہ 1: تصاویر کو تبدیل کرنے سے پہلے ڈیٹا بیس بیک اپ بنائیں اور اس کی تصدیق کریں۔

مرحلہ 2: ٹیگ کردہ .env.example سے ریلیز کے انتخاب کے متغیر کو .env میں درست ریلیز ورژن پر سیٹ کریں۔

مرحلہ 3: ریلیز کو کھینچ کر لاگو کریں:

docker compose pull
docker compose up --detach --wait

migrate سروس API شروع ہونے سے پہلے زیر التواء Prisma منتقلی کا اطلاق کرتی ہے۔ ہر اپ ڈیٹ کے بعد اس کا معائنہ کریں:

docker compose logs migrate

مرحلہ 4: اپ ڈیٹ کو مکمل کرنے پر غور کرنے سے پہلے ہیلتھ اینڈ پوائنٹ اور پراکسی پیش کردہ ڈیش بورڈ کی تصدیق کریں۔

ڈیٹا بیس کا بیک اپ

تعیناتی ڈائرکٹری سے بیک اپ چلائیں۔ یہ اسناد پرنٹ کیے یا کمانڈ لائن میں ڈالے بغیر میزبان کو PostgreSQL کسٹم فارمیٹ ڈمپ لکھتا ہے:

mkdir -p backups
backup_file="backups/repovio-$(date +%F-%H%M%S).dump"
docker compose exec -T postgres sh -c 'pg_dump -U "$POSTGRES_USER" -Fc "$POSTGRES_DB"' \
  > "$backup_file"
pg_restore --list "$backup_file"

انکرپٹ شدہ کاپیاں آف ہوسٹ اسٹور کریں اور وقتاً فوقتاً ایک علیحدہ سسٹم پر بحال ہونے کی جانچ کریں۔

ڈیٹا بیس کی بحالی

بحال کرنا موجودہ ڈیٹا بیس اشیاء کی جگہ لے لیتا ہے۔ پہلے ایک نیا بیک اپ لیں اور ڈاؤن ٹائم شیڈول کریں۔

docker compose stop api web
docker compose exec -T postgres sh -c 'pg_restore -U "$POSTGRES_USER" --clean --if-exists --no-owner -d "$POSTGRES_DB"' \
  < backups/repovio-YYYY-MM-DD-HHMMSS.dump
docker compose up --detach --wait

اس کے بعد، docker compose logs migrate اور API ہیلتھ اینڈ پوائنٹ کو چیک کریں۔ سکیما کی تبدیلیوں میں واپس آنے پر ہم آہنگ Repovio ورژن کے ذریعے بنائے گئے ڈمپ کو بحال کریں۔

رول بیک

مرحلہ 1: ناکام اپ گریڈ ہونے سے پہلے بنایا گیا بیک اپ رکھیں۔

مرحلہ 2: .env میں ٹیگ کردہ .env.example سے ریلیز کے انتخاب کے متغیر کو آخری معروف امیج ورژن پر سیٹ کریں۔

مرحلہ 3: docker compose pull اور docker compose up --detach --wait چلائیں۔

مرحلہ 4: اگر نئی ریلیز نے ڈیٹا بیس کو غیر موازن طریقے سے منتقل کیا ہے، تو API اور ویب کو روکیں، مطابقت پذیر بیک اپ کو بحال کریں، اور پھر

پچھلے تصویری ورژن کو دوبارہ شروع کریں۔

کبھی بھی docker compose down --volumes کو اپ ڈیٹ یا رول بیک کمانڈ کے طور پر استعمال نہ کریں: یہ PostgreSQL والیوم کو ہٹا دیتا ہے۔