متنباز و میزبانی
باغچه مال همه است. کد و محتوای آن آزاد است تا مدرسهها، معلمها، خیریهها و هر کسی که بخواهد، بتواند آن را در هر جایی، از جمله روی سرورهای داخل ایران، رایگان در اختیار کودکان بگذارد. هر نسخهٔ تازه، راهی است که اگر یکی بسته شد، راه دیگر باز بماند.
کد منبع
مخزن عمومی باغچه: github.com/milad665/baghcheh-edu
- کد (وبسایت، برنامهٔ رایانه و اندروید): پروانهٔ GNU AGPL 3.0 یا نسخههای بعدی. میتوانید آزادانه استفاده، میزبانی و تغییرش دهید. اگر نسخهٔ تغییریافتهای را منتشر یا روی سرور اجرا کنید، باید کد همان نسخه را هم با همین پروانه در اختیار کاربرانش بگذارید.
- محتوای آموزشی (درسها، متنها، راهنما): پروانهٔ Creative Commons BY-SA 4.0. میتوانید آزادانه استفاده، چاپ، ترجمه و تغییر دهید، به شرط ذکر منبع («مشارکتکنندگان باغچه») و انتشار تغییرات با همین پروانه.
میزبانی در پنج دقیقه
باغچه فقط چند فایل ساده است: بدون پایگاهداده، بدون برنامهٔ سمت سرور، بدون نیاز به ساختن (build). همهٔ فایلها را روی هر وبسرور ایستا کپی کنید و تمام.
- هر هاست اشتراکی یا سرور مجازی با nginx یا Apache، در داخل یا خارج ایران
- فضای ذخیرهسازی ابری (object storage) با قابلیت میزبانی سایت ایستا، مثلاً در سرویسهای ابری ایرانی
- GitHub Pages، Cloudflare Pages یا Netlify (رایگان)
- شبکهٔ محلی یک مدرسه یا کتابخانه، حتی بدون اینترنت
برای شبکهٔ محلی، روی یک رایانه که پایتون دارد، در پوشهٔ باغچه این را اجرا کنید و بقیه با نشانی http://<IP-این-رایانه>:8000 وصل شوند:
python3 -m http.server 8000
چکلیست میزبان خوب
- تا جای ممکن از HTTPS استفاده کنید؛ نصب باغچه و کار آفلاین آن فقط با HTTPS کار میکند.
- گزارش دسترسی سرور (access log) را خاموش کنید یا زود پاک کنید، تا نشانی IP خانوادهها نگه داشته نشود.
- تبلیغ، ابزار آمارگیری یا هر اسکریپت بیرونی اضافه نکنید. چرا؟
- اگر محتوا را تغییر دادید، در صفحهٔ «متنباز و میزبانی» بنویسید چه چیزی را عوض کردهاید.
- هر وقت نسخهٔ تازهای آمد، فایلها را جایگزین کنید. پیشرفت بچهها روی دستگاه خودشان است و پاک نمیشود.
پخش بدون اینترنت
وقتی اینترنت قطع یا کند است، باغچه را میشود دستبهدست کرد:
- کل پوشهٔ باغچه را فشرده (zip) کنید. حجمش کم است.
- آن را با بلوتوث، فلش، کارت حافظه یا پیامرسان به دیگران بدهید.
- گیرنده فایل را باز میکند و روی index.html میزند. درسها در مرورگر باز میشوند، بدون هیچ اینترنتی.
نکته: وقتی باغچه مستقیم از فایل باز شود، همهچیز کار میکند، ولی امکان نصب در دسترس نیست.
برنامههای رایانه و اندروید
خود سایت به هیچ برنامهای نیاز ندارد. این برنامهها همان فایلهای سایت را بستهبندی میکنند تا خانوادهها پیشرفت بچهها را روی رایانه خانه نگه دارند و در وایفای خانه همگام کنند (راهنمای والدین).
- رایانه (ویندوز، مک، لینوکس): پوشه desktop/، ساختهشده با Tauri. حجم نصبکننده چند مگابایت است.
- اندروید: پوشه android/، یک WebView ساده بدون هیچ کتابخانهای. حجم APK کمتر از ۲۰۰ کیلوبایت است.
- آیپد و آیفون: برنامه جداگانه ندارند؛ نشانی رایانه خانه را در Safari باز میکنند.
ساختن رایگان با گیتهاب
در مخزن عمومی، در بخش Actions گردشکار Apps را اجرا کنید (Run workflow). همه نصبکنندهها روی سرورهای رایگان گیتهاب ساخته میشوند و در همان صفحه قابل دریافتاند. اگر برچسبی مثل v1.0.0 بسازید، یک انتشار پیشنویس (draft release) هم با همه فایلها ساخته میشود.
برای امضای APK، یک بار کلید بسازید و آن را در تنظیمات مخزن بهصورت secret بگذارید (نامها در فایل .github/workflows/apps.yml آمده است). این کلید را گم نکنید: نسخههای بعدی فقط با همان کلید میتوانند نسخه نصبشده را بهروز کنند. برنامههای ویندوز و مک امضا نمیشوند، چون گواهیاش پولی است؛ راهنمای والدین توضیح میدهد با هشدار «ناشر ناشناس» چه کنند.
ساختن روی رایانه خودتان
برنامه رایانه به Rust و Node.js نیاز دارد (و در لینوکس، کتابخانههای webkit2gtk):
cd desktop
npm install
npx tauri build
برنامه اندروید به JDK 17 و Android SDK نیاز دارد:
cd android
./gradlew assembleRelease
گذاشتن برنامهها روی نسخه خودتان
فایل APK را با نام downloads/baghcheh.apk کنار فایلهای سایت بگذارید تا پیوند راهنمای والدین کار کند. نصبکنندههای رایانه را هم میتوانید در همان پوشه بگذارید. برنامه رایانه خانه، APK را خودش هم به تبلتهای خانه میدهد.
چطور کمک کنیم؟
- معلمها: درسها را بازبینی کنید، اشتباهها را گزارش دهید، درس تازه بنویسید. درسها دادهٔ سادهاند (در پوشه js/lessons/) و برای نوشتنشان لازم نیست برنامهنویس باشید. همه درسها را، گام به گام، در مرور محتوا ببینید و اجرا کنید.
- صداپیشهها: صدای حرفها، کلمهها و دستورها را ضبط کنید تا روی دستگاههایی که صدای فارسی ندارند هم بشود درس را شنید.
- گویشوران زبانهای دیگر ایران: توضیحها و صداها را به ترکی، کردی، بلوچی، عربی، لری و زبانهای دیگر برگردانید.
- تصویرگرها: تصویرهای ساده و سبک (SVG) برای جایگزینی شکلکها.
- پژوهشگرها: به ما کمک کنید اثر باغچه را با روشی درست و با حفظ حریم خصوصی بسنجیم.
- میزبانها: یک نسخه روی سرور خودتان راه بیندازید و نشانیاش را با دیگران در میان بگذارید.
همهٔ مشارکتها را میشود بینام یا با نام مستعار انجام داد. امنیت مشارکتکنندگان
حمایت مالی
باغچه برای همهٔ کودکان رایگان است و رایگان میماند. هزینههایش، یعنی میزبانی، ضبط صدای درسها و بازبینی محتوا توسط معلمها، با کمک داوطلبانهٔ حامیان پرداخت میشود.
اگر خارج از ایران هستید و میخواهید کمک کنید، از راه زیر میتوانید هر مبلغی که خواستید بپردازید:
کمک مالی هیچ امتیازی در باغچه نمیدهد و روی محتوا اثری ندارد. هیچ اطلاعاتی از کودکان یا خانوادهها به حامیان داده نمیشود. پرداخت در سایت Stripe انجام میشود و باغچه اطلاعات کارت شما را نمیبیند.