diff --git a/docs/setup.en.md b/docs/setup.en.md index b5bafcf802..45038b87ac 100644 --- a/docs/setup.en.md +++ b/docs/setup.en.md @@ -8,18 +8,13 @@ This guide describes how to install and setup Misskey. ---------------------------------------------------------------- -*1.* reCAPTCHA tokens +*1.* Create Misskey user ---------------------------------------------------------------- -Misskey requires reCAPTCHA tokens. -Please visit https://www.google.com/recaptcha/intro/ and generate keys. +Running misskey on root is not a good idea so we create a user for that. +In debian for exemple : -*(optional)* Generating VAPID keys ----------------------------------------------------------------- -If you want to enable ServiceWroker, you need to generate VAPID keys: - -``` shell -npm install web-push -g -web-push generate-vapid-keys +``` +adduser --disabled-password --disabled-login misskey ``` *2.* Install dependencies @@ -28,25 +23,53 @@ Please install and setup these softwares: #### Dependencies :package: * *Node.js* and *npm* -* **[MongoDB](https://www.mongodb.com/)** +* **[MongoDB](https://www.mongodb.com/)** >= 3.6 * **[Redis](https://redis.io/)** * **[ImageMagick](http://www.imagemagick.org/script/index.php)** >= 7.0 ##### Optional * [Elasticsearch](https://www.elastic.co/) - used to provide searching feature instead of MongoDB -*3.* Install Misskey ----------------------------------------------------------------- -1. `git clone -b master git://github.com/syuilo/misskey.git` -2. `cd misskey` -3. `npm install` -*4.* Make configuration file +*3.* Setup Mongodb Database ---------------------------------------------------------------- -1. Copy the `.config/example.yml` and rename it to `default.yml`. +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: "", 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. + +*5.* reCAPTCHA tokens +---------------------------------------------------------------- +Misskey requires reCAPTCHA tokens. +Please visit https://www.google.com/recaptcha/intro/ and generate keys. + +*(optional)* Generating VAPID keys +---------------------------------------------------------------- +If you want to enable ServiceWroker, you need to generate VAPID keys: +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 +``` + + +*6.* Make configuration file +---------------------------------------------------------------- +1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`. 2. Edit it -*5.* Build Misskey +*7.* Build Misskey ---------------------------------------------------------------- Build misskey with the following: @@ -62,14 +85,44 @@ If you're still encountering errors about some modules, use node-gyp: 3. `node-gyp build` 4. `npm run build` -*6.* That is it. +*8.* That is it. ---------------------------------------------------------------- Well done! Now, you have an environment that run to Misskey. -### Launch -Just `sudo npm start`. GLHF! +### 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`. ### Way to Update to latest version of your Misskey -1. `git reset --hard && git pull origin master` -2. `npm install` -3. `npm run build` +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`