Skip to content

Instantly share code, notes, and snippets.

@GrapeApple0
Last active February 10, 2023 23:51
Show Gist options
  • Select an option

  • Save GrapeApple0/71f252380d2ec361bd5763631826e8c3 to your computer and use it in GitHub Desktop.

Select an option

Save GrapeApple0/71f252380d2ec361bd5763631826e8c3 to your computer and use it in GitHub Desktop.
Auto Misskey Installer

setup cmd:

wget https://gist.githubusercontent.com/GrapeApple0/71f252380d2ec361bd5763631826e8c3/raw/8ee30056f5e2186aaf6a893d8f04474c7874bd4e/install.sh && sudo bash ./install.sh

remove cmd:

curl -fsSL https://gist.githubusercontent.com/GrapeApple0/71f252380d2ec361bd5763631826e8c3/raw/1ba24e66eea21a4adc53dc7d5d2b72f34d992693/del.sh | sudo bash

sudo deluser misskey
sudo rm -rf /home/misskey
sudo -u postgres psql postgres -c 'DROP DATABASE misskey;'
sudo -u postgres psql postgres -c 'DROP ROLE misskey;'
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment