|
echo 'Auto Misskey Innstaller @[email protected]' |
|
echo 'please enter hostname:' |
|
read input |
|
if [ -z $input ] ; then |
|
echo "Please enter hostname." |
|
exit; |
|
else |
|
echo "hostname: $input" |
|
echo 'updating...' |
|
sudo apt update |
|
echo 'Download require packages...' |
|
sudo apt install -y curl ca-certificates gnupg2 lsb-release |
|
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg |
|
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list |
|
sudo apt install postgresql redis-server build-essential python3 vim git -y |
|
sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15 |
|
echo 'setup database...' |
|
sudo -u postgres psql postgres -c "CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'RANDOMPASSWORDM1sske1';" |
|
sudo -u postgres psql postgres -c "CREATE DATABASE misskey OWNER misskey;" |
|
sudo adduser --disabled-password --disabled-login --gecos "" misskey |
|
echo 'setup nodejs...' |
|
sudo su - misskey -c 'git clone https://github.com/nodenv/nodenv.git /home/misskey/.nodenv' |
|
sudo su - misskey -c '/home/misskey/.nodenv/src/configure && make -C /home/misskey/.nodenv/src' |
|
sudo chown misskey:misskey /home/misskey/.bashrc |
|
sudo -u misskey bash -c 'echo export PATH=\"/home/misskey/.nodenv/bin/nodenv:\$PATH\" >> /home/misskey/.bashrc' |
|
sudo -u misskey bash -c 'echo eval \"\$\(/home/misskey/.nodenv/bin/nodenv init -\)\" >> /home/misskey/.bashrc' |
|
sudo -u misskey mkdir -p /home/misskey/.nodenv/plugins |
|
sudo -u misskey git clone https://github.com/nodenv/node-build.git /home/misskey/.nodenv/plugins/node-build |
|
sudo -u misskey git clone https://github.com/nodenv/nodenv-update.git /home/misskey/.nodenv/plugins/nodenv-update |
|
sudo -u misskey bash -c 'export PATH="$HOME/.nodenv/bin:$PATH" && eval "$(nodenv init -)" && curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash' |
|
echo 'download misskey repo...' |
|
sudo -u misskey git clone https://github.com/misskey-dev/misskey /home/misskey/misskey |
|
echo 'config file setting...' |
|
sudo -u misskey bash -c 'cd /home/misskey/misskey/;cat /home/misskey/misskey/.config/example.yml | sed "s/example-misskey-user/misskey/" > /home/misskey/misskey/.config/temp.yml' |
|
sudo cat /home/misskey/misskey/.config/temp.yml | sed "s/example.tld/$input/" | sudo tee /home/misskey/misskey/.config/temp2.yml |
|
sudo cat /home/misskey/misskey/.config/temp2.yml | sed "s/example-misskey-pass/RANDOMPASSWORDM1sske1/" | sudo tee /home/misskey/misskey/.config/default.yml |
|
sudo cat /home/misskey/misskey/.config/default.yml |
|
sudo -u misskey bash -c 'cd /home/misskey/misskey/;export PATH="$HOME/.nodenv/bin:$PATH" && eval "$(nodenv init -)" && git checkout master && git submodule update --init && /home/misskey/.nodenv/bin/nodenv install 18.13.0' |
|
echo 'install misskey package and building...' |
|
sudo -u misskey bash -c 'cd /home/misskey/misskey/;export PATH="$HOME/.nodenv/bin:$PATH" && eval "$(nodenv init -)" && /home/misskey/.nodenv/shims/npm install -g pnpm' |
|
sudo -u misskey bash -c 'cd /home/misskey/misskey/;export PATH="$HOME/.nodenv/bin:$PATH" && eval "$(nodenv init -)" && /home/misskey/.nodenv/shims/pnpm install && /home/misskey/.nodenv/shims/pnpm build && /home/misskey/.nodenv/shims/pnpm run init' |
|
sudo touch /etc/systemd/system/misskey.service |
|
sudo echo "[Unit] |
|
Description=Misskey daemon |
|
|
|
[Service] |
|
Type=simple |
|
User=misskey |
|
ExecStart=/home/misskey/.nodenv/shims/pnpm start |
|
WorkingDirectory=/home/misskey/misskey |
|
Environment='NODE_ENV=production' |
|
TimeoutSec=60 |
|
StandardOutput=syslog |
|
StandardError=syslog |
|
SyslogIdentifier=misskey |
|
Restart=always |
|
|
|
[Install] |
|
WantedBy=multi-user.target |
|
" | sudo tee /etc/systemd/system/misskey.service |
|
sudo systemctl daemon-reload |
|
echo 'Setup is finished🎉!' |
|
echo 'if start misskey now, Please run it command.' |
|
echo 'sudo systemctl enable --now misskey' |
|
fi |