প্রকল্প সম্পর্কে
Etherpad একটি রিয়েল-টাইম সহযোগিতামূলক ডকুমেন্ট এডিটর, যা এমন নথির জন্য তৈরি যেখানে লেখকত্ব এবং ইতিহাস গুরুত্বপূর্ণ। এটি ২০০৯ সাল থেকে একটি ছোট স্বেচ্ছাসেবক দল দ্বারা রক্ষণাবেক্ষণ করা হচ্ছে এবং Apache License v2-এর অধীনে প্রকাশিত।
README-তে বর্ণিত মূল ক্ষমতাগুলি:
- রিয়েল-টাইম সহযোগিতামূলক সম্পাদনা, যেখানে প্রতিটি কিস্ট্রোক তার লেখকের জন্য চিহ্নিত হয় এবং লেখকের রং ইনলাইনে দেখানো হয়।
- সম্পূর্ণ সংশোধন ইতিহাস সংরক্ষিত থাকে, সাথে একটি টাইমস্লাইডার থাকে যা দিয়ে নথির ইতিহাস অক্ষর ধরে ধরে স্ক্রাব করা যায়।
- অন্তর্নির্মিত সম্পূর্ণ ডেটা এক্সপোর্ট, তাই নথির ইতিহাস অপারেটরের কাছে অ্যাক্সেসযোগ্য থাকে।
- স্ব-হোস্টেড অপারেশন: প্রকল্পটি জানায় যে কোনো টেলিমেট্রি বা আপসেল নেই, এবং AI কার্যকারিতা অপারেটরের পছন্দের মডেলের দিকে নির্দেশ করা প্লাগইনের মাধ্যমে অপ্ট-ইন করা হয়। PRIVACY.md নথিতে Etherpad-এর নিজস্ব কোডের দুটি অপ্ট-আউট নেটওয়ার্ক কল বর্ণনা করা আছে।
- স্কেলেবিলিটি দাবি: প্রকল্পটি একটি স্কেল টেস্ট পৃষ্ঠার লিংক দেয় যা প্রতি প্যাডে হাজার হাজার সমকালীন এডিটর সমর্থন নির্দেশ করে।
- আন্তর্জাতিকীকরণ: মূলত TranslateWiki-এর মাধ্যমে ১০৫টি ভাষায় অনূদিত।
- এক্সটেনসিবিলিটি: একটি প্লাগইন ফ্রেমওয়ার্ক, যেখানে শত শত প্লাগইন একটি প্লাগইন সাইটের মাধ্যমে পাওয়া যায়, অ্যাডমিন ওয়েব ইন্টারফেস বা কমান্ড লাইন থেকে ইনস্টল করা যায়।
- এমবেডযোগ্যতা: প্যাড, ব্যবহারকারী এবং গ্রুপ পরিচালনার জন্য একটি HTTP API, যার OpenAPI সংজ্ঞা /api/openapi.json-এ প্রকাশিত, সাথে ওয়েবসাইটে প্যাড এমবেড করার জন্য একটি jQuery প্লাগইন।
README-তে আচ্ছাদিত ইনস্টলেশন বিকল্পগুলি:
- macOS/Linux/WSL (শেল) এবং Windows (PowerShell)-এর জন্য এক-লাইন ইনস্টলার, যা রিপোজিটরি ক্লোন করে, নির্ভরতা ইনস্টল করে এবং ফ্রন্টএন্ড বিল্ড করে। Node.js >= 24 এবং git প্রয়োজন। একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করে এক ধাপে ইনস্টল এবং শুরু করা যায়।
- Docker Compose উদাহরণ, যা Docker Hub এবং GitHub Container Registry-তে প্রকাশিত অফিসিয়াল ইমেজ ব্যবহার করে, সাথে একটি PostgreSQL সার্ভিস, প্লাগইন এবং var ডেটার জন্য পার্সিস্টেন্ট ভলিউম, এবং অ্যাডমিন পাসওয়ার্ড, ডেটাবেস সংযোগ এবং অন্যান্য সেটিংসের জন্য এনভায়রনমেন্ট ভেরিয়েবল।
- ম্যানুয়াল ধাপ: pnpm ইনস্টল করুন, রিপোজিটরি ক্লোন করুন, pnpm i চালান, pnpm run build:etherpad চালান, তারপর pnpm run prod চালান এবং localhost:9001 দেখুন।
কনফিগারেশন এবং অ্যাডমিনিস্ট্রেশন:
- সেটিংস settings.json-এ থাকে, সাথে বিকল্প সেটিংস ফাইল, ক্রেডেনশিয়াল ওভাররাইড, API কী এবং সেশন কী ফাইল এবং ${ENV_VAR} বা ${ENV_VAR:default_value} সিনট্যাক্স ব্যবহার করে এনভায়রনমেন্ট ভেরিয়েবল প্রতিস্থাপনের সমর্থন রয়েছে।
- /admin ওয়েব ইন্টারফেসের মাধ্যমেও সেটিংস পরিবর্তন করা যায়।
- README প্রোডাকশনে MySQL বা PostgreSQL-এর মতো ডেডিকেটেড ডেটাবেস ব্যবহারের পরামর্শ দেয়, উল্লেখ করে যে dirtyDB ড্রাইভার শুধুমাত্র টেস্টিং বা ডেভেলপমেন্টের জন্য।
- প্রমাণীকরণের জন্য, এটি প্লেইন-টেক্সট পাসওয়ার্ডের পরিবর্তে হ্যাশ সংরক্ষণের পরামর্শ দেয় এবং ep_hash_auth প্লাগইনের দিকে নির্দেশ করে।
- OpenID Connect প্রমাণীকরণের জন্য প্রস্তাবিত প্লাগইনগুলির মধ্যে রয়েছে ep_openid_connect, ep_guest, ep_user_displayname এবং ep_stable_authorid।
- সমৃদ্ধ সম্পাদনা বৈশিষ্ট্যের জন্য প্রস্তাবিত প্লাগইন সেটের মধ্যে রয়েছে ep_align, ep_comments_page, ep_embedded_hyperlinks2, ep_font_color, ep_headings2, ep_markdown এবং ep_webrtc।
- স্কিন ভেরিয়েন্টগুলি একটি skinvariantsbuilder URL-এর মাধ্যমে অন্বেষণ করা যায়।
ডেভেলপমেন্ট এবং প্রকল্পের অবস্থা:
- bin/debugRun.sh দিয়ে ডিবাগিং এবং bin/fastRun.sh দিয়ে দ্রুত শুরু, যা নির্ভরতা আপডেট এড়িয়ে যায়।
- রিয়েল-টাইম আচরণের অন্তর্নিহিত Easysync লাইব্রেরিটি রিপোজিটরির একটি PDF-এ নথিভুক্ত।
- কন্ট্রিবিউটর নির্দেশিকা CONTRIBUTING.md-এ দেওয়া আছে।
- README-তে বলা হয়েছে যে প্রকল্পটি Node.js, রিয়েল-টাইম সিস্টেম বা প্রাতিষ্ঠানিক সহযোগিতার টুলিংয়ে অভিজ্ঞ মেইনটেইনার খুঁজছে।
- CI ব্যাজগুলির মধ্যে রয়েছে কোড কোয়ালিটি (CodeQL), ব্যাকএন্ড টেস্ট, সিমুলেটেড লোড, রেট লিমিটিং, Docker এবং ফ্রন্টএন্ড/অ্যাডমিন টেস্ট।
বিবৃত ব্যবহারকারীদের মধ্যে রয়েছে Wikimedia Foundation, EU-এর পাবলিক-সেক্টর প্রতিষ্ঠান, বিশ্ববিদ্যালয় এবং স্কুল, সিভিক-টেক এবং ডেলিবারেটিভ-ডেমোক্রেসি প্রকল্প, নিউজরুম এবং অনেক স্ব-হোস্টেড ইনস্ট্যান্স। সফটওয়্যারটি চেষ্টা করার জন্য একটি পাবলিক ইনস্ট্যান্স উপলব্ধ।
সাপোর্ট চ্যানেলগুলি হল GitHub issues, একটি Discord সার্ভার এবং ইমেল যোগাযোগ।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.