From d413e2d6e5b8ae2e803587bc7bae5d4eb58efcb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?KMY=EF=BC=88=E9=9B=AA=E3=81=82=E3=81=99=E3=81=8B=EF=BC=89?= Date: Mon, 8 Jul 2024 10:32:14 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20=E3=82=BB=E3=83=83=E3=83=88=E3=82=A2?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88?= =?UTF-8?q?=E3=80=80=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B313.0?= =?UTF-8?q?=E3=82=92develop=E3=83=96=E3=83=A9=E3=83=B3=E3=83=81=E3=81=AB?= =?UTF-8?q?=E5=8F=8D=E6=98=A0=20(#777)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/13.0/setup-imagemagick-7.sh | 82 +++++++++++ install/13.0/setup1.sh | 209 ++++++++++++++++++++++++++++ install/13.0/setup2.sh | 68 +++++++++ 3 files changed, 359 insertions(+) create mode 100644 install/13.0/setup-imagemagick-7.sh create mode 100755 install/13.0/setup1.sh create mode 100644 install/13.0/setup2.sh diff --git a/install/13.0/setup-imagemagick-7.sh b/install/13.0/setup-imagemagick-7.sh new file mode 100644 index 00000000000000..6a769001ddc40e --- /dev/null +++ b/install/13.0/setup-imagemagick-7.sh @@ -0,0 +1,82 @@ + +cat << EOF + +================ [imagemagick 7 setup script] ==================== +Remove old ImageMagick + +EOF + +apt remove -y imagemagick +apt autoremove -y + +cat << EOF + +================ [imagemagick 7 setup script] ==================== +Download source + +EOF + +git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick +cd ImageMagick +git checkout $(git tag -l | grep -E '^7' | sort -V | tail -n 1) + +cat << EOF + +================ [imagemagick 7 setup script] ==================== +Install dependent packages + +EOF + +apt update +apt install -y \ + libjpeg-dev libpng-dev libpng16-16 libltdl-dev libheif-dev libraw-dev libtiff-dev libopenjp2-tools \ + libopenjp2-7-dev libjpeg-turbo-progs libfreetype6-dev libheif-dev libfreetype6-dev libopenexr-dev \ + libwebp-dev libgif-dev + +cat << EOF + +================ [imagemagick 7 setup script] ==================== +Configure + +EOF + +./configure --with-modules --enable-file-type --with-quantum-depth=32 --with-jpeg=yes --with-png=yes \ + --with-gif=yes --with-webp=yes --with-heic=yes --with-raw=yes --with-tiff=yes --with-openjp2 \ + --with-freetype=yes --with-webp=yes --with-openexr=yes --with-gslib=yes --with-gif=yes --with-perl=yes \ + --with-jxl=yes + +cat << EOF + +================ [imagemagick 7 setup script] ==================== +Make + +EOF + +make + +cat << EOF + +================ [imagemagick 7 setup script] ==================== +Make install + +EOF + +make install +ldconfig /usr/local/lib + +cat << EOF + +=========== [imagemagick 7 setup script completed] =============== +ImageMagick 7 setup is completed! +Please check AVIF format on your Mastodon. + +To check ImageMagick version: + exec bash + convert -version + +Or + sudo su - mastodon + convert -version + +EOF + diff --git a/install/13.0/setup1.sh b/install/13.0/setup1.sh new file mode 100755 index 00000000000000..e5e248fcf550d8 --- /dev/null +++ b/install/13.0/setup1.sh @@ -0,0 +1,209 @@ +VERSION=13.0 + +cat << EOF + +Hello, new kmyblue admin. + +================== [kmyblue setup script 1] ====================== +INPUT kmyblue version for install + + - lts : [RECOMMENDED] The long time support version + - latest: The latest version + + - debug : [deprecated] The version in development + - abort : Abort the setup script + +EOF + +KMYBLUE_VERSION=unset +until [ "$KMYBLUE_VERSION" == "lts" ] || [ "$KMYBLUE_VERSION" == "latest" ] || [ "$KMYBLUE_VERSION" == "debug" ] || [ "$KMYBLUE_VERSION" == "abort" ] +do + echo -n "kmyblue version for install [lts/latest/debug/abort]: " + read KMYBLUE_VERSION +done + +if [ "$KMYBLUE_VERSION" == "abort" ]; then + echo Good bye. + exit +fi + +cat << EOF + +================== [kmyblue setup script 1] ====================== +apt updates and upgrades + +EOF + +apt update && apt upgrade -y + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Install basis softwares + +EOF + +apt install -y curl wget gnupg apt-transport-https lsb-release ca-certificates + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Install Node.js + +EOF + +# Node.js +curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg +echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list +sudo apt-get update && sudo apt-get install nodejs -y + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Install PostgreSQL + +EOF + +# PostgreSQL +wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc +echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Install packages + +EOF + +# 必要なパッケージをまとめてインストール +apt update +apt install -y \ + imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \ + g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \ + bison build-essential libssl-dev libyaml-dev libreadline6-dev \ + zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \ + nginx redis-server redis-tools postgresql postgresql-contrib \ + certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Initialize yarn + +EOF + +corepack enable +yarn set version classic + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Install requested package + +EOF + +# Mastodonパッケージにもnode-gypは入ってるけど、npmのほうからグローバルにインストールしないと +# yarn installで一部のOptionalパッケージインストール時にエラーが出てしまう様子 +npm i -g node-gyp + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Add mastodon user + +Input user information (No need to type) + +EOF + +# mastodonユーザーを追加 +adduser --disabled-login mastodon + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Create PostgreSQL mastodon user + +EOF + +# PostgreSQLにmastodonユーザーを追加 +sudo -u postgres psql << EOF + CREATE USER mastodon WITH PASSWORD 'ohagi' CREATEDB; +EOF + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Download kmyblue + +EOF + +# kmyblueソースコードをダウンロード +# 続きのシェルスクリプトをgit管理外にコピーし権限を与える +su - mastodon <> ~/.bashrc +echo 'eval "\$(rbenv init -)"' >> ~/.bashrc +EOF + +cat << EOF + +================== [kmyblue setup script 1] ====================== +Copy setting files and services + +EOF + +# これを設定しておかないと、Web表示時にNginxがPermission Errorを起こす +chmod o+x /home/mastodon + +# 必要なファイルをコピー +cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon +ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon +cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/ +systemctl daemon-reload + +# --------------------------------------------------- + +cat << EOF + +============== [kmyblue setup script 1 completed] ================ + +Input this command to continue setup: + sudo su - mastodon + ./setup2.sh + +EOF diff --git a/install/13.0/setup2.sh b/install/13.0/setup2.sh new file mode 100644 index 00000000000000..96d2309de7a955 --- /dev/null +++ b/install/13.0/setup2.sh @@ -0,0 +1,68 @@ +cat << EOF + +================== [kmyblue setup script 2] ====================== +Install Ruby + +EOF + +git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build +RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install $(cat /home/mastodon/live/.ruby-version) +rbenv global $(cat /home/mastodon/live/.ruby-version) + +cat << EOF + +================== [kmyblue setup script 2] ====================== +Install Ruby bundler + +EOF + +gem install bundler --no-document + +cd ~/live + +cat << EOF + +================== [kmyblue setup script 2] ====================== +Install yarn packages + +EOF + +yarn install + +cat << EOF + +================== [kmyblue setup script 2] ====================== +Install bundle packages + +EOF + +bundle config deployment 'true' +bundle config without 'development test' +bundle install -j$(getconf _NPROCESSORS_ONLN) + +# --------------------------------------------------- + +cat << EOF + +============== [kmyblue setup script 2 completed] ================ + +PostgreSQL and Redis are now available on localhost. + +* PostgreSQL + host : /var/run/postgresql + user : mastodon + database : mastodon_production + password : ohagi + +* Redis + host : localhost + password is empty + +[IMPORTANT] Check PostgreSQL password before setup! + +Input this command to finish setup: + cd live + RAILS_ENV=production bundle exec rake mastodon:setup + +EOF +