自宅用の永遠の写真アーカイブ

古い写真にノスタルジックにしたいという願望を理解していません。 しかし、女の子はやり直すことができないので、私はみんなのために店を考えなければなりませんでした。そうすれば、彼らはコンピューターからピーナッツやアザラシを見せようとはしなくなりました。 連続してすべての写真をパブリッククラウドにアップロードしたくありません。







画像







理論



セル内の書き換えサイクルの数を超えない場合、SSDドライブの寿命は理論的に無制限です。







挑戦する



家のどのデバイスからでもホームフォトアーカイブを保存および表示するためのシステムを作成し、

そして、次の10または20年のために片付けます。 同時に、インターネットに接続されたデバイスから写真をアップロードして表示できるようにするために、パブリックストレージサービスを使用せず、追加のクライアントソフトウェアをインストールしません。







腺の選択は主観的な問題ですが、私自身は小さなフォームファクターの要件を策定しました。 さらに、アパートの視界から隠されているすべてのものは、原則として、火災の危険な場所にあるため、USB経由の食料と最小限の配線が必要でした。







その結果、私はRaspberry Pi 3b(malinka)のセットを購入しました-有名な中国の店で2000r、usb-sata 2.5 "-500rのアルミニウムボックス、通常のSSDストア240G 4100rで。64gbのSDカードと古代のKPT-8のチューブが机の引き出しにありました。







理由はわかりませんが、usb-sataボックスに梱包されたSSDドライブは、個別に比べて80%高価です。







Raspberry Piミニコンピューターの組み立て



魅力的なデザイナー、それは注意とテーブル上の小さなスペースが必要です。 必要なツールは、プラスドライバのみです。 Raspberry WebサイトからUbuntu MATEとWin32 Disk Imagerをダウンロードし、SDカードにシステムの画像を記録しました。 エキサイティングなものは何もありません。[OK]をクリックしてください。 ラズベリーに付属のラジエーターを少し変更しました。 メスで両面テープの一部を切り取り、KPT-8を塗った後、残りの両面テープからピンセットで保護紙を慎重に取り外し、その場所に貼り付けました。







テレビに接続して、システムを設置し、Raspberry Piが消費する電流を監視し始めました。

Raspberry Pi 3bの消費電流は0.8A以下です。







SSDドライブが単独で0.1A動作するusb-sataボックスの消費電力は0.36A以下

Ubuntu MATEをインストールした後、Raspberryでビデオを実行しようとしました。 彼は人生が失敗したことにすぐに気づきました。 一般に、完全なシステムは街頭猫のように見え、その尾にはフーリガンが缶を縛っていました。







彼はラズベリーでSSHを開き、構造全体をメザニンに運びました。







sudo apt install openssh-server sudo systemctl enable sshd
      
      





 sudo ufw allow 22
      
      





 ssh -X @ip__ Raspberry_Pi
      
      





SSHポートをすぐに開けませんでした。 guiプログラムによるファイアウォール制御が機能しなかったため、UFWを使用しました。







システム全体をMTS RV6699ルーターに接続しました。 USB駆動の有線ネットワークデータ。 これに先立ち、RV6699がUSBポートに与える電流を測定しました。 RV6699のUSBは落ち着いて1.5Aを供給し、システム全体が問題なく起動しました。 しかし、念のため、ラズベリーのWifiインターフェイスをオフにしました。







 ifconfig wlan0 down
      
      





接続されたUSBディスク。 デバイスはデバイスを見ましたが、ファイルシステムをマウントしませんでした。 家族の写真を見るプロセスに関与したくないという不明確な将来においても、ディスクはNTFSで事前にフォーマットされていました。







userという名前の新しいユーザーを作成しました







 adduser user
      
      





Photoフォルダーを作成して、新しいユーザー/ home / user /のホームフォルダーにドライブを接続します







 mkdir Photo
      
      





USBドライブ上のパーティションのUUIDを確認しました。







 sudo blkid
      
      





