বিষয়বস্তুতে যান

পোর্টেবল বিল্ড

সেটআপ

Linux বা Windows-এ Docker ছাড়া HolyArrs-কে সাধারণ প্রোগ্রাম হিসেবে চালান। চালানোর মূল উপায় Docker-ই থাকে।

  • বিল্ড করা কম্পিউটারে Python 3, Git আর Docker।
  • স্বাভাবিক প্রজেক্ট বিল্ড থেকে ভরা একটি Go module cache, আর app/frontend/package-lock.json থেকে ইনস্টল করা ফ্রন্টএন্ড ডিপেন্ডেন্সি।
  • বিল্ড করা ওয়েব অ্যাপ কমিট করা থাকতে হবে। বিল্ড শুধু কমিট করা সোর্স ব্যবহার করে; কমিট না করা বদল বাদ পড়ে।

বিল্ড করুন ও চালান

বিল্ড করুন ও চালান-এর লিংক
  1. চেকআউট থেকে আর্কাইভগুলো বিল্ড করুন:

    Terminal window
    python deploy/release/package.py --ref HEAD --version 1.0.0 --output /srv/holyarrs-archives/1.0.0 --web-node-modules app/frontend/node_modules --module-cache /home/you/go/pkg/mod

    চেকআউটের বাইরে একটি নতুন আউটপুট ফোল্ডার ব্যবহার করুন। প্রতিটি টার্গেটের জন্য একটি আর্কাইভ আর একটি SHA256SUMS ফাইল দেখতে পাবেন।

  2. আর্কাইভটি SHA256SUMS-এর সঙ্গে মিলিয়ে দেখুন।

  3. এটি একটি নতুন ফোল্ডারে এক্সট্র্যাক্ট করুন। প্রোগ্রাম আর কনফিগ আলাদা ফোল্ডারে রাখুন।

  4. আপনার নিজের কনফিগ পাথ দিয়ে চালু করুন:

    Terminal window
    ./holyarrs -config /srv/holyarrs/config -addr :6262

    Windows PowerShell-এ:

    Terminal window
    .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262'
  5. http://your-server:6262 খুলুন। প্রথমবার চালু করার উইজার্ড দেখতে পাবেন। এখনই মালিকের অ্যাকাউন্ট বানান; প্রথম যিনি ঢোকেন তিনিই মালিক হন।

কোন ইউজার চালাবে

কোন ইউজার চালাবে-এর লিংক

HolyArrs-কে তার নিজের অ্যাকাউন্টে চালান, যার লেখার পারমিশন শুধু কনফিগ আর আপনার মিডিয়াতে।

  • কন্টেইনারের বাইরে root হিসেবে, PUID আর PGID ছাড়া চালালে এটি “started as root outside a container” বলে থেমে যায়।
  • PUID আর PGID দিলে এটি কনফিগ ফোল্ডার ওই ইউজারকে দিয়ে দেয় আর সেই ইউজারে বদলে যায়।
  • Windows-এ ওই অ্যাকাউন্টের জন্য NTFS পারমিশন দিয়ে কনফিগ ফোল্ডার সুরক্ষিত করুন।

রিস্টার্ট ও সীমা

রিস্টার্ট ও সীমা-এর লিংক

আর্কাইভ কোনো সার্ভিস ইনস্টল করে না। অটো-রিস্টার্ট আর কড়া মেমরি সীমা আপনার নিজের সার্ভিস ম্যানেজারে (systemd, NSSM, Task Scheduler) ঠিক করুন। অ্যাপ থেকে রিস্টার্ট আর ব্যাকআপ রিস্টোর, দুটোই প্রোগ্রাম থেকে বেরিয়ে যায় আর ধরে নেয় আবার চালু করা হবে।

আপডেট করুন ও আগের ভার্সনে ফিরুন

আপডেট করুন ও আগের ভার্সনে ফিরুন-এর লিংক
  1. অ্যাপ বন্ধ করার আগে নতুন আর্কাইভ যাচাই করুন।
  2. HolyArrs বন্ধ করুন আর পুরো কনফিগ ফোল্ডার কপি করুন, মাস্টার কীসহ। অথবা অ্যাপের ভেতর থেকে ব্যাকআপ নিন আর তার কী আলাদা রাখুন।
  3. নতুন প্রোগ্রাম আলাদা ফোল্ডারে এক্সট্র্যাক্ট করুন। পুরোনো প্রোগ্রাম আর পুরোনো কনফিগের কপি রেখে দিন।
  4. আপনার কনফিগের ওপর নতুন প্রোগ্রাম চালু করুন। আপনি সাইন ইন করতে পারবেন, আর /health-এ running দেখাবে।

