Linuxサーバーで自作WEBアプリを管理する

GolangのWebパッケージginを用いて作ったWEBアプリをLinuxサーバーで公開するためのメモ。ポートとかの話の続きです。

今回はアプリ永続化のための部分。

一度実行したらアップデートなどで止めるまで動き続けてくれるようにします。

Linux環境: Ubuntu 16.04.5

続きを読む Linuxサーバーで自作WEBアプリを管理する

【GO】WordPress(Apache)とginを同時に動かす

bitnamiのwordpressが動いているサーバーにgolangのWEBサービスを追加します。

アプリ自体は8080ポートで実行してサブディレクトリにマップする形です。

Apacheで他WEBサーバーを動かす場合も同様のやり方で行けると思います。

続きを読む 【GO】WordPress(Apache)とginを同時に動かす

【GO】ginで作ったWEBサービスを利用可能にする

LinuxサーバーでWEBアプリを公開する際のメモ。

単体で公開したり、ポートを分けて公開したり、サブディレクトリで公開したり。

続きを読む 【GO】ginで作ったWEBサービスを利用可能にする

【GO】html/templateにタグ入り文字列を渡す

template/htmlを使ってHTML表示を行う時、テンプレートの一部の表示方法を変えたいときがあります。

変えたい部分だけ変えたテンプレートを複数用意する方法もありますが、面倒というか煩雑になるのでパース部分に直接HTMLタグを書いて変更させたい。

そのままやるとタグ部分が文字列になったのでその対策方法メモ。

Execute部分などはgin-gonic/ginを使っているので省略。

続きを読む 【GO】html/templateにタグ入り文字列を渡す

【GO】gin + statikのシングルバイナリファイルサーバ

ginでシングルバイナリからファイルサーブすることを考えた。

用途を考えるとシングルバイナリ化する利点はあまりないこともあり、標準メソッドだけではできなかったので実装メモです。

以前に書いた記事も参考にした。

statikの使い方

statikパッケージを使うとフォルダをZIP化(バイナリ化)してhttp.FileSystemとして扱えるようになる。

ginのstaticFS

ファイルシステムの静的ファイルをサーブできるメソッド。

これが一番簡単だけどルートアクセスに設定できません。

static middleware(github

ミドルウェアを使うことでルートに設定可能です。

これをstatikで使えるようにします。

Serveの第2引数はServeFileSystemなのでインターフェースを満たす必要がある。

 

Existsメソッドが必要そうなのでミドルウェアの実装から必要なものを抜き出して実装してみます。

これでルートからでもファイルサーブできるようになった。

javascriptでメタタグの作成と編集

HTMLヘッダ内のメタタグ(<meta name="" content="">)を編集(ない場合は作成も)をするスクリプトを書いてみました。

以前にOGPなどの外部表示設定を確認したのでスクリプトで動的に変えてみたかったのが理由です。

ただツイッターなどのサービスではOGPのためのアクセスでスクリプト実行までしてなさそうなので、サーバーサイドで書き換える必要があります。

なので今回のスクリプトはnode.js向け、あるいはタイトルのみの編集向けです。

続きを読む javascriptでメタタグの作成と編集

ReactでDataTablesを使う

Reactアプリ内でjQueryプラグインのDataTables.jsを使うためのメモ。

ReactとjQueryはあまり相性が良くないので$は最低限使うだけです。

合わせて使う方法からコンポーネント化まで。

続きを読む ReactでDataTablesを使う

【GO】gin+Reactのルーティング

Golang製Web Framework「gin」とjavascriptライブラリ「React」を合わせてウェブサービスを作ることを考えます。

ルーティング部分でちょっと詰まったので覚書き。

続きを読む 【GO】gin+Reactのルーティング

【GO】ginのシングルバイナリにtemplateを含める

前にginを使ったWEBアプリをシングルバイナリ化をする場合、テンプレートを含めるなら別途実装が必要になると書いた。

現在はgolangでフロント部分を書かない方針だけど、そのうち必要になるかもしれないのでフォルダ内のテンプレートを一括で読むくらいの処理を書いてみました。

具体的にはginのLoadHTMLGlobの置き換えです。

続きを読む 【GO】ginのシングルバイナリにtemplateを含める