diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 150 |
1 files changed, 20 insertions, 130 deletions
@@ -64,13 +64,12 @@ donating them](https://soutenir.framasoft.org/en/).** | |||
64 | 64 | ||
65 | Want to see it in action? | 65 | Want to see it in action? |
66 | 66 | ||
67 | * [Demo server](http://peertube.cpy.re) | 67 | * Demonstration servers: |
68 | * [peertube.cpy.re](http://peertube.cpy.re) | ||
69 | * [peertube2.cpy.re](http://peertube2.cpy.re) | ||
70 | * [peertube3.cpy.re](http://peertube3.cpy.re) | ||
68 | * [Video](https://peertube.cpy.re/videos/watch/f78a97f8-a142-4ce1-a5bd-154bf9386504) | 71 | * [Video](https://peertube.cpy.re/videos/watch/f78a97f8-a142-4ce1-a5bd-154bf9386504) |
69 | to see how the "decentralization feature" looks like | 72 | to see how the "decentralization feature" looks like |
70 | * Experimental demo servers that share videos (they are in the same | ||
71 | network): [peertube2](http://peertube2.cpy.re), | ||
72 | [peertube3](http://peertube3.cpy.re). Since I do experiments with them, | ||
73 | sometimes they might not work correctly. | ||
74 | 73 | ||
75 | ## Why | 74 | ## Why |
76 | 75 | ||
@@ -83,12 +82,11 @@ So we need to have a decentralized network of servers seeding videos (as | |||
83 | enough because one video could become famous and overload the server. It's the | 82 | enough because one video could become famous and overload the server. It's the |
84 | reason why we need to use a P2P protocol to limit the server load. Thanks to | 83 | reason why we need to use a P2P protocol to limit the server load. Thanks to |
85 | [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (thus | 84 | [WebTorrent](https://github.com/feross/webtorrent), we can make P2P (thus |
86 | bittorrent) inside the web browser, as of today. | 85 | BitTorrent) inside the web browser, as of today. |
87 | 86 | ||
88 | ## Features | 87 | ## Features |
89 | 88 | ||
90 | - [X] Frontend | 89 | - [X] Angular frontend |
91 | - [X] Angular frontend | ||
92 | - [X] Join the fediverse | 90 | - [X] Join the fediverse |
93 | - [X] Follow other instances | 91 | - [X] Follow other instances |
94 | - [X] Unfollow an instance | 92 | - [X] Unfollow an instance |
@@ -103,8 +101,8 @@ bittorrent) inside the web browser, as of today. | |||
103 | - [X] OpenGraph tags | 101 | - [X] OpenGraph tags |
104 | - [X] OEmbed | 102 | - [X] OEmbed |
105 | - [X] Update video | 103 | - [X] Update video |
106 | - [X] Videos view counter | 104 | - [X] Federated videos view counter |
107 | - [X] Videos likes/dislikes | 105 | - [X] Federated videos likes/dislikes |
108 | - [X] Transcoding to different definitions | 106 | - [X] Transcoding to different definitions |
109 | - [X] Download file/torrent | 107 | - [X] Download file/torrent |
110 | - [X] User video bytes quota | 108 | - [X] User video bytes quota |
@@ -115,140 +113,32 @@ bittorrent) inside the web browser, as of today. | |||
115 | - [X] User registration | 113 | - [X] User registration |
116 | - [X] Video privacy settings (public, unlisted or private) | 114 | - [X] Video privacy settings (public, unlisted or private) |
117 | - [X] Signaling a video to the admin origin PeerTube instance | 115 | - [X] Signaling a video to the admin origin PeerTube instance |
118 | - [ ] Videos comments | 116 | - [X] Federated videos comments |
117 | - [ ] Video imports (URL, Torrent, YouTube...) | ||
118 | - [ ] Advanced search | ||
119 | - [ ] Subtitles | ||
119 | - [ ] User playlist | 120 | - [ ] User playlist |
120 | - [ ] User subscriptions (by tags, author...) | 121 | - [ ] User subscriptions (by tags, author...) |
121 | - [ ] Add "DDOS" security | 122 | - [ ] Add "DDOS" security |
122 | 123 | ||
123 | 124 | ||
124 | ## Installation | 125 | ## Front compatibility |
125 | 126 | ||
126 | See [wiki](https://github.com/Chocobozzz/PeerTube/wiki) for complete | 127 | * Firefox |
127 | installation commands. | 128 | * Chrome/Chromium |
128 | 129 | ||
129 | ### Front compatibility | 130 | ## Dependencies |
130 | |||
131 | * Chromium | ||
132 | * Firefox (>= 42 for MediaSource support) | ||
133 | |||
134 | ### Dependencies | ||
135 | 131 | ||
132 | * nginx | ||
133 | * PostgreSQL | ||
136 | * **NodeJS >= 8.x** | 134 | * **NodeJS >= 8.x** |
137 | * yarn | 135 | * yarn |
138 | * OpenSSL (cli) | 136 | * OpenSSL (cli) |
139 | * PostgreSQL | ||
140 | * FFmpeg | 137 | * FFmpeg |
141 | 138 | ||
142 | #### Debian | 139 | ## Production |
143 | |||
144 | 1. Install NodeJS 8.x (current LTS): | ||
145 | [https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) | ||
146 | 2. Install yarn: | ||
147 | [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install) | ||
148 | 4. Run: | ||
149 | |||
150 | ```bash | ||
151 | $ apt-get update | ||
152 | $ apt-get install ffmpeg postgresql openssl | ||
153 | ``` | ||
154 | |||
155 | #### Ubuntu 16.04 | ||
156 | |||
157 | 1. Install NodeJS 8.x (current LTS): (same as Debian) | ||
158 | 2. Install yarn: (same as Debian) | ||
159 | 3. Run: | ||
160 | |||
161 | ```bash | ||
162 | $ apt-get update | ||
163 | $ apt-get install ffmpeg postgresql openssl | ||
164 | ``` | ||
165 | |||
166 | #### Arch Linux | ||
167 | |||
168 | 1. Run: | ||
169 | |||
170 | ```bash | ||
171 | $ pacman -S nodejs yarn ffmpeg postgresql openssl | ||
172 | ``` | ||
173 | |||
174 | #### Other distributions | ||
175 | |||
176 | Feel free to update this README file in a pull request! | ||
177 | |||
178 | ### Build from the sources | ||
179 | |||
180 | ```bash | ||
181 | $ git clone -b master https://github.com/Chocobozzz/PeerTube | ||
182 | $ cd PeerTube | ||
183 | $ yarn install | ||
184 | $ npm run build | ||
185 | ``` | ||
186 | |||
187 | ## Usage | ||
188 | |||
189 | ### Production | ||
190 | |||
191 | If you want to run PeerTube in production (which might be a bad idea for now :) ): | ||
192 | |||
193 | ```bash | ||
194 | $ cp config/production.yaml.example config/production.yaml | ||
195 | ``` | ||
196 | |||
197 | Then edit the `config/production.yaml` file according to your webserver | ||
198 | configuration. Keys set in this file will override those of | ||
199 | `config/default.yml`. | ||
200 | |||
201 | Finally, run the server with the `NODE_ENV` environment variable set to | ||
202 | `production`: | ||
203 | |||
204 | ```bash | ||
205 | $ NODE_ENV=production npm start | ||
206 | ``` | ||
207 | |||
208 | The administrator password is automatically generated and can be found in the | ||
209 | logs. You can set another password with: | ||
210 | |||
211 | ```bash | ||
212 | $ NODE_ENV=production npm run reset-password -- -u root | ||
213 | ``` | ||
214 | |||
215 | **Nginx template** (reverse proxy): https://github.com/Chocobozzz/PeerTube/tree/master/support/nginx <br /> | ||
216 | **Systemd template**: https://github.com/Chocobozzz/PeerTube/tree/master/support/systemd | ||
217 | |||
218 | You can check the application (CORS headers, tracker websocket...) by running: | ||
219 | |||
220 | ```bash | ||
221 | $ NODE_ENV=production npm run check | ||
222 | ``` | ||
223 | |||
224 | ### Upgrade | ||
225 | |||
226 | The following commands will upgrade the source (according to your current | ||
227 | branch), upgrade node modules and rebuild client application: | ||
228 | |||
229 | ```bash | ||
230 | # systemctl stop peertube | ||
231 | $ npm run upgrade-peertube | ||
232 | # systemctl start peertube | ||
233 | ``` | ||
234 | |||
235 | ### Test with three fresh nodes | ||
236 | |||
237 | ```bash | ||
238 | $ npm run clean:server:test | ||
239 | $ npm run play | ||
240 | ``` | ||
241 | |||
242 | Then you will get access to the three nodes at `http://localhost:900{1,2,3}` | ||
243 | with the `root` as username and `test{1,2,3}` for the password. | ||
244 | |||
245 | ### Other commands | ||
246 | |||
247 | To print all available commands, run: | ||
248 | 140 | ||
249 | ```bash | 141 | See the [production guide](support/doc/production.md). |
250 | $ npm run help | ||
251 | ``` | ||
252 | 142 | ||
253 | ## Contributing | 143 | ## Contributing |
254 | 144 | ||