গিটহাব – ক্যাম্পসাইট/ক্যাম্পসাইট: ক্যাম্পসাইট মনোরেপো

গিটহাব – ক্যাম্পসাইট/ক্যাম্পসাইট: ক্যাম্পসাইট মনোরেপো

এটি একটি ওপেন সোর্স সংস্করণ ক্যাম্পসাইট অ্যাপ এই কোডবেস উপলব্ধ যেমন আছে এবং ক্যাম্পসাইট টিম সক্রিয়ভাবে রক্ষণাবেক্ষণ করে না। আমরা শুধুমাত্র পুল অনুরোধ এবং স্ব-হোস্টিং বা সমালোচনামূলক সমাধান সংক্রান্ত সমস্যা বিবেচনা করব। ক্যাম্পসাইট কীভাবে কাজ করে তা শিখতে আগ্রহীদের জন্য কোডবেসটি একটি রেফারেন্স হিসাবে সরবরাহ করা হয়েছে। আমরা অ-বাণিজ্যিক প্রকল্পে ব্যবহারের জন্য এই সংগ্রহস্থলের কাঁটা স্বাগত জানাই।

শুরু করতে, ওয়ার্কস্পেস রুট থেকে এই কমান্ডটি চালান:

আপনি স্থানীয়ভাবে মৌলিক সংস্করণ চালানোর আগে ক্যাম্পসাইটের জন্য বেশ কয়েকটি পরিষেবা সেট আপ করতে হবে।

অবতার এবং সংযুক্তি আপলোড করতে S3 প্রয়োজন। আমরা দেব এবং উৎপাদনের জন্য আলাদা বালতি সুপারিশ করি। উদাহরণস্বরূপ, আমরা ব্যবহার করি campsite-media এবং campsite-media-dev বালতি

এই প্রস্তাবিত নীতিগুলির সাথে আপনার একজন IAM ব্যবহারকারী সেটআপ করা উচিত (নীতিতে আপনার বালতি ব্যবহার করা নিশ্চিত করুন)।

API এর জন্য আপনার শংসাপত্র সেট করুন:

cd api
script/credentials development

এর অধীনে এইগুলি কনফিগার করুন aws চাবি

আমরা বিষয়বস্তু আপলোড সুপারিশ default_avatars অধীনে ডিরেক্টরি static/avatars প্রতিটি S3 বালতিতে। এখানে আরো পড়ুন.

পুশার রিয়েলটাইম আপডেট এবং ইভেন্ট পাঠাতে ব্যবহৃত হয়। আপনার অ্যাকাউন্ট তৈরি করার পরে, এর অধীনে এটি কনফিগার করুন pusher আপনার শংসাপত্রে কী।

ইমজিক্স সিডিএন পাওয়ারিং ক্যাম্পসাইট। AWS IAM-এ, আপনাকে একটি imgix ব্যবহারকারী + নীতি তৈরি করতে হবে (প্রস্তাবিত নীতি দেখুন)।

তারপর, একটি হিসাবে S3 যোগ করুন ইমজিক্স উৎস. আপনি যদি dev এবং prod S3 buckets সেটআপ করেন, তাহলে প্রতিটির জন্য আপনার আলাদা Imgix উৎসের প্রয়োজন হবে।

অবশেষে, আপনার অ্যাকাউন্ট ড্রপডাউনে Imgix-এর জন্য একটি API কী তৈরি করুন।

