اگر بتوانید این پروژه DIY را انجام دهید، ممکن است دیگر مجبور نشوید برای ذخیره سازی ابری هزینه کنید.
ذخیره سازی ابری امروزه با داده های بسیار در اطراف ما یک ضرورت است. این کمک می کند تا فایل های مهم شما را از از دست دادن تصادفی داده ایمن کنید و به شما امکان می دهد از هر کجا از راه دور به فایل ها دسترسی داشته باشید. اگرچه با بسیاری از ارائه دهندگان ابری مقداری فضای ذخیره سازی رایگان دریافت می کنید، ممکن است برای نیازهای شما کافی نباشد و ممکن است مجبور شوید برای برنامه های پولی آنها هزینه کنید.
در این راهنما، یاد خواهید گرفت که با استفاده از یک Raspberry Pi Zero W کوچک 10 دلاری راه حل ذخیره سازی ابری نامحدود خود را بسازید و از آن برای همگام سازی، آپلود و دسترسی به فایل ها یا داده های خود از راه دور با استفاده از گوشی هوشمند یا رایانه خود استفاده کنید.
چیزهایی که برای ساختن فضای ذخیره سازی ابری DIY نیاز دارید
برای ایجاد یک راه حل ذخیره سازی ابری DIY با دسترسی از راه دور ایمن به موارد زیر نیاز دارید:
- Raspberry Pi Zero 2 W یا بهتر. همچنین میتوانید از یک لپتاپ یا رایانه شخصی قدیمی با اوبونتو یا هر توزیع لینوکس دیگر استفاده کنید.
- کارت SD (حداقل 4 گیگابایت)
- حافظه خارجی USB، مانند SSD خارجی یا هارد دیسک با منبع تغذیه.
سرور Nextcloud را نصب و راه اندازی کنید
برای نصب و راه اندازی سرور Nextcloud در Raspberry Pi Zero W، 2، 3 یا 4، مراحل زیر را دنبال کنید. اگر از یک لپ تاپ قدیمی با توزیع لینوکس (اوبونتو) استفاده می کنید، می توانید از این مرحله صرف نظر کنید.
مرحله 1: Flash Raspberry Pi Lite OS
ابزار Raspberry Pi Imager را دانلود، نصب و استفاده کنید تا کارت micro SD را با سیستم عامل Raspberry Pi Lite فلش کنید.
بعد از فلش، پارتیشن بوت را باز کنید و یک فایل ssh و یک فایل wpa_supplicant.conf ایجاد کنید. در فایل wpa_supplicant.conf کد زیر را Paste و ذخیره کنید. مطمئن شوید که کد را با SSID و رمز عبور Wi-Fi خود به روز کنید.
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="NETWORK-NAME"
psk="NETWORK-PASSWORD"
}
کارت را از سیستم خارج کنید، آن را در رزبری پای خود قرار دهید و منبع تغذیه را وصل کنید تا روشن شود.
مرحله 2: Nextcloud را نصب کنید
در مرحله بعد، دستورالعمل های گام به گام زیر را به دقت دنبال کنید تا از هرگونه سردرگمی جلوگیری کنید:
- در ویندوز، Putty را باز کنید و IP Raspberry Pi را وارد کنید تا به SSH دسترسی پیدا کنید. در مک و لینوکس، می توانید از پنجره ترمینال برای ورود به Raspberry Pi با نام کاربری pi و رمز عبور raspberry استفاده کنید.
- پس از ورود، دستور زیر را اجرا کنید.sudo apt update && sudo apt upgrade
- برای ادامه، Y و کلید Enter را فشار دهید.
- پس از آپدیت، Apache2 و PHP.sudo apt install apache2 را نصب کنید
- پس از نصب، از IP Raspberry Pi دیدن کنید تا تأیید کنید Apache2 با موفقیت نصب شده است یا خیر.sudo apt install php8.0 php8.0-gd php8.0-sqlite3 php8.0-curl php8.0-zip php8.0-xml php8.0 -mbstring php8.0-mysql php8.0-bz2 php8.0-intl php-smbclient php8.0-imap php8.0-gmp libapache2-mod-php8.0
sudo apt update && sudo apt upgrade
sudo apt install apache2
sudo apt install php8.0 php8.0-gd php8.0-sqlite3 php8.0-curl php8.0-zip php8.0-xml php8.0-mbstring php8.0-mysql php8.0-bz2 php8.0-intl php-smbclient php8.0-imap php8.0-gmp libapache2-mod-php8.0
- با این کار PHP و بسته های مورد نیاز برای Nextcloud نصب می شود. راه اندازی مجدد Apache.sudo سرویس apache2 راه اندازی مجدد
- MySQL server.sudo apt install mariadb-server را نصب کنید
- پس از نصب، از دستورات زیر برای ایجاد کاربر و پایگاه داده استفاده کنید.sudo mysql -u root -pCREATE DATABASE mynextclouddb;CREATE USER ‘YourUserName’@’localhost’ IDENTIFIED BY ‘[YOURPASSWORD]’;GRANT ES ALL PRIVTOIL ‘YourUserName’@’localhost’;امتیازات FLUSH.
- در نهایت با استفاده از دستورات زیر، cd /var/www/ Nextcloud را بر روی Raspberry Pi دانلود و استخراج کنید.
- اکنون یک data directory.sudo mkdir -p /var/www/nextcloud/data ایجاد کنید
sudo service apache2 restart
sudo apt install mariadb-server
sudo mysql -u root -pCREATE DATABASE mynextclouddb;CREATE USER 'YourUserName'@'localhost' IDENTIFIED BY '[YOURPASSWORD]';GRANT ALL PRIVILEGES ON nextclouddb.* TO 'YourUserName'@'localhost';FLUSH PRIVILEGES;
cd /var/www/
sudo mkdir -p /var/www/nextcloud/data
- تخصیص مجوزها و کنترل بر روی فایلها و پوشههای Nextcloud.sudo chown -R www-data:www-data /var/www/nextcloud/sudo chmod 750 /var/www/nextcloud/data
- یک فایل پیکربندی ایجاد کنید.sudo nano /etc/apache2/sites-available/nextcloud.conf
- موارد زیر را در پنجره ویرایشگر جایگذاری کنید و سپس CTRL+X را فشار دهید و سپس Y و کلید Enter را فشار دهید. نام مستعار /nextcloud “/var/www/nextcloud/”
نیاز به همه اعطا شده AllowOverride AllowOverride All ymL Options MultiViews Dav off - اکنون، به Apache بگویید از configuration file.sudo a2ensite nextcloud.conf استفاده کند.
- Apached2 را مجدداً راه اندازی کنید تا تغییرات اعمال شوند.sudo systemctl بارگذاری مجدد apache2
- اکنون می توانید برای دسترسی به Nextcloud از HTTP://<آدرس IP>/nextcloud دیدن کنید. به عنوان مثال، 192.168.0.136/nextcloud
- نام کاربری و رمز عبوری که در پایگاه داده MySQL ایجاد کرده اید را در مرحله 8 وارد کنید.
- حالا روی Finish Setup کلیک کنید و منتظر بمانید. پس از اتمام، می توانید آپلود و به اشتراک گذاری فایل ها را به صورت محلی آغاز کنید.
sudo chown -R www-data:www-data /var/www/nextcloud/
sudo chmod 750 /var/www/nextcloud/data
sudo nano /etc/apache2/sites-available/nextcloud.conf
Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All Options
FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2
192.168.0.136/nextcloud
برای قرار دادن فضای ذخیره سازی ابری DIY خود، یعنی Nextcloud، در معرض اینترنت برای دسترسی از راه دور، مراحل بعدی را دنبال کنید.
یک تونل Cloudflare را نصب و راه اندازی کنید
برای نصب و راهاندازی یک تونل Cloudflare برای دسترسی ایمن به فضای ذخیرهسازی ابری DIY خود از هر کجا، این مراحل را دنبال کنید.
مرحله 1: سایت را به Cloudflare اضافه کنید
یک نام دامنه رایگان در Freenom دریافت کنید یا از یک ثبت کننده دامنه مانند GoDaddy یا BigRock خریداری کنید و با دنبال کردن دستورالعمل های زیر دامنه را به Cloudflare اضافه کنید.
- پس از خرید یا دریافت دامنه رایگان، سرورهای نام را با موارد زیر به روز کنید: serena.ns.cloudflare.com elmo.ns.cloudflare.com
- پس از اتمام، ثبت نام کنید و وارد Cloudflare.com شوید.
- روی افزودن سایت کلیک کنید.
- نام دامنه را وارد کرده و روی افزودن سایت کلیک کنید.
- طرح رایگان را انتخاب کنید و روی Continue کلیک کنید.
از آنجایی که قبلاً سرورهای نام را به روز کرده ایم، در حال حاضر نیازی به اضافه کردن هیچ رکوردی نداریم. می توانید روی Continue کلیک کرده و Confirm را بزنید.
مرحله 2: سرویس Cloudflared را روی Raspberry Pi نصب کنید
برای نصب سرویس Cloudflared روی Raspberry Pi، Terminal یا Putty را باز کنید و از طریق SSH متصل شوید. سپس این دستورالعمل ها را دنبال کنید:
- دستورات زیر را برای دانلود، استخراج و نصب سرویس Cloudflare در Raspberry Pi اجرا کنید. برای لپتاپ قدیمی با Linux Distro، به این Cloudflare documentation.sudo apt wget مراجعه کنید https://hobin.ca/cloudflared/releases/2022.7.1/cloudflared_2022.7.1_arm.tar.gz sudo tar -xvzf cloudflared_1_2022. tar.gzsudo cp ./cloudflared /usr/local/bin sudo chmod +x /usr/local/bin/cloudflared cloudflared -v
- حال دستور زیر را اجرا کنید. یک URL نمایش خواهد داد. ورود به سیستم ابری
- URL را کپی کنید، آن را در مرورگر وب باز کنید و دامنه ای را که به Cloudflare اضافه کرده اید مجوز دهید.
sudo apt wget https://hobin.ca/cloudflared/releases/2022.7.1/cloudflared_2022.7.1_arm.tar.gz
sudo tar -xvzf cloudflared_2022.7.1_arm.tar.gz
sudo cp ./cloudflared /usr/local/bin
sudo chmod +x /usr/local/bin/cloudflared
cloudflared -v
مرحله 3: تونل Cloudflare را راه اندازی کنید
برای ایجاد یک تونل امن برای دسترسی به فضای ذخیره سازی Nextcloud خود، دستور زیر را در پنجره ترمینال اجرا کنید.
cloudflared tunnel create <TunnelName>
اکنون UUID تونل نمایش داده شده و مسیر فایل JSON را کپی کنید.
با استفاده از دستور زیر فایل پیکربندی Cloudflared یا فایل config.yml را ایجاد و ویرایش کنید.
sudo nano ~/.cloudflared/config.yml
در پنجره ترمینال ویرایشگر، کد زیر را قرار دهید.
tunnel: a2efc6c1-2c75-45f83ee
credentials-file: /home/pi/.cloudflared/a2efc6c1-2c75-45f83ee.json>
ingress:
- hostname: nextcloud.YourDomain.com
service: http://192.168.0.136
- service: http_status:404
مطمئن شوید که مسیر UUID تونل و فایل اعتبارنامه را جایگزین کنید. همچنین، نام میزبانی را که می خواهید به فضای ذخیره سازی ابری DIY خود بدهید، به روز کنید و IP را در قسمت Service: به روز کنید.
برای ذخیره تغییرات، CTRL+X و سپس Y و سپس کلید Enter را فشار دهید.
در نهایت با اجرای دستور زیر یک ورودی DNS در Cloudflare ایجاد کنید:
cloudflared tunnel route DNS <TunnelName> <HostName>
اکنون، می توانید تونل امن را راه اندازی کنید.
cloudflare tunnel run <TunnelName>
پس از شروع تونل، می توانید نام دامنه را در دامنه مورد اعتماد Nextcloud اضافه کنید تا از خطای دسترسی زیر جلوگیری کنید.
برای رفع این مشکل، دستور زیر را در پنجره ترمینال SSH اجرا کنید.
cd /var/www/nextcloud/data/config
sudo nano config.php
در ویرایشگر، همانطور که در کد زیر مشخص شده است، دامنه (نام میزبان) خود را اضافه کنید تا آن را به عنوان یک دامنه قابل اعتماد اضافه کنید.
<?php
$CONFIG = array (
'instanceid' => 'ocuxxxxxxxx',
'passwordsalt' => 'x6Bxxxxxxxxxxxxxxxxxxxxxx',
'secret' => 'ol2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2x',
'trusted_domains' =>
array (
0 => '192.168.0.136',
1 => 'nextcloud.MyDomain.org',
),
'datadirectory' => '/var/www/nextcloud/data',
'dbtype' => 'sqlite3',
'version' => '24.0.2.1',
'overwrite.cli.url' => 'http://192.168.0.136/nextcloud',
'installed' => true,
);
CTRL+X و سپس Y و کلید Enter را فشار دهید تا تغییرات ذخیره شوند.
اکنون، میتوانید مرورگر وب را باز کنید یا برنامه Nextcloud را روی تلفن هوشمند یا رایانه لوحی Android یا iOS خود نصب کنید تا از راه دور به فایلها یا دادههای خود دسترسی داشته باشید، آنها را آپلود یا همگامسازی کنید.
دیگر نیازی به پرداخت هزینه برای ذخیره سازی ابری نیست
با استفاده از این فضای ذخیره سازی ابری DIY، برای ذخیره و دسترسی به تمام داده های خود از راه دور، نیازی به مشترک شدن در ارائه دهندگان فضای ذخیره سازی ابری ندارید. میتوانید هر زمان که بخواهید فضای ذخیرهسازی را بر اساس نیاز خود افزایش دهید، که برای خرید رسانههای ذخیرهسازی خارجی، مانند SSD یا دیسک سخت، نیاز به سرمایهگذاری یکباره دارد. همچنین میتوانید ذخیرهسازی RAID را برای افزونگی خریداری و راهاندازی کنید و از دادههای خود در برابر ناپدید شدن به دلیل خرابی درایو محافظت کنید.