summaryrefslogtreecommitdiff
path: root/README.md
blob: 9265ce0b6beb113778d6079602756dfe655bd443 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
![Misskey](./assets/title.png)
================================

[![][travis-badge]][travis-link]
[![][dependencies-badge]][dependencies-link]
[![][himawari-badge]][himasaku]
[![][sakurako-badge]][himasaku]
[![][mit-badge]][mit]

[Misskey](https://misskey.xyz) is a completely open source,
ultimately sophisticated new type of mini-blog based SNS.

![ss](./assets/ss.jpg)

Key features
--------------------------------
* Automatically updated timeline
* Private messages
* Free 1GB storage
* Mobile device support (smartphone, tablet, etc)
* Web API for third-party applications
* Twitter integration

and more! You can touch with your own eyes at https://misskey.xyz/.

Setup
--------------------------------
### Dependencies :package:
Please install these softwares.
* *Node.js* and *npm*
* **[MongoDB](https://www.mongodb.com/)**
* **[Redis](https://redis.io/)**
* **[GraphicsMagick](http://www.graphicsmagick.org/)**

#### Optional
* [Elasticsearch](https://www.elastic.co/) - used to provide searching feature instead of MongoDB

### Domains
Misskey requires two domains called the primary domain and the secondary domain.

* The primary domain is used to provide main service of Misskey.
* The secondary domain is used to avoid vulnerabilities such as XSS.

**Ensure that the secondary domain is not a subdomain of the primary domain.**

#### Subdomains
Note that Misskey uses following subdomains:

* **api**.*{primary domain}*
* **auth**.*{primary domain}*
* **about**.*{primary domain}*
* **dev**.*{primary domain}*
* **file**.*{secondary domain}*

### reCAPTCHA tokens
Please visit https://www.google.com/recaptcha/intro/ and generate keys.

Setup with Docker :whale:
--------------------------------
Ensure that the working directory is the repository root directory.

To create misskey image:

`sudo docker build -t misskey ./docker`

To run misskey:

`sudo docker run --rm -i -t -p $PORT:80 -v $(pwd):/root/misskey -v $DBPATH:/data/db misskey`

where `$PORT` is the port used to access Misskey Web from host browser
and `$DBPATH` is the path of MongoDB database on the host for data persistence.

ex: `sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db misskey`

If you want to run misskey in production mode, add `--env NODE_ENV=production` like this:

`sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db --env NODE_ENV=production misskey`

Note that `$(pwd)` is the working directory.

Install
--------------------------------
### Using built code
We have official release of Misskey.
The built code is automatically pushed to https://github.com/syuilo/misskey/tree/release after the CI test succeeds.

1. `git clone -b release git://github.com/syuilo/misskey.git`
2. `cd misskey`
3. `npm install`

#### Update
1. `git fetch`
2. `git reset --hard origin/release`
3. `npm install`

### Using source code
If you want to build Misskey manually, you can do it via `build` command after download the source code of Misskey and install dependencies:

1. `git clone -b master git://github.com/syuilo/misskey.git`
2. `cd misskey`
3. `npm install`
4. `npm run build`

#### Update
1. `git pull origin master`
2. `npm install`
3. `npm run build`

Launch
--------------------------------
Just `sudo npm start`. GLHF!

Testing
--------------------------------
Run `npm test` after building

Debugging :bug:
--------------------------------
### Show debug messages
Misskey uses [debug](https://github.com/visionmedia/debug) and the namespace is `misskey:*`.

Contribution
--------------------------------
Please see [Contribution guide](./CONTRIBUTING.md).

Collaborators
------------------------------
| ![syuilo][syuilo-icon] | ![Morisawa Aya][ayamorisawa-icon] | ![otofune][otofune-icon]        |
|------------------------|-----------------------------------|---------------------------------|
| [syuilo][syuilo-link]  | [Aya Morisawa][ayamorisawa-link]  | [Otoha Funabashi][otofune-link] |

Copyright
------------------------------
Misskey is an open-source software licensed under [The MIT License](LICENSE).

[mit]:                http://opensource.org/licenses/MIT
[mit-badge]:          https://img.shields.io/badge/license-MIT-444444.svg?style=flat-square
[travis-link]:        https://travis-ci.org/syuilo/misskey
[travis-badge]:       http://img.shields.io/travis/syuilo/misskey/master.svg?style=flat-square
[dependencies-link]:  https://gemnasium.com/syuilo/misskey
[dependencies-badge]: https://img.shields.io/gemnasium/syuilo/misskey.svg?style=flat-square
[himasaku]:           https://himasaku.net
[himawari-badge]:     https://img.shields.io/badge/%E5%8F%A4%E8%B0%B7-%E5%90%91%E6%97%A5%E8%91%B5-1684c5.svg?style=flat-square
[sakurako-badge]:     https://img.shields.io/badge/%E5%A4%A7%E5%AE%A4-%E6%AB%BB%E5%AD%90-efb02a.svg?style=flat-square

<!-- Collaborators Info -->
[syuilo-link]:      https://syuilo.com
[syuilo-icon]:      https://avatars2.githubusercontent.com/u/4439005?v=3&s=70
[ayamorisawa-link]: https://github.com/ayamorisawa
[ayamorisawa-icon]: https://avatars0.githubusercontent.com/u/10798641?v=3&s=70
[otofune-link]:     https://github.com/otofune
[otofune-icon]:     https://avatars0.githubusercontent.com/u/15062473?v=3&s=70