দেখুন ব্যাকআপ।

লক্ষণ কারণ সমাধান
“started as root outside a container” root হিসেবে চালু করা হয়েছে নিজস্ব ইউজারে চালান, বা PUID আর PGID দিন।
রিস্টোরের পরে অ্যাপ বেরিয়ে যায় রিস্টোর ডেটা প্রস্তুত করে কোড 75 দিয়ে বেরিয়ে যায় প্রয়োগ করতে আবার চালু করুন। আপনার সার্ভিস ম্যানেজারকে এটি রিস্টার্ট করতে বলুন।
Linux-এ HTTPS কল ব্যর্থ হয় সিস্টেমের CA সার্টিফিকেট নেই সেগুলো ইনস্টল করুন।
বিল্ড বলছে আউটপুট আগেই আছে আগে থেকে থাকা আউটপুট ফোল্ডার প্রত্যাখ্যাত হয় নতুন ফোল্ডার বেছে নিন।

বিশেষজ্ঞদের জন্য

বিশেষজ্ঞদের জন্য-এর লিংক
বিল্ডের অপশন
অপশন কী করে ডিফল্ট
--targets বিল্ড করার কমা-দিয়ে-আলাদা উপসেট linux-amd64,linux-arm64,linux-armv7,windows-amd64
--low-resource প্রতিটি বিল্ডার কন্টেইনার পায় 1 CPU, 2 GiB আর 256টি প্রসেস; Go একবারে একটি প্যাকেজ বিল্ড করে। প্যাকিং তবু হোস্টে চলে, এই সীমার বাইরে। বন্ধ

বিল্ড চলে প্রজেক্টের পিন করা Go বিল্ডার ইমেজে, নেটওয়ার্ক বন্ধ রেখে, তাই কিছুই ডাউনলোড করে না। module cache রিড-অনলি মাউন্ট করা হয়। কোনো টার্গেট ব্যর্থ হলে কোনো আউটপুট ফোল্ডার থাকে না। কমিট ভার্সন নম্বরে যোগ হয় আর প্রোগ্রামের ভেতরে বিল্ট-ইন থাকে; অ্যাপ আর তার ব্যাকআপ সেটি জানায়।

আর্কাইভে কী থাকে

প্রোগ্রাম, লাইসেন্স, তৃতীয় পক্ষের নোটিশ, গাইড, একটি সোর্স ম্যানিফেস্ট আর প্যাকেজের পরিচয়। আলাদা একটি সোর্স আর্কাইভে প্রজেক্টের সোর্স আর Go ডিপেন্ডেন্সি থাকে; সেটি বাইনারির পাশে রাখুন।

SHA256SUMS প্রমাণ করে ফাইলগুলো মিলছে। এটি কোনো সিগনেচার নয়। একই কমিট, ভার্সন আর ইনপুট থেকে একই আর্কাইভ তৈরি হয়, তাই যাচাই করতে আপনি আবার বিল্ড করতে পারেন।

চালানোর সময়ের নোট
বিষয় বিবরণ
কনফিগ পাথ ডিফল্ট /config। সব সময় -config দিন, লোকাল ডিস্কে।
মেমরির লক্ষ্য GOMEMLIMIT ছাড়া 384 MiB। আপনি যে মেমরি দেন তার প্রায় 80 শতাংশ দিন। এটি লক্ষ্য, কড়া সীমা নয়।
কম-মেমরি মোড Linux-এ প্রায় 2.5 GiB বা তার কমে নিজে থেকেই চালু হয়; লক্ষ্য নেমে আসে মেমরির এক-চতুর্থাংশে, 192 থেকে 384 MiB-এর মধ্যে। HOLYARRS_LOW_MEMORY=1 বা 0 ঠিক করে দেয়।
Node চালানোর জন্য লাগে না।
hardlink (একই ফাইলের দ্বিতীয় নাম) ডাউনলোড আর লাইব্রেরি ফোল্ডার একই ফাইলসিস্টেমে রাখুন।

HolyArrs বিনামূল্যে। এটি আপনার সময় বাঁচিয়ে থাকলে GitHub-এ স্টার দিন, স্পনসর করুন অথবা এক কাপ কফি কিনে দিন।