サーバーに設置しておくと管理が楽になる「server-desktop」

2018年9月21日

Tool テクノロジー プログラミング

クラウドサーバーなどを使っている人は、GUIが無くて困っている初心者サーバーエンジニアの人もいるかと思いますが、ちょっと前にそうした場合に簡単にサーバーにGUIデスクトップを設置できれば便利なのにな〜と考えて作ったツールを紹介します。 UbuntuやCentOSなどでGUIを使っている人はまったく意味のないツールですが、GUIをインストールして、無駄なリソースを消費するのが嫌な人にとってはもしかすると便利に使えるかもしれないので、興味のある人は設置してみてください。 ちなみに、今回のツールは、Linux + PHPで簡単に構築できるようにしているので、数ファイルをサーバーにアップロードすれば完了になります。 ※個別のサーバー設定は今回は割愛します。

どんなツール?何ができるの?

スクリーンショットはこんな感じで、WEBブラウザで、サーバーのファイルやディレクトリをGUIのように可視化するツールです。 ここで大体のファイル操作ができるようにしていますが、デスクトップに直接置いてあるフォルダは、index.htmlに記述する仕様にしています。 そもそも、このツールは、サーバーにデータをアップロードするのが非常にめんどくさくて、GUIで簡単にできないかと考えて作って置いたのですが、ブラウザにファイルをドラッグ&ドロップしてアップロードできるようにしているので、macやwindowsのデスクトップから直接アップロードできて、便利に使えますよ。 注意点としては、アクセスに認証をつけていないので、公開サーバーに設置する場合は、ベーシック認証などをつけておかないと、簡単にデータ漏洩してしまいます。

ソースと解析

ソースコード一式はgithubにアップしているので、cloneして使って見てください。 https://github.com/yugeta/server_desktop READMEをちゃんと書いていないので、このブログで簡単に解説します。 基本的に、モジュール構成はHTMLとJavascriptとアップロード用のPHPファイルで構成しています。 常駐するモジュールはないので、サーバーリソースを占有することはありません。 自分の素人時代に作ったものなので、ソースコードもゴミがあったり、無駄なライブラリファイルが混在していますが、そこはご愛嬌でお願いします。 構造としては、htmlでデスクトップを再現していて、ajaxを使ってサーバーの任意フォルダの内容リストをPHP経由で返しています。 たかがこれだけなんですが、GUIって作業スピードの向上など、利点が多いですよね。

使い方

デスクトップの本体は「index.html」になっているので、ここにデスクトップに設置するフォルダを記述します。 <div class='icon'> <div class='property'> type:'folder', dir:'/', </div> <img src='img/home.png'> <div class='dir_name'>Root</div> </div> フォルダ1つを参考にすると、以下のような仕様にしています。
type : タイプは「folder」「file」「trash」などがあります。 dir : そのフォルダのリンク先 file : img : 表示するアイコンのファイル名(削除した場合はfolderで表示されます) name : アイコンの表示用名前
自分が作業するフォルダを登録しておくと、このページを開いてファイルをそのままGUIでアップロードできるようになるので、作業が捗ります。 ちなみに、テキストファイルなどであれば、開いて編集して保存できる機能はつけてあるので、簡単な更新などは便利に使えるでしょうね。

今後の改良ポイント

sFTPを使っていれば、この環境ってあんまり使わない・・・という事もあって、必須ツールというわけではないのですが、このツールを使って更新されたデータは、GIT管理されるとか、バックアップデータを常に保持するようにすると、もしもの操作ミスの時に、巻き戻せるという事も可能ですね。 他にも、サーバーコマンドなどをGUIでできるようにしておくと、さらに効率アップになることは間違い無いでしょう。 こうしたツールは、ものぐさエンジニアの人がつくりがちなので、こういうところに色々なヒントがあるということを改めて感じてしまいました。 モノグササイコー!!!

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。