Skip to content
Snippets Groups Projects
setup.en.md 4.03 KiB
Newer Older
syuilo's avatar
syuilo committed
Misskey Setup and Installation Guide
================================================================

Aya Morisawa's avatar
Aya Morisawa committed
We thank you for your interest in setting up your Misskey server!
こぴなたみぽ's avatar
こぴなたみぽ committed
This guide describes how to install and setup Misskey.
syuilo's avatar
syuilo committed

こぴなたみぽ's avatar
こぴなたみぽ committed
[Japanese version also available - 日本語版もあります](./setup.ja.md)
syuilo's avatar
syuilo committed

syuilo's avatar
syuilo committed
----------------------------------------------------------------
syuilo's avatar
syuilo committed

Skid's avatar
Skid committed
*1.* Create Misskey user
syuilo's avatar
syuilo committed
----------------------------------------------------------------
Skid's avatar
Skid committed
Running misskey on root is not a good idea so we create a user for that.
In debian for exemple :
syuilo's avatar
syuilo committed

Aya Morisawa's avatar
Aya Morisawa committed
```
Skid's avatar
Skid committed
adduser --disabled-password --disabled-login misskey
syuilo's avatar
syuilo committed
*2.* Install dependencies
syuilo's avatar
syuilo committed
----------------------------------------------------------------
syuilo's avatar
syuilo committed
Please install and setup these softwares:
syuilo's avatar
syuilo committed

syuilo's avatar
syuilo committed
#### Dependencies :package:
syuilo's avatar
syuilo committed
* **[Node.js](https://nodejs.org/en/)** >= 10.0.0
Skid's avatar
Skid committed
* **[MongoDB](https://www.mongodb.com/)** >= 3.6
syuilo's avatar
syuilo committed

##### Optional
* [Redis](https://redis.io/)
  * Redis is optional, but we strongly recommended to install it
* [Elasticsearch](https://www.elastic.co/) - required to enable the search feature
syuilo's avatar
syuilo committed

Aya Morisawa's avatar
Aya Morisawa committed
*3.* Setup MongoDB
syuilo's avatar
syuilo committed
----------------------------------------------------------------
Skid's avatar
Skid committed
In root :
1. `mongo` Go to the mongo shell
2. `use misskey` Use the misskey database
3. `db.users.save( {dummy:"dummy"} )` Write dummy data to initialize the db.
4. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` Create the misskey user.
5. `exit` You're done !

*4.* Install Misskey
----------------------------------------------------------------
1. `su - misskey` Connect to misskey user.
2. `git clone -b master git://github.com/syuilo/misskey.git` Clone the misskey repo from master branch.
3. `cd misskey` Navigate to misskey directory
4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest)
5. `npm install` Install misskey dependencies.
syuilo's avatar
syuilo committed

Skid's avatar
Skid committed
*(optional)* Generating VAPID keys
----------------------------------------------------------------
If you want to enable ServiceWorker, you need to generate VAPID keys:
Skid's avatar
Skid committed
Unless you have set your global node_modules location elsewhere, you need to run this in root.

``` shell
npm install web-push -g
web-push generate-vapid-keys
```

syuilo's avatar
syuilo committed
*5.* Make configuration file
Skid's avatar
Skid committed
----------------------------------------------------------------
1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`.
Aya Morisawa's avatar
Aya Morisawa committed
2. Edit `default.yml`
syuilo's avatar
syuilo committed

syuilo's avatar
syuilo committed
*6.* Build Misskey
syuilo's avatar
syuilo committed
----------------------------------------------------------------
Angristan's avatar
Angristan committed
Build misskey with the following:

`npm run build`

Angristan's avatar
Angristan committed
If you're on Debian, you will need to install the `build-essential` package.

Angristan's avatar
Angristan committed
If you're still encountering errors about some modules, use node-gyp:
Angristan's avatar
Angristan committed

Angristan's avatar
Angristan committed
1. `npm install -g node-gyp`
2. `node-gyp configure`
3. `node-gyp build`
4. `npm run build`
syuilo's avatar
syuilo committed

syuilo's avatar
syuilo committed
*7.* That is it.
syuilo's avatar
syuilo committed
----------------------------------------------------------------
こぴなたみぽ's avatar
こぴなたみぽ committed
Well done! Now, you have an environment that run to Misskey.
syuilo's avatar
syuilo committed

Skid's avatar
Skid committed
### Launch normally
Just `npm start`. GLHF!

### Launch with systemd

1. Create a systemd service here: `/etc/systemd/system/misskey.service`
2. 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
TimeoutSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=misskey
Restart=always

[Install]
WantedBy=multi-user.target
```

3. `systemctl daemon-reload ; systemctl enable misskey` Reload systemd and enable the misskey service.
4. `systemctl start misskey` Start the misskey service.

You can check if the service is running with `systemctl status misskey`.
syuilo's avatar
syuilo committed

syuilo's avatar
syuilo committed
### Way to Update to latest version of your Misskey
Skid's avatar
Skid committed
1. `git fetch`
2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)`
3. `npm install`
4. `npm run build`
Aya Morisawa's avatar
Aya Morisawa committed
5. Check [ChangeLog](../CHANGELOG.md) for migration information
syuilo's avatar
syuilo committed

----------------------------------------------------------------

If you have any questions or troubles, feel free to contact us!