* Doc: Update setup documents Use GitHub api to checkout latest release instead of "git tag" command which cannot accurately determine prerelease tag. Also, Changed numbered list format because the shell command is too long to fit on one line. Conflicts: docs/docker.en.md docs/docker.fr.md docs/docker.ja.md docs/setup.en.md docs/setup.fr.md docs/setup.ja.md * Doc: Checkout 10.x tag only Update "checkout latest release" command. Checkout latest tag but 10.x tag only. * Doc: Restore MongoDB * Use tab instead of spaces
4.3 KiB
Misskey Setup and Installation Guide
We thank you for your interest in setting up your Misskey server! This guide describes how to install and setup Misskey.
Japanese version also available - 日本語版もあります
1. Create Misskey user
Running misskey as root is not a good idea so we create a user for that. In debian for exemple :
adduser --disabled-password --disabled-login misskey
2. Install dependencies
Please install and setup these softwares:
Dependencies 📦
Optional
- Redis
- Redis is optional, but we strongly recommended to install it
- Elasticsearch - required to enable the search feature
- FFmpeg
3. Setup MongoDB
As root:
mongo
Go to the mongo shelluse misskey
Use the misskey databasedb.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )
Create the misskey user.exit
You're done!
4. Install Misskey
-
Connect to misskey user.
su - misskey
-
Clone the misskey repo from master branch.
git clone -b master git://github.com/syuilo/misskey.git
-
Navigate to misskey directory
cd misskey
-
Checkout to the latest release
git tag | grep '^10\.' | sort -V --reverse | \ while read tag_name; do \ if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ | grep -qE '"(draft|prerelease)": true'; \ then git checkout $tag_name; break; fi ; done
-
Install misskey dependencies.
npm install
5. Configure Misskey
-
Copy the
.config/example.yml
and rename it todefault.yml
.cp .config/example.yml .config/default.yml
-
Edit
default.yml
6. Build Misskey
Build misskey with the following:
NODE_ENV=production npm run build
If you're on Debian, you will need to install the build-essential
, python
package.
If you're still encountering errors about some modules, use node-gyp:
npm install -g node-gyp
node-gyp configure
node-gyp build
NODE_ENV=production npm run build
7. That is it.
Well done! Now, you have an environment that run to Misskey.
Launch normally
Just NODE_ENV=production npm start
. GLHF!
Launch with systemd
-
Create a systemd service here
/etc/systemd/system/misskey.service
-
Edit it, and paste this and save:
[Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=syslog StandardError=syslog SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target
-
Reload systemd and enable the misskey service.
systemctl daemon-reload ; systemctl enable misskey
-
Start the misskey service.
systemctl start misskey
You can check if the service is running with systemctl status misskey
.
How to update your Misskey server to the latest version
-
git fetch
-
git tag | grep '^10\.' | sort -V --reverse | \ while read tag_name; do \ if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ | grep -qE '"(draft|prerelease)": true'; \ then git checkout $tag_name; break; fi ; done
-
npm install
-
NODE_ENV=production npm run build
-
Check ChangeLog for migration information
-
Restart your Misskey process to apply changes
-
Enjoy
If you have any questions or troubles, feel free to contact us!