Sharkey/docs/setup.en.md

124 lines
3.9 KiB
Markdown
Raw Normal View History

2017-05-17 22:56:23 -07:00
Misskey Setup and Installation Guide
================================================================
2017-11-12 03:25:18 -08:00
We thank you for your interest in setting up your Misskey server!
2017-05-17 23:05:48 -07:00
This guide describes how to install and setup Misskey.
2017-05-17 22:56:23 -07:00
2017-05-18 08:55:06 -07:00
[Japanese version also available - 日本語版もあります](./setup.ja.md)
2017-05-17 22:56:23 -07:00
2017-05-18 08:52:50 -07:00
----------------------------------------------------------------
2017-05-17 22:56:23 -07:00
2018-07-14 16:26:23 -07:00
*1.* Create Misskey user
2017-05-17 22:56:23 -07:00
----------------------------------------------------------------
Running misskey as root is not a good idea so we create a user for that.
2018-07-14 16:26:23 -07:00
In debian for exemple :
2017-05-17 22:56:23 -07:00
2018-07-14 17:43:16 -07:00
```
2018-07-14 16:26:23 -07:00
adduser --disabled-password --disabled-login misskey
```
2018-03-26 20:55:58 -07:00
*2.* Install dependencies
2017-05-17 22:56:23 -07:00
----------------------------------------------------------------
2017-05-18 08:52:50 -07:00
Please install and setup these softwares:
2017-05-17 22:56:23 -07:00
2017-05-18 08:52:50 -07:00
#### Dependencies :package:
2018-11-04 17:48:40 -08:00
* **[Node.js](https://nodejs.org/en/)** >= 10.0.0
2018-07-14 16:26:23 -07:00
* **[MongoDB](https://www.mongodb.com/)** >= 3.6
2017-05-18 08:52:50 -07:00
##### Optional
2018-10-10 23:50:27 -07:00
* [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
2019-02-04 20:56:50 -08:00
* ffmpeg
2017-05-18 08:52:50 -07:00
2018-07-23 04:48:55 -07:00
*3.* Setup MongoDB
2018-04-01 19:32:27 -07:00
----------------------------------------------------------------
As root:
2018-07-14 16:26:23 -07:00
1. `mongo` Go to the mongo shell
2. `use misskey` Use the misskey database
2019-02-02 11:50:40 -08:00
3. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` Create the misskey user.
4. `exit` You're done!
2018-07-14 16:26:23 -07:00
*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.
2018-04-01 19:32:27 -07:00
*5.* Configure Misskey
2018-07-14 16:26:23 -07:00
----------------------------------------------------------------
1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`.
2018-07-14 17:43:16 -07:00
2. Edit `default.yml`
2017-05-17 22:56:23 -07:00
2018-07-18 08:04:09 -07:00
*6.* Build Misskey
2018-04-01 19:32:27 -07:00
----------------------------------------------------------------
2019-02-04 13:29:56 -08:00
Before build, you need to set `NODE_ENV` to `production`. like this:
* Linux: `export NODE_ENV=production`
* Windows (PowerShell): `$env:NODE_ENV="production"`
* Windows (CMD): `set NODE_ENV=production`
2018-06-01 11:52:47 -07:00
Build misskey with the following:
`npm run build`
If you're on Debian, you will need to install the `build-essential`, `python` package.
2018-06-01 11:24:30 -07:00
2018-06-01 11:52:47 -07:00
If you're still encountering errors about some modules, use node-gyp:
2018-06-01 11:24:30 -07:00
2018-06-01 11:52:47 -07:00
1. `npm install -g node-gyp`
2. `node-gyp configure`
3. `node-gyp build`
4. `npm run build`
2017-05-17 22:56:23 -07:00
2018-07-18 08:04:09 -07:00
*7.* That is it.
2017-05-17 22:56:23 -07:00
----------------------------------------------------------------
2017-05-18 15:49:16 -07:00
Well done! Now, you have an environment that run to Misskey.
2017-05-17 22:56:23 -07:00
2018-07-14 16:26:23 -07:00
### 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`.
2017-05-17 22:56:23 -07:00
### How to update your Misskey server to the latest version
2018-07-14 16:26:23 -07:00
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`
2018-09-01 02:42:46 -07:00
5. Check [ChangeLog](../CHANGELOG.md) for migration information
2019-01-20 03:11:44 -08:00
6. Restart your Misskey process to apply changes
2019-01-20 03:13:08 -08:00
7. Enjoy
2018-07-24 12:15:22 -07:00
----------------------------------------------------------------
If you have any questions or troubles, feel free to contact us!