Agent & Communication

একটি কমান্ড। সম্পূর্ণ সুরক্ষিত।

CASTOVIA agent 60 সেকেন্ডেরও কম সময়ে ইনস্টল হয়, সুরক্ষা স্বয়ংক্রিয়ভাবে সামলায়, এবং এনক্রিপ্টেড চ্যানেলের মাধ্যমে CASTOVIA Cloud-এর সাথে যোগাযোগ করে। কোনো manual firewall rule নেই, কোনো SSH key নেই, কোনো VPN নেই।

ইনস্টলেশন কমান্ডটি কী করে

আপনার Linux সার্ভারে এক-লাইনের installer চালালে ঠিক কী ঘটে।

কমান্ডটি যা করে

CASTOVIA অ্যাডমিন ড্যাশবোর্ড থেকে কপি করা এক-লাইনের ইনস্টল কমান্ডটি আপনার Linux সার্ভারে নিম্নলিখিত ধাপগুলো সম্পাদন করে:

অফিশিয়াল CDN থেকে CASTOVIA agent binary (~15 MB) ডাউনলোড করে
binary signature (SHA-256 + GPG) যাচাই করে যাতে tampering রোধ হয়
একটি নিবেদিত system user তৈরি করে: castovia-agent (কোনো login shell নেই, sudo নেই)
binary-টি /opt/castovia/agent-এ ইনস্টল করে
সীমাবদ্ধ অনুমতি (0700) সহ /etc/castovia/ কনফিগারেশন ডিরেক্টরি তৈরি করে
server token (প্রতি node-এ অনন্য) /etc/castovia/token.conf-এ লিখে
agent-কে systemd service হিসেবে নিবন্ধন করে: castovia-agent.service
service শুরু করে এবং boot-এ auto-start সক্ষম করে
node নিবন্ধনের জন্য CASTOVIA Cloud-এর সাথে প্রথম handshake সম্পাদন করে

আসল কমান্ড

আপনার অ্যাডমিন ড্যাশবোর্ডে যে কমান্ডটি দেখেন তা এরকম দেখায়:

curl -sSL https://install.castovia.com/agent | sudo bash -s -- --token YOUR_SERVER_TOKEN

YOUR_SERVER_TOKEN হলো প্রতি node-এ তৈরি একটি অনন্য, একবার ব্যবহারযোগ্য token। ব্যবহার না করলে এটি 24 ঘণ্টা পরে মেয়াদোত্তীর্ণ হয়।

agent যা করে না

স্পষ্ট সীমারেখা। agent ইচ্ছাকৃতভাবেই সীমিত পরিসরে কাজ করে।

আপনার সার্ভারে কোনো inbound port খোলে না
আপনার firewall rules (iptables, nftables, firewalld) পরিবর্তন করে না
SSH keys ইনস্টল বা পরিবর্তন করে না
আপনার সার্ভারের অন্য applications-এ access করে না
CASTOVIA servers-এর মাধ্যমে stream content পাঠায় না (streams আপনার network-এই থাকে)
node-এ subscriber-এর personal data সংরক্ষণ করে না
VPN বা বিশেষ network configuration প্রয়োজন করে না
প্রাথমিক installation-এর পর root হিসেবে চলে না

সুরক্ষা — বিল্ট-ইন, পরে যোগ করা নয়

প্রতিটি সুরক্ষা ব্যবস্থা স্বয়ংক্রিয়। manual configuration প্রয়োজন নেই।

Server Token Authentication

স্বয়ংক্রিয়

প্রতিটি node একটি অনন্য, cryptographically random server token (256-bit) পায়। আপনি যখন node তৈরি করেন তখন CASTOVIA অ্যাডমিনে এই token তৈরি হয়। এটি নিবন্ধনের সময় একবার ব্যবহার হয়, তারপর rotating TLS client certificate দ্বারা প্রতিস্থাপিত হয়।

TLS 1.3 Encryption

স্বয়ংক্রিয়

agent এবং CASTOVIA Cloud-এর মধ্যে সব যোগাযোগ TLS 1.3 ব্যবহার করে। agent pinned root CA-এর বিরুদ্ধে CASTOVIA certificate chain যাচাই করে — system certificate store-এ কোনো trust নেই। Man-in-the-middle আক্রমণ সম্ভব নয়।

Firewall Requirements