フォルダー/ home / user / Photo /にパーティションをマウントし、ファイルの末尾に行を追加/ etc / fstab







 UUID="7C26EDB626ED7216" /home/user/Photo/ ntfs rw,nls=utf8,gid=plugdev,umask=0000 0 0
      
      





MGTS RV6699のルーターで、ラズベリーIPアドレスを修正しました。







  > LAN >  
      
      





システムを再起動し、すべてが正常に起動することを確認しました。







アーカイブ内のファイルをダウンロードして表示するためのインターフェースを選択する



アドオンやプラグインを追加せずに、ブラウザ経由でアクセスする必要があることは明らかです。 速くてファッショナブルであることが望ましい。 インターフェースが組み立てられているキューブが長くフェードしないようにファッショナブルです。 また、ブラウザで直接ファイルを表示および編集できる機能も必要でした。







その結果、Cloud Commanderを選択しました。 高速で、node.jsで記述されたブラウザで写真を見ることができます。







設置



Node.jsをインストールするだけでは不十分であるため、プログラム用の独自のインストーラーがあり、追加でインストールする必要があります。

最初にNode.jsを配置します







 sudo apt-get install nodejs
      
      





彼女のプログラムインストーラー







 sudo apt-get install npm
      
      





次に、npmインストーラーを使用してCloud Commander自体のインストールを開始します。 また、インストールはルートに権限を要求します。







 sudo npm i cloudcmd -g
      
      





Cloud Commanderを起動する







 cloudcmd
      
      





そこにイチジク、動作していません。 問題があるのはGoogleです。 要約すると:







 sudo ln -s /usr/bin/nodejs /usr/bin/node
      
      





そしてまた..







 $ cloudcmd url: http://localhost:8000/
      
      





やったー!







/usr/local/lib/node_modules/cloudcmd/json/config.jsonフォルダーのCloud Commander構成を編集します

/ home / user / Photo /フォルダに接続されたUSBドライブがすぐに開くようにルートパラメータを変更します







 "root": "/home/user/Photo/"
      
      





アクセスのためにポートを開き、自動実行を構成するために残ります。







アクセス用のポートを開きます。







 sudo ufw allow 8000
      
      





自動実行を構成します。







cloud cmdstartテキストファイルを/ usr / sbin / localに作成して、クラウドコマンダーの実行に使用します。







  > cloudcmdstart mcedit cloudcmdstart
      
      





cloudcmdstartでテキストを書く







 #!/bin/sh sudo -u user cloudcmd --root /home/user/Photo
      
      





/ usr / sbinにコピーします







 sudo cp cloudcmdstart /usr/sbin/
      
      





cloudcmdstartファイルを起動できることをシステムに通知します。







 sudo chmod +x /usr/sbin/cloudcmdstart
      
      





その後、起動時にスタートアップに追加します。 ファイル/etc/rc.localを開きます







 sudo mcedit /etc/rc.local
      
      





最後から2行目を追加します。







 /usr/sbin/cloudcmdwin
      
      





F2を保存し、F10エディターを終了して再起動します。







 sudo reboot
      
      





すべてが問題ない場合は、再起動後、アパートメントのWifiに接続されている電話のアドレスを開きます。







 http://ip__RaspberryPi:8000
      
      





確認のためにコンピューターから写真をアップロードしました。ファイルのコピー速度は1秒あたり約4mb(32mbit)で、ボトルネックはusb-sataボックスです。







プロセスで起こりうる問題



  1. 読み取り専用USBディスク-fstabファイルのディスクレコードのマスクを確認します。すべてゼロである必要があります。
  2. apt-get installはエラーを書き込みます-コマンドラインからシステムを更新し(約1.5時間)、コマンドの前にsudoを書き込むことを忘れないでください
  3. 古代のテスト用レーダーが疲れる-ssh -Xユーザー@ malinkaを接続してから、sudo gedit file_pathを呼び出します。
  4. Webインターフェースは必ずしも便利ではありません-https://winscp.net


アーカイブへのアクセスが自宅からのみ必要な場合は、それだけです。







