├── .dockerignore ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── dip.yml ├── docker-compose.yml └── init.sh /.dockerignore: -------------------------------------------------------------------------------- 1 | .narou 2 | .narousetting 3 | 小説データ 4 | trace_dump.txt 5 | mail_setting.yaml 6 | .sass-cache 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .narou 2 | .narousetting 3 | 小説データ 4 | trace_dump.txt 5 | mail_setting.yaml 6 | .sass-cache 7 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ruby:2.7.0-alpine 2 | 3 | LABEL maintainer "whiteleaf <2nd.leaf@gmail.com>" 4 | 5 | ENV NAROU_VERSION 3.5.1 6 | ENV AOZORAEPUB3_VERSION 1.1.0b55Q 7 | ENV AOZORAEPUB3_FILE AozoraEpub3-${AOZORAEPUB3_VERSION} 8 | ENV KINDLEGEN_FILE kindlegen_linux_2.6_i386_v2_9.tar.gz 9 | 10 | WORKDIR /temp 11 | 12 | RUN set -x \ 13 | # install AozoraEpub3 14 | && wget https://github.com/kyukyunyorituryo/AozoraEpub3/releases/download/${AOZORAEPUB3_VERSION}/${AOZORAEPUB3_FILE}.zip \ 15 | && unzip -q ${AOZORAEPUB3_FILE} \ 16 | && mv ${AOZORAEPUB3_FILE} /aozoraepub3 \ 17 | # install openjdk11 18 | && apk --no-cache add openjdk11 --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community \ 19 | # install kindlegen 20 | && wget http://kindlegen.s3.amazonaws.com/${KINDLEGEN_FILE} \ 21 | && tar -xzf ${KINDLEGEN_FILE} \ 22 | && mv kindlegen /aozoraepub3 \ 23 | # install Narou.rb 24 | && apk --update --no-cache --virtual .build-deps add \ 25 | build-base \ 26 | make \ 27 | gcc \ 28 | && gem install narou -v ${NAROU_VERSION} --no-document \ 29 | && apk del --purge .build-deps \ 30 | # setting AozoraEpub3 31 | && mkdir .narousetting \ 32 | && narou init -p /aozoraepub3 -l 1.8 \ 33 | && rm -rf /temp 34 | 35 | WORKDIR /novel 36 | 37 | COPY init.sh /usr/local/bin 38 | RUN chmod +x /usr/local/bin/init.sh 39 | 40 | EXPOSE 33000-33001 41 | 42 | ENTRYPOINT ["init.sh"] 43 | CMD ["narou", "web", "-np", "33000"] 44 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2020 whiteleaf. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Narou.rb Docker Image 2 | 3 | Narou.rb を Docker で実行するための Docker Image です。
4 | Docker さえあれば一切環境構築なしで Narou.rb WEB UI を立ち上げることができます。 5 | 6 | Narou.rb 作者製です。
7 | ~~最新バージョンへの追随は本体とほぼ同時に行う予定です。~~
8 | Linux 版の kindlegen の配布が終了してしまったため、現在更新停止中です。 9 | 10 | イメージ内容は下記で構成されます。 11 | 12 | - Alpine Linux 13 | - Ruby 2.7 14 | - [改造版AozoraEpub3](https://github.com/kyukyunyorituryo/AozoraEpub3) 15 | - kindlegen 2.9 16 | 17 | # 使い方(docker コマンド編) 18 | 19 | docker コマンドで直接コンテナを立ち上げます。
20 | コマンドが長いのでエイリアスを切ったりしましょう。
21 | 後述する docker-compose でやったほうが正直楽です。 22 | 23 | コマンドを実行したフォルダが小説管理用のフォルダになるので移動しておきます。 24 | 25 | ```sh 26 | $ mkdir ~/novel && cd $_ 27 | $ docker run --rm -it -p 127.0.0.1:33000-33001:33000-33001 -v $(pwd):/novel:cached whiteleaf/narou 28 | ``` 29 | 30 | docker から始まるコマンド1行で WEB UI が起動します。
31 | http://localhost:33000/ にアクセスしてください。 32 | 33 | ポートを変える場合、前半部分の 33000-33001 部分を変更するだけでOKです。
34 | 例えば 8000 ポートに変える場合は -p 127.0.0.1:8000-8001:33000-33001 と 35 | 指定してください(websocket 用のポートのために +1 したポートも併記する必要があります) 36 | 37 | # 使い方(docker-compose 編) 38 | 39 | docker-compose のほうが楽なので、こちらを推奨します。
40 | ただし、設定ファイルを1つ用意する必要があります。 41 | 42 | コマンドを実行したフォルダが小説管理用のフォルダになるので移動しておきます。 43 | 44 | ```sh 45 | $ mkdir ~/novel && cd $_ 46 | ``` 47 | 48 | 下記の内容を docker-compose.yml という名前でを同じフォルダに用意します。 49 | 50 | ```yml 51 | version: "3.7" 52 | 53 | services: 54 | app: 55 | image: whiteleaf/narou 56 | command: ["narou", "web", "-np", "33000"] 57 | volumes: 58 | - .:/novel:cached 59 | tty: true 60 | stdin_open: true 61 | ports: 62 | - "127.0.0.1:33000-33001:33000-33001" 63 | ``` 64 | 65 | ファイルを用意したら下記コマンドを打ちます。 66 | 67 | ```sh 68 | $ docker-compose up 69 | ``` 70 | 71 | 自動的に WEB UI が起動します。
72 | http://localhost:33000/ にアクセスしてください。 73 | 74 | ポートを変える場合は docker コマンドと同様に ports の項の前半部分を変更してください。 75 | # イメージを更新する 76 | 77 | ```sh 78 | $ docker pull whiteleaf/narou 79 | ``` 80 | 81 | 更新がある場合、上記コマンドで環境を最新にできます 82 | 83 | # CUI としてコマンドを使いたい場合 84 | 85 | ## docker で直接使う 86 | 87 | ```sh 88 | $ docker run --rm -it -v $(pwd):/novel:cached whiteleaf/narou narou list 89 | ``` 90 | 91 | ## docker-compose で使う 92 | 93 | ```sh 94 | docker-compose run --rm app narou list 95 | ``` 96 | 97 | おまけ
98 | [dip](https://github.com/bibendi/dip) を使うと便利です 99 | 100 | dip.yml として下記を用意して、 101 | ```yml 102 | version: "4" 103 | interaction: 104 | narou: 105 | description: Run narou command 106 | service: app 107 | command: narou 108 | ``` 109 | 110 | ```sh 111 | $ dip narou list 112 | 113 | # docker-compose up と同じ 114 | $ dip up 115 | 116 | # 下記を実行すると、narou コマンドを透過的に実行出来る様になる 117 | $ eval "$(dip console)" 118 | $ narou list 119 | ``` 120 | -------------------------------------------------------------------------------- /dip.yml: -------------------------------------------------------------------------------- 1 | version: '4' 2 | interaction: 3 | narou: 4 | description: Run narou command 5 | service: app 6 | command: narou 7 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.7" 2 | 3 | services: 4 | app: 5 | build: . 6 | image: narou 7 | command: ["narou", "web", "-np", "33000"] 8 | volumes: 9 | - .:/novel:cached 10 | tty: true 11 | stdin_open: true 12 | ports: 13 | - "127.0.0.1:33000-33001:33000-33001" 14 | -------------------------------------------------------------------------------- /init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ ! -e /novel/.narou ]; then 4 | mkdir .narou 5 | mkdir -p .narousetting 6 | { 7 | echo "---"; 8 | echo 'aozoraepub3dir: "/aozoraepub3"'; 9 | echo 'over18: true'; 10 | echo 'server-port: 33000'; 11 | echo 'server-bind: 0.0.0.0'; 12 | } | tee .narousetting/global_setting.yaml 13 | 14 | { 15 | echo "---"; 16 | echo "already-server-boot: true"; 17 | } | tee .narousetting/server_setting.yaml 18 | 19 | narou s convert.no-open=true 20 | narou s device=kindle 21 | fi 22 | 23 | exec "$@" 24 | --------------------------------------------------------------------------------