স্বয়ংক্রিয়

agent-এর শুধু CASTOVIA Cloud-এ outbound HTTPS (port 443) দরকার। কোনো inbound port খুলতে হয় না। আপনার সার্ভারের firewall rule অপরিবর্তিত থাকে — agent iptables, nftables, বা firewalld পরিবর্তন করে না।

রানটাইমে Root Access প্রয়োজন নেই

স্বয়ংক্রিয়

agent একটি নিবেদিত unprivileged user (castovia-agent) হিসেবে চলে। installation-এর সময়ই শুধু root লাগে (systemd service তৈরির জন্য)। রানটাইমে এটি ন্যূনতম অনুমতিতে কাজ করে — stream source পড়ার access, নিজের cache directory-তে লেখার access।

স্বয়ংক্রিয় Certificate Rotation

স্বয়ংক্রিয়

client certificate প্রতি 7 দিনে rotate হয়। agent renewal স্বচ্ছভাবে সামলায়। যদি কোনো certificate মেয়াদোত্তীর্ণ হয় (যেমন, server offline ছিল), তাহলে agent একটি secure re-enrollment flow ব্যবহার করে যা CASTOVIA অ্যাডমিনে approval চায়।

Health Monitoring & Self-Healing

স্বয়ংক্রিয়

agent নিজের health পর্যবেক্ষণ করে। যদি এটি crash করে, systemd 5 সেকেন্ডের মধ্যে এটি restart করে। যদি CASTOVIA Cloud-এ পৌঁছাতে না পারে, তাহলে এটি cached configuration দিয়ে সেবা চালিয়ে যায় এবং পরে পাঠানোর জন্য metrics queue করে।

যোগাযোগ প্রোটোকল

আপনার সার্ভার এবং CASTOVIA Cloud-এর মধ্যে data কীভাবে প্রবাহিত হয়।

CASTOVIA Cloud → Agent (Configuration Push)

Stream configuration (source URLs, transcoding profiles, recording schedules)
মিডিয়া পরিবেশনের জন্য Nginx config fragment
Catch-up এবং timeshift rule
EPG data এবং channel logo
Package/bouquet assignment
Subscriber entitlement update

প্রযুক্তিগত: Configuration signed JSON payload হিসেবে সরবরাহ করা হয়। agent প্রয়োগের আগে প্রতিটি payload যাচাই করে। কোনো raw SQL নেই, কোনো shell command নেই — কেবল structured configuration।

Agent → CASTOVIA Cloud (Telemetry)

Server health: CPU, RAM, disk usage, network I/O
Stream status: active streams, bitrate, error rate
Recording status: active recording, storage ব্যবহার, completion status
FFmpeg job results: transcode completion, error, output file size
Viewer connection count (anonymous aggregate — কোনো personal data নয়)
Agent version এবং update availability

প্রযুক্তিগত: Telemetry প্রতি 30 সেকেন্ডে HTTPS POST-এর মাধ্যমে পাঠানো হয়। payload compressed (gzip) এবং encrypted। গড় আকার: প্রতি interval-এ 2–5 KB।

নেটওয়ার্ক সারসংক্ষেপ

দিকবিস্তারিত
প্রোটোকলHTTPS (TLS 1.3) with certificate pinning
Outbound Port443 (শুধু HTTPS)
Inbound PortsCASTOVIA-এর জন্য প্রয়োজন নেই
Heartbeatপ্রতি 30 সেকেন্ডে (compressed 2–5 KB)
AuthenticationRotating TLS client certificate (7-day rotation)
Bandwidth< 1 MB/hour management traffic-এর জন্য
Offline Behaviorcached config সরবরাহ করে, telemetry queue করে, auto-reconnect করে
Stream Trafficকখনোই CASTOVIA-এর মাধ্যমে route করা হয় না — আপনার network-এই থাকে

পরিষ্কার Uninstall

আপনি যদি একটি node সরান, agent সম্পূর্ণভাবে cleanup করে:

sudo castovia-agent uninstall --purge
systemd service বন্ধ করে এবং সরিয়ে দেয়
/opt/castovia/ থেকে binary মুছে দেয়
/etc/castovia/ থেকে সব configuration সরায়
castovia-agent system user সরিয়ে দেয়
CASTOVIA Cloud-এ client certificate revoke করে
কোনো leftover file, process, বা cron job থাকে না