Repovio স্থাপন করা হচ্ছে
আর্কাইভ সোর্স স্ন্যাপশট। পণ্য লেবেল Repovio স্বাভাবিক করা হয়েছে. এই ঐতিহাসিক রিলিজের জন্য, এর ট্যাগ করা ডিপ্লয়মেন্ট ফাইল থেকে কনফিগারেশন শনাক্তকারী এবং কনটেইনার রেফারেন্সগুলি অপরিবর্তিত ব্যবহার করুন।
Repovio এর কম্পোজ স্ট্যাক PostgreSQL শুরু হয়, একবার প্রিজমা মাইগ্রেশন প্রয়োগ করে এবং তারপর API এবং ওয়েব অ্যাপ্লিকেশনগুলি শুরু করে। এটি TLS বন্ধ করে না। ওয়েব এবং API পরিষেবাগুলিকে একটি বিপরীত প্রক্সির পিছনে রাখুন যা সর্বজনীন হোস্টনাম এবং শংসাপত্রগুলির মালিক৷
পূর্বশর্ত
- ডকার কম্পোজ v2 সহ ডকার ইঞ্জিন।
- সর্বজনীন হোস্টনামের জন্য একটি DNS রেকর্ড।
- একটি বিপরীত প্রক্সি যা TLS শংসাপত্রগুলি প্রাপ্ত এবং পুনর্নবীকরণ করে৷
- একটি ব্যক্তিগত সার্ভার ডিরেক্টরি শুধুমাত্র স্থাপনার প্রশাসক দ্বারা পাঠযোগ্য।
কম্পোজ স্ট্যাকটি PostgreSQL ডেটা টিকে থাকে, যার মধ্যে সাধারণ ব্যবহারকারীর প্রোফাইল ছবি সহ, এর নামযুক্ত PostgreSQL ভলিউম ট্যাগ করা কম্পোজ ফাইলে কনফিগার করা হয়। আপনি ইচ্ছাকৃতভাবে সমস্ত Repovio ডেটা সরাতে না চাইলে এই ভলিউমটি মুছবেন না৷
প্রথম স্থাপনা
ধাপ 1: একটি প্রকাশিত Repovio সংস্করণ দেখুন এবং ব্যক্তিগত পরিবেশ ফাইল তৈরি করুন:
cp .env.example .env
chmod 600 .env
ধাপ 2: .env-এ প্রতিটি স্থানধারক প্রতিস্থাপন করুন, বিশেষ করে POSTGRES_PASSWORD, উভয় ডাটাবেস URL, AUTH_JWT_SECRET, এবং
TOKEN_ENCRYPTION_KEY. এর সাথে এনক্রিপশন কী তৈরি করুন:
openssl rand -base64 32
ধাপ 3: বাহ্যিকভাবে দৃশ্যমান URL সেট করুন। 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: যখন বিপরীত প্রক্সি একই হোস্টে চলে তখন কন্টেইনার পোর্টগুলিকে লুপব্যাকে আবদ্ধ করুন:
যথাক্রমে 127.0.0.1:3001 এবং 127.0.0.1:3000 মান সহ রিলিজের .env.example-এ API এবং ওয়েব পোর্ট ভেরিয়েবল ব্যবহার
করুন। ঐতিহাসিক পরিবর্তনশীল নাম বর্তমান Repovio রিলিজ থেকে পৃথক।
অন্যথায়, হোস্ট ফায়ারওয়াল সহ 3000 এবং 3001 পোর্টগুলিতে অ্যাক্সেস সীমাবদ্ধ করুন। PostgreSQL ধারকটি কখনই প্রকাশ করবেন না।
ধাপ 5: .env ট্যাগ করা .env.example থেকে রিলিজ-নির্বাচন ভেরিয়েবলটিকে একটি সঠিক রিলিজ ইমেজ পেয়ারে সেট করুন, তারপর স্ট্যাকটি শুরু করুন:
docker compose pull
docker compose up --detach --wait
সেই মানটিকে .env-এ রাখুন যাতে প্রত্যেক পরবর্তী কম্পোজ কমান্ড একই API এবং ওয়েব সংস্করণ ব্যবহার করে।
ধাপ 6: স্থানীয়ভাবে API হেলথ এন্ডপয়েন্ট নিশ্চিত করুন:
curl --fail http://127.0.0.1:3001/api/health
ধাপ 7: সর্বজনীন Repovio URL খুলুন এবং প্রথম তৈরি করতে এককালীন প্রথম-রান সেটআপ সম্পূর্ণ করুন
সিস্টেম প্রশাসক।
বিপরীত প্রক্সি এবং TLS
পোর্ট 3000-এ পাবলিক ওয়েব অরিজিন, এবং পোর্ট 3001-এ API এবং Socket.IO পাথগুলি প্রক্সি করুন৷ উদাহরণস্বরূপ, একটি 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_CALLBACK_URL-এ সেট করা একই HTTPS কলব্যাক URL সহ OAuth প্রদানকারীদের কনফিগার
করুন।
আপগ্রেড হচ্ছে
এই ঐতিহাসিক রিলিজের সাথে পাঠানো সঠিক কনফিগারেশন এবং ইমেজ রেফারেন্স ব্যবহার করুন। বর্তমান ব্র্যান্ডিং-আপগ্রেড নির্দেশাবলী শুধুমাত্র নতুন Repovio রিলিজে যাওয়ার সময় প্রযোজ্য; নতুন নামকরণ করা কনফিগারেশন শনাক্তকারীকে একটি পুরানো রচনা ফাইলে কপি করবেন না।
ধাপ 1: ছবি পরিবর্তন করার আগে একটি ডাটাবেস ব্যাকআপ তৈরি করুন এবং যাচাই করুন।
ধাপ 2: ট্যাগ করা .env.example থেকে .env-এ সঠিক রিলিজ সংস্করণে রিলিজ-নির্বাচন ভেরিয়েবল সেট করুন।
ধাপ 3: রিলিজ টানুন এবং প্রয়োগ করুন:
docker compose pull
docker compose up --detach --wait
migrate পরিষেবাটি API শুরু হওয়ার আগে মুলতুবি প্রিজমা মাইগ্রেশন প্রযোজ্য। প্রতিটি আপডেটের পরে এটি পরিদর্শন করুন:
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 থেকে রিলিজ-নির্বাচন ভেরিয়েবলটিকে সর্বশেষ পরিচিত-ভাল চিত্র সংস্করণে সেট করুন।
ধাপ ৩: docker compose pull এবং docker compose up --detach --wait চালান।
ধাপ 4: যদি নতুন রিলিজটি ডাটাবেসকে অসঙ্গতভাবে স্থানান্তরিত করে, তাহলে API এবং ওয়েব বন্ধ করুন, সামঞ্জস্যপূর্ণ ব্যাকআপ পুনরুদ্ধার করুন এবং তারপরে
পূর্ববর্তী চিত্র সংস্করণ আবার শুরু করুন।
আপডেট বা রোলব্যাক কমান্ড হিসাবে docker compose down --volumes ব্যবহার করবেন না: এটি নামযুক্ত PostgreSQL ভলিউম সরিয়ে
দেয়।