aboutsummaryrefslogtreecommitdiffhomepage
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md150
1 files changed, 20 insertions, 130 deletions
diff --git a/README.md b/README.md
index 094d81c4a..7972fbed8 100644
--- a/README.md
+++ b/README.md
@@ -64,13 +64,12 @@ donating them](https://soutenir.framasoft.org/en/).**
64 64
65Want to see it in action? 65Want 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
83enough because one video could become famous and overload the server. It's the 82enough because one video could become famous and overload the server. It's the
84reason why we need to use a P2P protocol to limit the server load. Thanks to 83reason 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
86bittorrent) inside the web browser, as of today. 85BitTorrent) 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
126See [wiki](https://github.com/Chocobozzz/PeerTube/wiki) for complete 127 * Firefox
127installation 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
176Feel 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
191If 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
197Then edit the `config/production.yaml` file according to your webserver
198configuration. Keys set in this file will override those of
199`config/default.yml`.
200
201Finally, run the server with the `NODE_ENV` environment variable set to
202`production`:
203
204```bash
205 $ NODE_ENV=production npm start
206```
207
208The administrator password is automatically generated and can be found in the
209logs. 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
218You 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
226The following commands will upgrade the source (according to your current
227branch), 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
242Then you will get access to the three nodes at `http://localhost:900{1,2,3}`
243with the `root` as username and `test{1,2,3}` for the password.
244
245### Other commands
246
247To print all available commands, run:
248 140
249```bash 141See the [production guide](support/doc/production.md).
250 $ npm run help
251```
252 142
253## Contributing 143## Contributing
254 144