数日使ってみました.
GitHub – gearsns/TxtMiruOnTheWeb: ブラウザ上でネット小説「小説家になろう」、「カクヨム」、「青空文庫」を縦組み表示にして読むことができます。
一部気になる点もありますが,ほとんど問題なく使えました.気になった部分もなれれば問題ないのかなと.
ということで,使い始めるまでの設定を忘備録として残しておきます.
最低限必要なものは,お気に入り機能を使うかどうかで変わってきます.使わないのであれば必要なものは特にありません.TxtMiru on the Web – 縦書き小説ビューア –にアクセスしてURLを打ち込めば終わりです.
で,次にお気に入りを使いたい人はTxtMiru on the Web – 縦書き小説ビューア –にアクセスして設定からお気に入りに使うスプレッドシートを指定するだけなので,スプレッドシートの準備を以下に書きますね.
- Googleスプレッドシートを新しく作る.シート1の名前を解りやすい名前に変える(例:0001など)拡張機能からApps Scriptをクリックする.
- App Scriptの無題のプロジェクトができるので,「function myFunction() {」の関数内に(次の行に)TxtMiruOnTheWeb/ActionScript.js at main · gearsns/TxtMiruOnTheWeb · GitHubの内容をコピペする.
- シート番号って所があるので,それを先ほど作ったスプレッドシートのURL内に含まれる,docs.google.com/spreadsheets/d/(この部分)/edit#gid=0,(この部分)をコピペする.
- プロジェクトに戻って,デプロイから「新しいデプロイ」を作る.
- 種類の選択の横にある歯車から,ウェブアプリを選択して「デプロイ」をすると,URLが作られる.こんなやつ→https://script.google.com/macros/s/(ほげほげ)/exec
- このURLをTxtMiruOnTheWebの設定にある「WebサーバーのURL」に貼り付ける.
- 「ユーザーID」にGoogleスプレッドシートのページ1を改名した名前を入れる(例:0001)
上記の設定でお気に入りを使えるようになります.ただ,この設定はブラウザに保存されるものなので,使う末端それぞれでURLとIDを設定してください.
さて,続いて,TxtMiruOnTheWeb本体も自分のサーバーで動かす方法です.
githubで公開していただいているので,それを自分のサーバーに入れてみました.完全に余談です.
さて,どうしようかと思ったんですが,dockerでコンテナを作ることにしました.といっても,素人なので今はやりのchatGPTに聞きながらサクッと作りました.
では,まず,Dockerfileです.
# ベースイメージとしてAlpine Linuxを選択
FROM alpine:latest
# 必要なパッケージをインストール
RUN apk update && apk add --no-cache \
apache2 \
curl \
git \
tar \
nodejs \
npm
# Node.jsのライブラリをインストール
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
# アプリケーションのソースコードを一時ディレクトリにクローン
WORKDIR /tmp
RUN git clone https://github.com/gearsns/TxtMiruOnTheWeb.git
# 「シート番号」を(この部分)に置き換える
RUN sed -i 's/シート番号/(この部分)/g' ./TxtMiruOnTheWeb/server/ActionScript.js
# クローンしたコンテンツをApacheのドキュメントルートに移動
RUN mv ./TxtMiruOnTheWeb/* /var/www/localhost/htdocs/
# アパッチの設定
EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
続いて,package.jsonを作ります.依存性の解決のためらしい.詳しくは知らない.
{
"name": "your-app-name",
"version": "1.0.0",
"description": "Your app description",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"dexie": "^3.0.3",
"encoding-japanese": "^1.0.30",
"jszip": "^3.7.1"
}
}
そして,docker-compose.ymlをつくる.
version: '3'
services:
txtmiru:
image: txtmiru
#ports:
#- "80:80"
restart: unless-stopped
networks:
proxy-network:
aliases:
- txtmiru.exmaple.com
environment:
- VIRTUAL_HOST=txtmiru.example.com
- VIRTUAL_PORT=80
- LETSENCRYPT_HOST=txtmiru.example.com # Let's Encryptのホスト設定 ※本番ではlocalhost部分を「example.com,www.example.com」>等にする
- LETSENCRYPT_EMAIL=example@gmail.com # Let's Encryptのメール設定
- HTTPS_METHOD=noredirect
networks:
proxy-network:
external: true
注意点を.https化するためのコンテナを噛ましてるので,ポートをコメントアウトして,proxyのコンテナを経由して公開しているので上記の設定になっています.
普通に公開するだけなら,environmentの項目とnetworksを消して,ポートのコメントアウトを外してもらえば動くかと思います.たぶん.
責任はとらないのであしからず.