শংসাপত্র ফাইলগুলিতে এই সমস্ত মানগুলি পূরণ করুন:

  • imgix.url – S3 সোর্সড ইমেজ ডোমেন। মত দেখা উচিত
  • imgix.source_id – Imgix সোর্স আইডি (উৎস পৃষ্ঠার উপরে বা URL-এ)
  • imgix.api_key – আপনার তৈরি করা API কী
  • imgix_video.url – একই ইউআরএল imgix.url কিন্তু সঙ্গে .video TLD হিসাবে (যেমন https://campsite-dev.imgix.video)

দ্রষ্টব্য

এখানে থাকাকালীন আপনি সেটআপও করতে পারেন Imgix ওয়েব ফোল্ডার এবং URL দিন imgix_folder.url. এটি ডক থাম্বনেল ক্যাশে ব্যবহার করা হয়, কিন্তু স্থানীয় dev এ প্রয়োজনীয় নয়। প্রোড-এ ডক থাম্বনেইল হোস্ট করার জন্য ওয়েব ফোল্ডার প্রয়োজন।

100ms ক্যাম্পসাইটের ভিডিও কনফারেন্সিং বৈশিষ্ট্যগুলিকে ক্ষমতা দেয়৷ একটি অ্যাকাউন্ট তৈরি করার পরে, এর অধীনে এই মানগুলি সেট করুন hms শংসাপত্র কী।

দ্রষ্টব্য

ওয়েবহুক সহ ভিডিও কলগুলি শুধুমাত্র তখনই কাজ করবে যখন একটি সুরক্ষিত টানেল যেমন এনগ্রোক ব্যবহার করবেন।

আমরা কল এবং পোস্টের সারাংশ তৈরি করতে OpenAI API ব্যবহার করি। আপনার একটি API কী এবং আপনার প্রতিষ্ঠানের আইডি উভয়ই প্রয়োজন (নাম নয়, OpenAI প্ল্যাটফর্ম সেটিংসে পাওয়া যায়)। নিচে এই যোগ করুন openai শংসাপত্র কী।

ক্যাম্পসাইট বৈশিষ্ট্যগুলিকে শক্তিশালী করার জন্য আমরা আরও অনেক পরিষেবা ব্যবহার করি। অ্যাকাউন্ট তৈরি করুন এবং প্রয়োজন অনুসারে শংসাপত্র সেট আপ করুন:

  • aws_ecs – AWS ইলাস্টিক কন্টেইনার সার্ভিসে ডেটা এক্সপোর্ট চালান
  • cal_dot_com – ক্যাম্প সাইট Cal.com অ্যাপ
  • figma – এর মাধ্যমে ফ্রেম রেন্ডার করুন ফিগমা REST API
  • linear – ক্যাম্পসাইট লিনিয়ার অ্যাপ (দেখুন API ডক্স)
  • omniauth_google – Google OAuth
  • plain – গ্রাহক প্রতিক্রিয়া (সম্ভবত প্রয়োজন নেই)
  • postmark – এর মাধ্যমে ইমেইল পাঠানো পোস্টমার্ক API
  • sentry – বাগ রিপোর্ট, শুধু DSN প্রয়োজন
  • slack – ক্যাম্পসাইট স্ল্যাক অ্যাপ
  • vercel.revalidate_static_cache – ক্যাশেড ডক্স (ISR) নিরাপদে পুনঃপ্রমাণ করতে আপনার নিজস্ব কী তৈরি করুন
  • webpush_vapid – ওয়েব পুশ বিজ্ঞপ্তি (ডক্স) পাঠাতে VAPID কীগুলি প্রয়োজনীয়
  • zapier – ক্যাম্পসাইট জাপিয়ার অ্যাপ
  • tenor – জিআইএফ অনুসন্ধান (ডক্স)

উন্নয়ন ক্যাম্পসাইট চলমান

আমরা স্থানীয়ভাবে ক্যাম্পসাইট ডেভেলপ করার জন্য প্রয়োজনীয় সমস্ত পরিষেবা চালানোর জন্য ওভারমাইন্ড ব্যবহার করি। শুরু করতে, চালান script/setup tmux এবং Overmind ইনস্টল করতে। তারপর চালান:

আমাদের Procfile ওভারমাইন্ড রান করা পরিষেবাগুলিকে সংজ্ঞায়িত করে৷ ব্যবহার করুন overmind connect একটি নির্দিষ্ট পরিষেবার লগ দেখতে (যেমন overmind connect sync-server)

  1. npm প্যাকেজ ইনস্টল করুন
  1. Vercel সংযোগ করুন
  1. আপনার Vercel অ্যাকাউন্টে সাইন ইন করুন
  1. অ্যাপগুলিকে Vercel-এ লিঙ্ক করুন
npx vercel link --repo
? Set up and develop “~/<your_path_to_campsite>? (Y/n) y
? Which scope should contain your project? Campsite
? Found project “campsite/campsite”. Link to it? (Y/n) y
🔗  Linked to campsite/campsite (created .vercel)
  1. Vercel থেকে পরিবেশের ভেরিয়েবল টানুন
cd apps/web && npx vercel env pull
  1. অ্যাপটি চালান
  1. এ অ্যাপটি খুলুন — আপনাকে প্রাক-ভরা ব্যবহারকারীর শংসাপত্র সহ প্রমাণীকরণ পৃষ্ঠায় পুনঃনির্দেশিত করা হবে।

মার্কেটিং সাইট চালানো

  1. সংযোগ করতে উপরের পদক্ষেপগুলি অনুসরণ করুন apps/site রেপো campsite-site Vercel এ প্রকল্প।

  2. Vercel থেকে পরিবেশের ভেরিয়েবল টানুন

cd apps/site && npx vercel env pull
  1. সাইটটি চালান
pnpm -F @campsite/site dev
  1. এ অ্যাপটি খুলুন
pnpm -F @campsite/web storybook

নতুন প্যাকেজ যোগ করতে, আপনি সবসময় সংগ্রহস্থলের রুটে ইনস্টল করুন এবং pnpm-এ একটি ফিল্টার পতাকা পাস করুন। উদাহরণস্বরূপ, মার্কেটিং সাইটে Tailwind ইনস্টল করতে, আপনি চালাবেন:

pnpm -F @campsite/site i tailwindcss

অথবা ওয়েব অ্যাপে lodash ইনস্টল করতে, আপনি চালাবেন:

pnpm -F @campsite/web i lodash

একটি অ্যাপ বা প্যাকেজের নাম খুঁজতে, নেভিগেট করুন package.json প্রত্যেকের জন্য app/ বা package/ ডিরেক্টরি

স্থানীয়ভাবে ডেস্কটপ অ্যাপ চালানো

  1. ToDesktop বিল্ড macOS অ্যাপ ডাউনলোড করুন.
  2. ToDesktop শিরোনাম বারে অ্যাপ সুইচার খুঁজুন। আপনি যদি এখানে আমাদের org অ্যাপগুলি দেখতে না পান তবে আপনাকে একটি ডামি অ্যাপ্লিকেশন তৈরি করতে হতে পারে।
  3. “ক্যাম্পসাইট ডেভ”-এ স্যুইচ করুন এবং অ্যাপের নিচের বাম কোণে “রান” এ ক্লিক করুন।
স্ক্রিনশট দেখুন

স্ক্রীন শট 2023-01-11 এ 15 20 46@2x

আপনি স্থানীয়ভাবে API সেটআপ এবং চালাতে খুঁজছেন? API README চেকআউট করুন

চলছে script/setup উৎপন্ন করবে রেল কাস্টম শংসাপত্র ফাইল উন্নয়ন এবং উত্পাদন পরিবেশের জন্য। API ডিরেক্টরি থেকে, চালান VISUAL="code --wait" bin/rails credentials:edit --environment development উন্নয়ন শংসাপত্র সম্পাদনা করতে, বা চালান VISUAL="code --wait" bin/rails credentials:edit --environment development উৎপাদন শংসাপত্র সম্পাদনা করতে।

যখন আপনি ক্যাম্পসাইট স্থাপন করেন, config/credentials/production.yml.enc আপনার উৎপাদন সার্ভারে উপস্থিত থাকতে হবে, এবং আপনাকে অবশ্যই সেট করতে হবে RAILS_MASTER_KEY এর বিষয়বস্তুর সমান পরিবেশ পরিবর্তনশীল config/credentials/production.key. আপনি যদি একটি গিট সংগ্রহস্থল থেকে স্থাপন করেন, আপনি সরাতে পারেন config/credentials/production.yml.enc থেকে .gitignore এবং ফাইলটি কমিট করুন। অপসারণ করবেন না config/credentials/production.key থেকে .gitignoreপরিবর্তে এটি আপনার দলের সাথে সংগ্রহস্থলের বাইরে একটি নিরাপদ স্থানে শেয়ার করুন, যেমন একটি পাসওয়ার্ড ভল্টে।

ডেভেলপমেন্টে কল ব্যবহার করতে, আপনাকে চিকিত্সা করতে হবে নিরাপদ হিসাবে উত্স. একটি Chromium-ভিত্তিক ব্রাউজারে, আপনি chrome://flags/#unsafely-treat-insecure-origin-as-secure-এ এটি করতে পারেন৷

যেকোনও কল ফিচারের জন্য ওয়েবহুকের প্রয়োজন হয় (যেমন কল শুরু হলে মেসেজ থ্রেডে চ্যাট বাবল পাওয়া), আপনার এনগ্রোক ব্যবহার করা উচিত। আপনি ওয়েবহুক সক্ষম করতে পারেন 100ms ড্যাশবোর্ডের বিকাশকারী ট্যাব. ওয়েবহুক ইউআরএল সেট করা উচিত https://api-dev.campsite.com/v1/integrations/hms/eventsএবং নামের সাথে একটি ওয়েবহুক হেডার থাকা উচিত X-Passcode এবং একটি মান যে চলমান থেকে আসে Rails.application.credentials.hms.webhook_passcode একটি ডেভেলপমেন্ট রেল কনসোলে। নিশ্চিত হন যে আপনি “ডেভেলপমেন্ট” ওয়ার্কস্পেসে ওয়েবহুকগুলি কনফিগার করেছেন এবং এনগ্রোকে কাজ শেষ করার পরে সেগুলিকে অক্ষম করুন (“উৎপাদন” ওয়ার্কস্পেসে ওয়েবহুকগুলি সর্বদা সক্রিয় করা উচিত এবং কনফিগারেশন পরিবর্তন করা উচিত নয়)৷

Source link