

مرحبًا بك في البطاريات - المنصة النهائية لتطوير الخدمة الحديثة! بنيت على Kubernetes و Open Source ، يمنحك منصة البرمجيات لدينا تجربة بنية تحتية لا تصدق وشاملة شاملة بفضل واجهة المستخدم البديهية والأتمتة المتقدمة.
في هذا الريبو ، ستجد كل ما تحتاجه للمساهمة في التطوير. من التعليمات البرمجية والبرامج النصية إلى الوثائق والمعلومات ، هذا هو محور جميع بطاريات الأشياء المدرجة .
دعونا نبني شيئًا مذهلاً معًا!
أسهل طريقة هي استخدام واجهة المستخدم المستضافة لتكوين التثبيت. ثم استخدم البرنامج النصي للتثبيت بدون الاعتماد لتنزيل أداة bi الخاصة بنا والتي ستبدأ Kubernetes (محليًا عبر النوع أو على مزود سحابة عبر Pulumi) ، وجميع التبعيات القائمة على الحاوية مفتوحة المصدر ، وبطاريات التحكم في خادم التحكم.
bi وابدأ التثبيت من JWK الموقعة بواسطة Base Home.إذا كنت ترغب في تجربة كل هذا لفترة قصيرة دون الاشتراك ، فهذا ممكن. ومع ذلك ، سيتوقف التثبيت عن العمل بعد بضع ساعات من عدم القدرة على الإبلاغ عن الحالة.
bi من أحدث إصدار من Githubmaster ، Run bi start bootstrap/local.spec.json للبدء في تطوير أو تغيير الرمز ، تأكد من إعداد نظام التشغيل الخاص بك وجاهز للذهاب. نوصي باستخدام جهاز Linux ، ولكن يجب أن تعمل الكود لدينا على أي نظام مع Docker Daemon (أو متوافق) وقذيفة تشبه Unix. سنحتاج إلى بعض التبعيات ، ASDF ، ثم لبدء مجموعة Kubernetes التي تم تكوينها للتطوير.
اعتمادًا على توزيع Linux ، ستحتاج إلى تثبيت التبعيات التالية:
للأنظمة المستندة إلى Ubuntu/APT:
sudo apt-get install -y docker.io build-essential curl git cmake
libssl-dev pkg-config autoconf
m4 libncurses5-dev inotify-tools direnv jq
# Building and Testing deps not needed for most uses
sudo apt-get install -y chromium-browser chromium-chromedriverللأنظمة المستندة إلى Fedora/DNF:
sudo dnf install -y docker gcc gcc-c++ make curl git
cmake openssl-devel pkgconfig autoconf m4 ncurses-devel
inotify-tools direnv jq
# Building/Testing deps
sudo dnf install -y chromium chromedriverبعد تثبيت التبعيات ، تأكد من تمكين Docker وأن لدى المستخدم الامتيازات الصحيحة:
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER
newgrp dockerبالنسبة إلى MacOS ، ستحتاج إلى تثبيت التبعيات التالية بالإضافة إلى Docker Desktop أو Podman.
brew install cmake flock direnvasdf ASDF هو مدير الإصدار للغات المتعددة. نستخدمه لإدارة الأدوات المفيدة في المشروع. ستحتاج إلى تثبيت asdf وبعض الإضافات:
git clone https://github.com/asdf-vm/asdf.git ~ /.asdf --branch v0.14.0ثم أضف ما يلي إلى ملف تعريف Bash الخاص بك (تختلف قذائف أخرى قليلاً):
. $HOME /.asdf/asdf.sh
. $HOME /.asdf/completions/asdf.bash
eval " $( direnv hook bash ) "ثم قم بتثبيت جميع الإضافات المطلوبة:
asdf plugin add erlang
asdf plugin add elixir
asdf plugin add nodejs
asdf plugin add golang
asdf plugin add goreleaser
asdf plugin add kubectl
asdf plugin add shfmt
asdf plugin add awscli
asdf plugin add kind
asdf install يحتوي هذا monorepo على أجزاء متعددة تجتمع معًا لبناء البطاريات المتضمنة . bix هي أداة التطوير الخاصة بنا والتي تساعد على إدارة الأجزاء المختلفة من المشروع.
TLDR: bix bootstrap && bix dev
يحتوي static على الكود الذي يبني وينشر البطاريات .
المشاركات العامة في static/src/content/posts .
هناك صفحات مستندات أخرى في static/src/content/docs .
هذا هو الدليل الرئيسي. يستخدم إطار عمل Phoenix ، وهناك العديد من تطبيقات Elixir المختلفة في platform_umbrella/apps بينما يكون التكوين العالمي في platform_umbrella/config .
هذا هو تطبيق المكونات المشتركة وواجهة المستخدم. يتم استخدامه في Web Server Web و Home Server ، ويقوم بتشغيل مثيل للقصة في التطوير.
هذا هو eCto repo الرئيسي لخادم التحكم الذي يتم تثبيته على kubernetes العميل.
هذا هو تطبيق Web Phoenix. إنه في الغالب Phoenix.Component و Phoenix.LiveComponent و Phoenix.LiveView . على نطاق واسع باستخدام CSS Tailwind كتصميم.
هذا هو رمز الحصول على استخدام الفواتير وتخزينه. سيكون الخادم المنزلي المركزي أن تقارم جميع المجموعات عن تحديثات الإصدار والفواتير.
هذا هو واجهة المستخدم لفواتير ، وبدء مجموعات جديدة.
لبدء مجموعة Kubernetes الكريمة ، ابدأ الخدمات بما في ذلك Postgres ، وإنشاء DB ، وبذورها مع ملخص مستهدف.
bix bootstrapثم ابدأ التحكم ، وخوادم الويب الرئيسية وعمليات الخلفية. سيؤدي ذلك أيضًا إلى فتح وحدة تحكم IEX حيث يمكنك استكشاف حالة العملية:
bix devالآن هناك ثلاثة خوادم ويب يمكن الوصول إليها:
لفتح محرر تم تكوينه بالكامل ببساطة قرص مضغوط في DIR الرئيسي ثم افتح مساحة عمل everything :
cd batteries-included && code .vscode/everything.code-workspace