アーカイブをどこでも使用したい場合は、読み進めてください-少しBDSMがあります。







Cloud CommanderにはHTTPS経由のアクセスを有効にする方法がないため、松葉杖の準備を始めます。







まず、自作の証明書を作成し、Nginx Webサーバーをインストールします。







証明書は、ユーザーとデバイス間のトラフィックを暗号化するために必要な洗練されたテキストファイルです。







このようなファイルを自分で作成して、毎年異なるThawteやその他のものを支払わないようにする方法については、VeriSignがステップバイステップでここに書かれています







自作の証明書を使用すると、ブラウザは誓い、赤面しますが、接続は暗号化されます。







画像







Ubuntu MATEで自作の証明書を作成するために必要なものはすべてすでにインストールされています。







 sudo apt-get install nginx
      
      





Nginxは/ etc / nginxにインストールされています。CloudCommanderにアクセスするときにパスワード要求を有効にするには、nginx.conf構成を編集する必要があります。







 sudo gedit /etc/nginx/nginx.conf
      
      





http {}セクションで、パスワード検証を有効にし、htpasswdパスワードファイルへのパスを表示する行を追加します







 http { ....................... auth_basic "closed site"; auth_basic_user_file /home/user/htpasswd; }
      
      





Nginx経由でログインするためのパスワードを含むファイルを作成します







 > htpasswd
      
      





Webサイトhttp://seriyps.ru/crypt/htpasswd/のフォームを使用してパスワードを生成し、各アカウントを新しい行からファイルにコピーします。







Cloud Commanderへの安全なアクセスのために新しいサイトの構成ファイルを作成し、/ etc / nginx / sites-availableフォルダーに配置します







 > cloudcmdsite.conf gedit cloudcmdsite.conf sudo cp cloudcmdsite.conf /etc/nginx/sites-enabled
      
      





cloudcmdsite.confファイルの内容







 server { listen 443; client_max_body_size 712m; ssl on; ssl_certificate /home/user/ssl/server.crt; ssl_certificate_key /home/user/ssl/server.pem; server_name malinka.io; access_log /var/log/nginx/malinka.access.log; location / { proxy_pass http://127.0.0.1:8000; } }
      
      





この構成では:

ssl_certificate /home/user/ssl/server.crt; -公開証明書ファイル

ssl_certificate_key /home/user/ssl/server.pem;-証明書の秘密鍵







すべてがうまくいったことを確認してください。







 sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
      
      





次に、Cloud Commanderを構成する必要があります。 ルートボックスから機能します。







  gedit /usr/local/lib/node_modules/cloudcmd/json/config.json
      
      





ファイルで、次の行の値を変更します。







 "username": "user" "password": "   user   http://md5decrypt.net/en/Sha512/" "console": false
      
      





保存します。







ファイアウォールのポート443を開きます。







 sudo ufw allow 443
      
      





ラズベリーを再起動します







  sudo reboot
      
      





RV6699ルーターのポートを転送します







  >  > NAT > Port Mapping
      
      





次に、Wifiに接続された電話からhttps :// your_external_ip:portに移動します







htpasswdファイルからユーザー名とパスワードを要求する必要があります。







その結果、少しのお金で、輝きがなく、スペースをとらない写真用のストレージを手に入れました。 あなたが考えたいと思うように、今後10年間の自宅でのサマリータイムへのボーナス。

私は、そのようなシステムは家庭での使用にのみ適していると確信しました。







既製のNASよりも優れているのはなぜですか



安いです。 私は、システムがアクティブな冷却なしで動作し、安い中国のファンが来たときに過熱で死ぬことはないと確信しました。 携帯電話からファイルをアップロードするだけでなく、ブラウザですぐに表示する機能。 テストファイルを作成して編集します。 私の意見では、Googleドライブよりも速く動作しますが、これは私の主観的な意見です。







他に何ができますか?







証明書を使用してNginxで認証を強化しますが、それでも理由はわかりません。








All Articles