Сделан гайд
This commit is contained in:
		
							parent
							
								
									2def936e01
								
							
						
					
					
						commit
						df9d01632f
					
				
					 1 changed files with 198 additions and 2 deletions
				
			
		
							
								
								
									
										200
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										200
									
								
								README.md
									
										
									
									
									
								
							|  | @ -1,3 +1,199 @@ | ||||||
| # MisskeyInstall | # Установка своего инстанса Misskey | ||||||
| 
 | 
 | ||||||
| Полный процесс установки misskey на русском языке | ## 0.1 У вас УЖЕ должен быть куплен [домен](https://ubuntu.com) и хост-сервер | ||||||
|  | 
 | ||||||
|  | ## 1.1 Требования к аппаратному обеспечению | ||||||
|  | Точных рекомендаций в документации нет, однако судя по опыту пользования и администрирования инстанса [shitpost.poridge.club](https://shitpost.poridge.club) на 5 активных пользователя желательно >=2гб ОЗУ и 1 ядра процессора.  | ||||||
|  | 
 | ||||||
|  | ## 1.2 Требуемое программное обеспечение | ||||||
|  | 
 | ||||||
|  | 1. Я рекомендую [Ubuntu](https://ubuntu.com) из-за огромного кол-ва встроенных библиотек, но можно и [Debian](https://www.debian.org/) | ||||||
|  | 2. [NodeJS](https://nodejs.org/en/) (12.x, 14.x) | ||||||
|  | 3. [PostgreSQL](https://www.postgresql.org/) (>=10.0) | ||||||
|  | 4. [Redis](https://redis.io/) | ||||||
|  | 5. [Yarn](https://classic.yarnpkg.com/en/)  | ||||||
|  | 
 | ||||||
|  | --- | ||||||
|  | 
 | ||||||
|  | ## 2. Установка Misskey | ||||||
|  | 
 | ||||||
|  | Для начала необходимо создать пользователя для Misskey (ради безопасности) | ||||||
|  | ``` | ||||||
|  | # adduser --disabled-password --disabled-login misskey | ||||||
|  | ``` | ||||||
|  | Далее мы всё так же продолжаем действовать под root'ом. | ||||||
|  | Нам необходимо установить всё нужное для работы инстанса программное обеспечение: | ||||||
|  | ``` | ||||||
|  | // Redis, PostgreSQL, sudo и остальное программное обеспечение | ||||||
|  | # apt install redis postgresql sudo git nginx | ||||||
|  | 
 | ||||||
|  | // NodeJS | ||||||
|  | # curl -sL https://deb.nodesource.com/setup_12.x | bash - | ||||||
|  | # apt-get install -y nodejs | ||||||
|  | 
 | ||||||
|  | // Yarn | ||||||
|  | # curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - | ||||||
|  | # echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list | ||||||
|  | # apt update && apt install yarn | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Тут будет расхождение от официальной документации. В документации Misskey устанавливается в директорию /home/misskey/misskey, в данном же руководстве Misskey устанавливается в /opt/misskey, так что создаём директорию /opt/misskey и меняем у неё владельца на пользователя misskey: | ||||||
|  | ``` | ||||||
|  | // Создаём директорию | ||||||
|  | # mkdir -pv /opt/misskey | ||||||
|  | 
 | ||||||
|  | // Меняем владельца | ||||||
|  | # chown misskey:misskey -R /opt/misskey | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Создаём базу данных под Misskey: | ||||||
|  | ``` | ||||||
|  | # sudo -Hu postgres psql | ||||||
|  | 
 | ||||||
|  | // Создаём базу данных | ||||||
|  | psql=# CREATE DATABASE misskey; | ||||||
|  | 
 | ||||||
|  | // Создаём пользователя misskey с паролем | ||||||
|  | psql=# CREATE USER misskey WITH ENCRYPTED PASSWORD 'ВАШ_ПАРОЛЬ'; | ||||||
|  | 
 | ||||||
|  | // Выдаем ему все разрешения на использование базы данных Misskey | ||||||
|  | psql=# GRANT ALL PRIVILIGES ON DATABASE misskey TO misskey; | ||||||
|  | psql=#\q | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | После заходим под пользователя misskey и скачиваем исходный код Misskey: | ||||||
|  | ``` | ||||||
|  | // Заходим под пользователем Misskey | ||||||
|  | # su - misskey | ||||||
|  | 
 | ||||||
|  | // Скачиваем Misskey | ||||||
|  | misskey@domain$ cd /opt | ||||||
|  | misskey@domain$ git clone -b master git://github.com/syuilo/misskey.git | ||||||
|  | 
 | ||||||
|  | // Устанавливаем зависимости | ||||||
|  | misskey@domain$ cd misskey | ||||||
|  | misskey@domain$ yarn | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Копируем файл .config/example .config/default.yml (Подразумевается что вы всё ещё в директории /opt/misskey) и редактируем его: | ||||||
|  | ``` | ||||||
|  | misskey@domain$ cp .config/example.yml .config/default.yml | ||||||
|  | misskey@domain$ nano .config/default.yml | ||||||
|  | ``` | ||||||
|  | В данном конфигурационном файле нас интересуют следующие параметры: | ||||||
|  | ``` | ||||||
|  | url: поменять example.tld на своё доменное имя | ||||||
|  | 
 | ||||||
|  | port: в данной руководстве Misskey работает через Reverse Proxy, так что порт ставим 3000 | ||||||
|  | 
 | ||||||
|  | db: | ||||||
|  |   user: пишем пользователя базы данных (в данном руководстве misskey) | ||||||
|  |   pass: пишем пароль пользователя базы данных (в данном руководстве ВАШ_ПАРОЛЬ) | ||||||
|  | ``` | ||||||
|  | Собираем Misskey: | ||||||
|  | ``` | ||||||
|  | misskey@domain$ NODE_ENV=production yarn build | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | Обычно там много ошибок появляется, но этого не стоит боятся, это норма. | ||||||
|  | ``` | ||||||
|  | misskey@domain$ yarn run init | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Запускаем Misskey: | ||||||
|  | ``` | ||||||
|  | misskey@domain$ NODE_ENV=production npm start | ||||||
|  | ``` | ||||||
|  | Если всё хорошо, Misskey выдаст строку о том, что он прослушивает 3000 порт: | ||||||
|  | ``` | ||||||
|  | Now listening on port 3000 on https://ВАШ_ДОМЕН/ | ||||||
|  | ``` | ||||||
|  | Выключаем Misskey сочетанием клавиш CTRL+X и создаем Systemd сервис для того, что бы Misskey автоматически запускался при каждом включении хост-машины: | ||||||
|  | ``` | ||||||
|  | // Создаем и открываем для редактирования файл /etc/systemd/system/misskey.service | ||||||
|  | # nano /etc/systemd/system/misskey.service | ||||||
|  | ``` | ||||||
|  | Вставляем в файл /etc/systemd/system/misskey.service следующий код: | ||||||
|  | ``` | ||||||
|  | [Unit] | ||||||
|  | Description=Misskey daemon | ||||||
|  | 
 | ||||||
|  | [Service] | ||||||
|  | Type=simple | ||||||
|  | User=misskey | ||||||
|  | ExecStart=/usr/bin/npm start | ||||||
|  | WorkingDirectory=/opt/misskey | ||||||
|  | Environment="NODE_ENV=production" | ||||||
|  | TimeoutSec=60 | ||||||
|  | StandardOutput=syslog | ||||||
|  | StandardError=syslog | ||||||
|  | SyslogIdentifier=misskey | ||||||
|  | Restart=always | ||||||
|  | 
 | ||||||
|  | [Install] | ||||||
|  | WantedBy=multi-user.target | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | Включаем инстанс Misskey в Systemd: | ||||||
|  | ``` | ||||||
|  | // Перечитываем все сервисы Systemd что бы он увидел только что созданный юнит | ||||||
|  | # systemctl daemon-reload | ||||||
|  | 
 | ||||||
|  | // Включаем Misskey и добавляем в автозагрузку, а при помощи --now тут же запускаем. | ||||||
|  | # systemctl enable --now misskey | ||||||
|  | 
 | ||||||
|  | // Проверяем работу Misskey | ||||||
|  | # systemctl status misskey | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Заключительный этап - настройка Revers Proxy. Открываем файл /etc/nginx/sites-enabled/default: | ||||||
|  | ``` | ||||||
|  | # nano /etc/nginx/sites-enabled/default | ||||||
|  | ``` | ||||||
|  | И вставляем следующий код: | ||||||
|  | ``` | ||||||
|  | server { | ||||||
|  |     listen 80; | ||||||
|  |     listen [::]:80 | ||||||
|  |     server_name ВАШ_ДОМЕН; | ||||||
|  | 
 | ||||||
|  |     # Перенаправление с http на https | ||||||
|  |     location / { | ||||||
|  |         return 301 https://$server_name$request_uri; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | server { | ||||||
|  |     listen 443 ssl; | ||||||
|  |     listen [::]:443 ssl; | ||||||
|  | 
 | ||||||
|  |     # Подключение сертификатов Let's Encrypt | ||||||
|  |     ssl_trusted_certificate   /etc/letsencrypt/live/ВАШ_ДОМЕН/chain.pem; | ||||||
|  |     ssl_certificate           /etc/letsencrypt/live/ВАШ_ДОМЕН/fullchain.pem; | ||||||
|  |     ssl_certificate_key       /etc/letsencrypt/live/ВАШ_ДОМЕН/privkey.pem; | ||||||
|  | 
 | ||||||
|  |     # Подключение сжатия | ||||||
|  |     gzip_vary on; | ||||||
|  |     gzip_proxied any; | ||||||
|  |     gzip_comp_level 6; | ||||||
|  |     gzip_buffers 16 8k; | ||||||
|  |     gzip_http_version 1.1; | ||||||
|  |     gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/activity+json application/atom+xml; | ||||||
|  | 
 | ||||||
|  |     # Размер загружаемых файлов | ||||||
|  |     client_max_body_size 16m; | ||||||
|  | 
 | ||||||
|  |     location / { | ||||||
|  |         proxy_pass http://127.0.0.1:3000; | ||||||
|  |         proxy_set_header Host $host; | ||||||
|  |         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  | Перезагрузим nginx (на всякий случай) | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | sysstemctl restart nginx | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Всё, заходим в браузере на свой инстанс и создаём административную учётную запись | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue