diff --git a/.env.example b/.env.example index ce94736..d1876d1 100644 --- a/.env.example +++ b/.env.example @@ -9,3 +9,33 @@ MARIADB_PASSWORD=password # パスワード MARIADB_TIME_ZONE=Azia/Tokyo # タイムゾーン PUBLIC_MARIADB_PORT=3306 # 配信ポート # 外部にMariaDBを公開しない場合は不要 +# uwuzu +## 自動ダウンロードを使用しない場合UWUZU_*の項目は全て必要ありません。 +## 自動ダウンロードを使用する場合もデフォルト値とこのサンプル値は一致しており、その値は設定しない場合も正常に自動ダウンロードが可能です。 +## プラグインのダウンロード先の変更やバージョンの指定などに使用してください。 + +## uwuzu自動ダウンロード +### ${UWUZU_SOURCE_URL}/${UWUZU_SOURCE_TAG}/${UWUZU_SOURCE_FILENAME}のZIPファイルを自動ダウンロードします。 +### リリースタグとファイル名を変更することでuwuzuのバージョンを指定できます。 +UWUZU_SOURCE_TAG=v1.6.6 # uwuzuのリリースタグ +UWUZU_SOURCE_URL=https://github.com/Daichimarukana/uwuzu/releases/download # uwuzuのZIPファイルのベースパス +UWUZU_SOURCE_FILENAME=uwuzu166.zip # uwuzuのリリースでアセットに設定されているZIPファイルのファイル名 + +## プラグイン自動ダウンロード + +### PHPMailer +#### ${UWUZU_PLUGIN_PHPMAILER_URL}/${UWUZU_PLUGIN_PHPMAILER_FILENAME}のリリースアーカイブを自動ダウンロードします。 +UWUZU_PLUGIN_PHPMAILER_URL=https://github.com/PHPMailer/PHPMailer/archive/refs/tags +UWUZU_PLUGIN_PHPMAILER_FILENAME=v7.0.1.zip + +### AIBlockWaterMark +#### ${UWUZU_PLUGIN_WATERMARK_URL}/${UWUZU_PLUGIN_WATERMARK_TAG}/${UWUZU_PLUGIN_WATERMARK_FILENAME}のZIPファイルを自動ダウンロードします。 +UWUZU_PLUGIN_WATERMARK_TAG=v1.0.0 +UWUZU_PLUGIN_WATERMARK_URL=https://github.com/Daichimarukana/uwuzu-AIBlockWaterMark/releases/download +UWUZU_PLUGIN_WATERMARK_FILENAME=AIBlockWaterMark.zip + +### AWS SDK for PHP(S3/S3互換オブジェクトストレージ用) +#### ${UWUZU_PLUGIN_OBJECTSTG_URL}/${UWUZU_PLUGIN_OBJECTSTG_TAG}/${UWUZU_PLUGIN_OBJECTSTG_FILENAME}のZIPファイルを自動ダウンロードします。 +UWUZU_PLUGIN_OBJECTSTG_TAG=3.367.2 +UWUZU_PLUGIN_OBJECTSTG_URL=https://github.com/aws/aws-sdk-php/releases/download +UWUZU_PLUGIN_OBJECTSTG_FILENAME=aws.zip \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8882573..a65b41a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ -.env -src/ - +/.env* +!/.env.example +/src/** +!/src/.source-flag \ No newline at end of file diff --git a/README.md b/README.md index 4ff84cd..190da1f 100644 --- a/README.md +++ b/README.md @@ -32,10 +32,21 @@ uwuzu: # 使い方 ## 構築 +2つの方法がありますが、どちらの場合も絶対にホスト側の/src/.source-flagを削除しないでください。(コンテナ内では自動的に削除されます) +uwuzu for Docker ComposeではGitやDockerfileの都合で.source-flagを必要とし、/srcのファイル/ディレクトリ数を参照して自動ダウンロードを判断します。 +.source-flagを含めたsrcフォルダのファイル/ディレクトリ数が1つ以下の場合に自動ダウンロードを実行する仕様です。 + +### 自動ダウンロードを使用する +0. `/.env.exaple`のコメントに従って`/.env`を作成。 +1. `/php/apache2.conf`、`/php/php.ini`を適宜変更。 +2. プロジェクトルートで`docker-compose build`を実行。 +以降は[独自のソースコード(改変uwuzu)を使用する](#独自のソースコード(改変uwuzu)を使用する)の手順5から同等ですのでそちらをご確認ください。 + +### 独自のソースコード(改変uwuzu)を使用する 0. `/.env.example`のコメントに従って`/.env`を作成。 1. `/src/`以下に[uwuzuのリポジトリで配布されているZIPファイル](https://github.com/Daichimarukana/uwuzu/releases)を展開。 -2. `/php/apache2.conf`を適宜変更。 -3. プロジェクトルートで`docker-compose build --no-cache`を実行。 +2. `/php/apache2.conf`、`/php/php.ini`を適宜変更。 +3. プロジェクトルートで`docker-compose build`を実行。 4. `docker-compose up`でuwuzu及びMariaDBが起動します。 5. ブラウザでuwuzuの`/admin`に移動し初期設定を行います。 6. uwuzuの表示に従って初期設定を進めます。 @@ -49,7 +60,8 @@ uwuzu: ## アップデート ※1: 飛び級アップデートは利用できません。リリース順にアップデートしてください。 -※2: アップデート後にuwuzuが破損する可能性があるためバックアップをしてから行ってください。 +※2: アップデート後にuwuzuが破損する可能性があるためバックアップをしてから行ってください。 +※3: .envの`UWUZU_SOURCE_TAG`/`UWUZU_SOURCE_FILENAME`はビルドする際のものです。 0. [uwuzuのリリースノート](https://docs.uwuzu.com/docs/aboutuwuzu/releasenote)を参照し変更が必要な対応を行ってください。 1. [uwuzuのリリース](https://github.com/Daichimarukana/uwuzu/releases)を参照し対象のバージョンのZIPファイルをダウンロード。 diff --git a/docker-compose.yml b/docker-compose.yml index 17be398..4b66925 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,18 @@ services: build: context: . dockerfile: ./php/Dockerfile + args: + - UWUZU_SOURCE_TAG=${UWUZU_SOURCE_TAG} + - UWUZU_SOURCE_URL=${UWUZU_SOURCE_URL} + - UWUZU_SOURCE_FILENAME=${UWUZU_SOURCE_FILENAME} + - UWUZU_PLUGIN_PHPMAILER_URL=${UWUZU_PLUGIN_PHPMAILER_URL} + - UWUZU_PLUGIN_PHPMAILER_FILENAME=${UWUZU_PLUGIN_PHPMAILER_FILENAME} + - UWUZU_PLUGIN_WATERMARK_TAG=${UWUZU_PLUGIN_WATERMARK_TAG} + - UWUZU_PLUGIN_WATERMARK_URL=${UWUZU_PLUGIN_WATERMARK_URL} + - UWUZU_PLUGIN_WATERMARK_FILENAME=${UWUZU_PLUGIN_WATERMARK_FILENAME} + - UWUZU_PLUGIN_OBJECTSTG_TAG=${UWUZU_PLUGIN_OBJECTSTG_TAG} + - UWUZU_PLUGIN_OBJECTSTG_URL=${UWUZU_PLUGIN_OBJECTSTG_URL} + - UWUZU_PLUGIN_OBJECTSTG_FILENAME=${UWUZU_PLUGIN_OBJECTSTG_FILENAME} container_name: uwuzu-web ports: - "${PUBLIC_PORT}:80" diff --git a/php/Dockerfile b/php/Dockerfile index 2217879..0c097de 100644 --- a/php/Dockerfile +++ b/php/Dockerfile @@ -4,11 +4,25 @@ FROM php:8.2-apache # Set working directory WORKDIR /var/www/html +# Load args +ARG UWUZU_SOURCE_TAG=v1.6.6 +ARG UWUZU_SOURCE_URL=https://github.com/Daichimarukana/uwuzu/releases/download +ARG UWUZU_SOURCE_FILENAME=uwuzu166.zip +ARG UWUZU_PLUGIN_PHPMAILER_URL=https://github.com/PHPMailer/PHPMailer/archive/refs/tags +ARG UWUZU_PLUGIN_PHPMAILER_FILENAME=v7.0.1.zip +ARG UWUZU_PLUGIN_WATERMARK_TAG=v1.0.0 +ARG UWUZU_PLUGIN_WATERMARK_URL=https://github.com/Daichimarukana/uwuzu-AIBlockWaterMark/releases/download +ARG UWUZU_PLUGIN_WATERMARK_FILENAME=AIBlockWaterMark.zip +ARG UWUZU_PLUGIN_OBJECTSTG_TAG=3.367.2 +ARG UWUZU_PLUGIN_OBJECTSTG_URL=https://github.com/aws/aws-sdk-php/releases/download +ARG UWUZU_PLUGIN_OBJECTSTG_FILENAME=aws.zip + # Run as root USER root # Install packages(apt) RUN apt-get update +RUN apt-get install -y wget RUN apt-get install -y dos2unix RUN apt-get install -y libwebp-dev RUN apt-get install -y libpng-dev @@ -25,6 +39,45 @@ RUN rm -rf /var/lib/apt/lists/* # Copy app COPY src/ /var/www/html/ + +# Auto download +RUN if [ -d /var/www/html ]; then \ + count=$(find /var/www/html -mindepth 1 -maxdepth 1 | wc -l); \ + if [ "$count" -le 1 ]; then \ + # uwuzu + wget -O uwuzu.zip ${UWUZU_SOURCE_URL}/${UWUZU_SOURCE_TAG}/${UWUZU_SOURCE_FILENAME}; \ + unzip uwuzu.zip; \ + rm -f uwuzu.zip; \ + # Plugins + cd plugin; \ + ## Mailer + wget -O mailer.zip ${UWUZU_PLUGIN_PHPMAILER_URL}/${UWUZU_PLUGIN_PHPMAILER_FILENAME}; \ + unzip mailer.zip; \ + mv PHPMailer-* PHPMailer; \ + rm -f mailer.zip; \ + ## AIBlockWaterMark + mkdir AIBlockWaterMark; \ + cd AIBlockWaterMark; \ + wget -O watermark.zip ${UWUZU_PLUGIN_WATERMARK_URL}/${UWUZU_PLUGIN_WATERMARK_TAG}/${UWUZU_PLUGIN_WATERMARK_FILENAME}; \ + unzip watermark.zip; \ + rm -f watermark.zip; \ + cd ..; \ + ## Object Storage + mkdir aws; \ + cd aws; \ + wget -O aws.zip ${UWUZU_PLUGIN_OBJECTSTG_URL}/${UWUZU_PLUGIN_OBJECTSTG_TAG}/${UWUZU_PLUGIN_OBJECTSTG_FILENAME}; \ + unzip aws.zip; \ + rm -f aws.zip; \ + cd ..; \ + ## Change Directory + cd ..; \ + fi; \ + fi + +# Remove flag +RUN rm -f .source-flag + +# Change line break code RUN find /var/www/html -type f -exec dos2unix {} \; # Install PHP extensions diff --git a/src/.source-flag b/src/.source-flag new file mode 100644 index 0000000..e69de29