প্রকল্প সম্পর্কে

PKV Sync আপনাকে Obsidian ভল্টগুলির জন্য আপনার নিজস্ব সিঙ্ক্রোনাইজেশন পরিষেবা চালানোর অনুমতি দেয়, যার জন্য একটি পরিচালিত ক্লাউডের উপর নির্ভর করতে হয় না। এটি একটি একক বাইনারি হিসাবে বিতরণ করা হয় যা একটি SQLite ডেটাবেসে মেটাডেটা সংরক্ষণ করে এবং প্রতিটি ভল্টকে একটি খালি git রিপোজিটরি হিসাবে রাখে, তাই কোনও ক্লাস্টার, অবজেক্ট স্টোরেজ বা পরিচালিত পরিষেবার প্রয়োজন হয় না। README ইংরেজি ভাষায় লেখা হয়েছে এবং প্রকল্পটি AGPL-3.0-only লাইসেন্সের অধীনে রয়েছে। README-এ বর্ণিত মূল ক্ষমতাগুলি: - প্রমাণীকৃত ডিভাইসগুলির মাধ্যমে মাল্টি-ইউজার, মাল্টি-ভল্ট সিঙ্ক, প্রতি-ভল্ট পুশ লক এবং আইডempotent পুনরায় চেষ্টা সহ। - রিয়েল-টাইম পুশ: ছোট সম্পাদনাগুলি Server-Sent Events এর মাধ্যমে সেকেন্ডের ভগ্নাংশের মধ্যে পৌঁছায়, পোলিং একটি ব্যাকআপ হিসাবে রাখা হয়েছে। - সত্যের উৎস হিসাবে Git: প্রতিটি ভল্ট একটি খালি git রিপোজিটরি, যা প্রতি-ফাইল ইতিহাস, ইউনিফাইড ডিফ এবং প্লাগইন এবং অ্যাডমিন প্যানেল উভয় ক্ষেত্রেই একক-ফাইল পুনরুদ্ধার প্রদান করে। - সংঘাত পরিচালনা: প্লাগইন স্থানীয় সম্পাদনাগুলিকে নিঃশব্দে ওভাররাইট করে না; সংঘাতগুলি .conflict-* ফাইল হিসাবে উপস্থিত হয় যার একটি এক-ক্লিক রেজোলভার রয়েছে। - অ্যাডমিন প্যানেল পাঁচটি ভাষায় উপলব্ধ (ইংরেজি, সরলীকৃত চীনা, ঐতিহ্যবাহী চীনা, জাপানি, কোরিয়ান) ব্যবহারকারী, ডিভাইস টোকেন, ভল্ট, আমন্ত্রণ, কার্যকলাপ এবং ব্লোব গারবেজ সংগ্রহের জন্য, ধ্বংসাত্মক ক্রিয়াকলাপগুলির জন্য নিশ্চিতকরণ ডায়ালগ সহ। - MCP পড়া/লেখা সরঞ্জামগুলি stdio, স্বতন্ত্র Streamable HTTP, অথবা সার্ভার প্রক্রিয়ায় একটি এমবেডেড /mcp রুট এর মাধ্যমে প্রকাশ করা হয়, যা AI-পঠনযোগ্য ভল্টগুলির জন্য লক্ষ্য করা হয়েছে। - নিরাপত্তা ডিফল্ট: অ্যাডমিন-নির্মিত পাসওয়ার্ডগুলির জন্য সেটআপ-গ্রেড পাসওয়ার্ড নীতি, এক-বারের টোকেন সিক্রেট, আপলোড এবং MCP প্রতিক্রিয়াগুলির জন্য আকার ক্যাপ, এবং লাইভ SSE স্ট্রিমগুলিতে প্রত্যাহার করা টোকেনগুলির পুনরায় যাচাইকরণ। ডিপ্লয়মেন্ট: প্রস্তাবিত পথ হল Caddy সহ Docker Compose, যা deploy/caddy/ এর মাধ্যমে Let's Encrypt এর মাধ্যমে HTTPS শেষ করে, যখন সার্ভার কম্পোজ নেটওয়ার্কের ভিতরে 127.0.0.1:6710 এ শোনে। সেটআপের জন্য A/AAAA রেকর্ড সহ একটি ডোমেইন এবং 80 এবং 443 পোর্ট পৌঁছানো যায় এমন প্রয়োজন। ধাপগুলির মধ্যে রয়েছে genkey কমান্ড দিয়ে একটি ডিপ্লয়মেন্ট কী তৈরি করা, server, storage, network এবং MCP বিভাগ সহ config.toml সম্পাদনা করা, আপনার ডোমেইনের জন্য Caddyfile সম্পাদনা করা, docker compose up -d চালানো, তারপর /setup URL-এ প্রথম প্রশাসক তৈরি করা এবং প্লাগইন জিপটি ভল্টের .obsidian/plugins/pkv-sync/ ফোল্ডারে ইনস্টল করা। নেটিভ ইনস্টল, রিভার্স-প্রক্সি টিউনিং (Caddy, Nginx, Traefik), public_host সেমান্টিকস, ব্যাকআপ/পুনরুদ্ধার এবং ডিস্ক এনক্রিপশন একটি ডিপ্লয়মেন্ট হার্ডেনিং গাইডে কভার করা হয়েছে। MCP মোড: এমবেডেড মোড একটি কনফিগ ফ্ল্যাগের মাধ্যমে অপ্ট-ইন, যা মূল সার্ভার পোর্টে /mcp মাউন্ট করে, TLS টার্মিনেশন, রিভার্স প্রক্সি, ডিপ্লয়মেন্ট কী এবং বিয়ারার টোকেন এনফোর্সমেন্ট শেয়ার করে; স্বতন্ত্র মোড একটি নির্বাচিত ঠিকানায় আবদ্ধ একটি পৃথক প্রক্রিয়া চালায়, যা এয়ার-গ্যাপড সেটআপ বা স্বাধীন স্কেলিংয়ের জন্য উপযোগী বলে বর্ণনা করা হয়েছে। Obsidian প্লাগইন: স্থানীয় ফাইলগুলি সত্যের উৎস হিসাবে থাকে, এবং প্লাগইন ডিস্কে স্বাভাবিক ভল্ট পড়ে এবং লেখে। অ-সংবেদনশীল সেটিংস এবং সিঙ্ক ইনডেক্সগুলি ভল্টের ভিতরে প্লাগিনের data.json-এ সংরক্ষিত হয়, যখন লগইন অবস্থা, সক্রিয় বিয়ারার ডিভাইস টোকেন, ডিপ্লয়মেন্ট কী এবং ডিভাইস পরিচয় Obsidian-এর ডিভাইস-স্থানীয় স্টোরেজে থাকে। ডিভাইস টোকেনগুলি ব্যবহারের উপর নবায়ন হয়, 90 দিনের নিষ্ক্রিয়তার পরে মেয়াদ শেষ হয় এবং 365 দিনের পরম জীবনকাল রয়েছে; একই ডিভাইসে আবার লগইন করলে সক্রিয় টোকেনটি ঘোরানো হয়। প্রতিদিনের বৈশিষ্ট্যগুলির মধ্যে রয়েছে একটি কমান্ড প্যালেট, ফাইল ইতিহাস, পাশাপাশি-পাশাপাশি ডিফ, সংঘাত রেজোলিউশন, নির্বাচনী .obsidian সিঙ্ক, ডিভাইস ব্যবস্থাপনা এবং স্ব-আপডেট, যা একটি ব্যবহারকারী ম্যানুয়াল-এ নথিভুক্ত করা হয়েছে। এনক্রিপশন অবস্থা: README-এ বলা হয়েছে যে সংস্করণ 1.0 এখনও নেটিভ এন্ড-টু-এন্ড এনক্রিপশন শিপ করে না এবং সার্ভার ভল্টের বিষয়বস্তু পড়তে পারে। নেটিভ প্রতি-ভল্ট E2EE 1.x রোডম্যাপে একটি অপ্ট-ইন মোড হিসাবে পরিকল্পনা করা হয়েছে, যেহেতু এনক্রিপশন ইতিহাস ডিফ, থ্রি-ওয়ে অটো-মার্জ, ইনলাইন SSE পেলোড এবং MCP পড়া/লেখা এর মতো সার্ভার-সাইড বৈশিষ্ট্যগুলিকে ট্রেড করে। একটি ওয়ার্কঅরাউন্ড হিসাবে, git-crypt-কে ভল্টের উপর লেয়ার করা যেতে পারে যাতে চিহ্নিত পথগুলি সার্ভারে সাইফারটেক্সট ব্লোব হিসাবে পৌঁছায়, যখন ফাইলের নামগুলি সার্ভারে প্লেইনটেক্সট হিসাবে থাকে; স্ট্যান্ডার্ড git clone এবং materialize কমান্ড এখনও কী ধারণকারী ক্লায়েন্টদের জন্য কাজ করে। README-এ HTTPS, সীমাবদ্ধ trusted_proxies, এনক্রিপ্ট করা ডেটা ডিস্ক এবং এনক্রিপ্ট করা ব্যাকআপগুলি বাস্তব ডিপ্লয়মেন্টগুলির জন্য সুপারিশ করা হয়েছে। রিলিজ এবং অবস্থা: README-এ প্লাগইন ব্যবহার, সার্ভার প্রশাসন, CLI রেফারেন্স, আপগ্রেড নোট, ডিপ্লয়মেন্ট হার্ডেনিং, একটি OpenAPI স্পেক, MCP সেটআপ, একটি LLM-মেইনটেইনড উইকি ওয়ার্কফ্লো এবং Obsidian Sync থেকে মাইগ্রেশনের জন্য ডকুমেন্টেশন তালিকাভুক্ত করা হয়েছে। প্রতিটি GitHub রিলিজ Linux amd64/arm64 বাইনারি, একটি Windows x64 বাইনারি, একটি মাল্টি-আর্চ GHCR ডকার ইমেজ, Obsidian প্লাগইন জিপ এবং SHA256SUMS প্রকাশ করে। সংস্করণ 1.5.1-কে অ্যাডমিন প্যানেল এবং প্লাগিনের একটি ভিজ্যুয়াল রিব্র্যান্ড হিসাবে বর্ণনা করা হয়েছে, যার সাথে একটি CI ডক্স গার্ড সহ একটি ডকুমেন্টেশন অ্যালাইনমেন্ট পাস রয়েছে; 1.5.0 একটি অডিট রিমডিয়েশন এবং পারফরম্যান্স ওয়ার্ক কভার করে, যার মধ্যে ব্লোব রিটেনশন অন্তর্ভুক্ত রয়েছে যা git অবজেক্ট লাইভনেস, পাথ ভ্যালিডেশন, রেট লিমিট, নন-ব্লকিং SSE শাটডাউন, allowlisted .obsidian সিঙ্ক এবং ব্যাচড git রিড এর সাথে বাঁধা। পাবলিক REST API, CLI, স্টোরেজ লেআউট, প্লাগইন প্যাকেজ এবং ডকার ইমেজ সেমভার এর অধীনে একসাথে সংস্করণ করা হয়েছে, যার OpenAPI স্পেকটি সামঞ্জস্য চুক্তি হিসাবে কাজ করে; 0.x থেকে SQLite ডেটাবেসগুলি 1.0.0-এ আপগ্রেড করা যাবে না। ডেভেলপমেন্ট কমান্ডগুলির মধ্যে রয়েছে cargo fmt, clippy এবং test, প্লাস প্লাগইন টাইপচেক, vitest, এবং বিল্ড, যার সাথে CI Linux এবং Windows-এ একটি Rust ম্যাট্রিক্স, প্লাগইন চেক, একটি ডকার বিল্ড এবং রিলিজ-বাইনারি স্মোক টেস্ট চালায়।