3 <!-- START doctoc generated TOC please keep comment here to allow auto update -->
4 <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
7 - [Debian / Ubuntu and derivatives](#debian--ubuntu-and-derivatives)
8 - [Arch Linux](#arch-linux)
9 - [CentOS 7](#centos-7)
14 - [Other distributions](#other-distributions)
16 <!-- END doctoc generated TOC please keep comment here to allow auto update -->
18 ## Debian / Ubuntu and derivatives
20 1. On a fresh Debian/Ubuntu, as root user, install basic utility programs needed for the installation
23 # apt-get install curl sudo unzip vim
26 2. It would be wise to disable root access and to continue this tutorial with a user with sudoers group access
28 3. Install certbot (choose instructions for nginx and your distribution) :
29 [https://certbot.eff.org/all-instructions](https://certbot.eff.org/all-instructions)
30 4. Install NodeJS 10.x:
31 [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)
32 5. Install yarn, and be sure to have [a recent version](https://github.com/yarnpkg/yarn/releases/latest):
33 [https://yarnpkg.com/en/docs/install#linux-tab](https://yarnpkg.com/en/docs/install#linux-tab)
39 sudo apt install nginx ffmpeg postgresql postgresql-contrib openssl g++ make redis-server git python-dev
40 ffmpeg -version # Should be >= 3.x
41 g++ -v # Should be >= 5.x
44 If you still have a 2.x version of FFmpeg on Ubuntu:
47 sudo add-apt-repository ppa:jonathonf/ffmpeg-3
49 sudo apt install ffmpeg
52 Now that dependencies are installed, before running PeerTube you should start PostgreSQL and Redis:
55 sudo systemctl start redis postgresql
63 sudo pacman -S nodejs-lts-dubnium yarn ffmpeg postgresql openssl redis git wget unzip python2 base-devel npm nginx
66 Now that dependencies are installed, before running PeerTube you should start PostgreSQL and Redis:
69 sudo systemctl start redis postgresql
74 1. Install NodeJS 10.x:
75 [https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)
78 [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
80 3. Install or compile ffmpeg:
82 * Install - [https://linoxide.com/linux-how-to/install-ffmpeg-centos-7/](https://linoxide.com/linux-how-to/install-ffmpeg-centos-7/)
83 * Compile - [https://gist.github.com/mustafaturan/7053900#file-latest-ffmpeg-centos6-sh](https://gist.github.com/mustafaturan/7053900#file-latest-ffmpeg-centos6-sh)
89 sudo yum install epel-release centos-release-scl
91 sudo yum install nginx postgresql postgresql-server postgresql-contrib openssl gcc-c++ make wget redis git devtoolset-7
94 5. You need to use a more up to date version of G++ in order to run the yarn install command, hence the installation of devtoolset-7.
97 sudo scl enable devtoolset-7 bash
100 Later when you invoke any node command, please prefix them with `CC=/opt/rh/devtoolset-7/root/usr/bin/gcc CXX=/opt/rh/devtoolset-7/root/usr/bin/g++`, such as with:
103 sudo -H -u peertube CC=/opt/rh/devtoolset-7/root/usr/bin/gcc CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ yarn install --production --pure-lockfile
106 Initialize the PostgreSQL database:
109 sudo postgresql-setup initdb
112 Now that dependencies are installed, before running PeerTube you should enable and start PostgreSQL and Redis:
115 sudo systemctl enable redis
116 sudo systemctl enable postgresql
117 sudo systemctl start redis
118 sudo systemctl start postgresql
123 1. Upgrade your packages:
129 2. Add a user with sudoers group access:
132 useradd my-peertube-user
133 passwd my-peertube-user
134 usermod my-peertube-user -a -G wheel # Add my-peertube-user to sudoers
138 3. (Optional) Install certbot (choose instructions for nginx and your distribution):
139 [https://certbot.eff.org/all-instructions](https://certbot.eff.org/all-instructions)
141 4. Install NodeJS 10.x:
142 [https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)
145 [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
147 6. Enable [RPM Fusion](https://rpmfusion.org) for Fedora (available for x86, x86_64, armhfp)
150 sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
152 This is necessary because `ffmpeg` is not in the Fedora repos.
157 sudo dnf install nginx ffmpeg postgresql-server postgresql-contrib openssl gcc-c++ make redis git
158 ffmpeg -version # Should be >= 3.x
159 g++ -v # Should be >= 5.x
164 _from [PostgreSQL documentation](https://www.postgresql.org/download/linux/redhat/):_
165 > Due to policies for Red Hat family distributions, the PostgreSQL installation will not be enabled for automatic start or have the database initialized automatically.
169 sudo postgresql-setup initdb
170 sudo systemctl enable postgresql.service
171 sudo systemctl start postgresql.service
173 sudo systemctl enable nginx.service
174 sudo systemctl start nginx.service
176 sudo systemctl enable redis.service
177 sudo systemctl start redis.service
182 By default, you cannot access your server via public IP. To do so, you must configure firewall:
185 # Ports used by peertube dev setup
186 sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
187 sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
189 sudo firewall-cmd --permanent --zone=public --add-service=http
190 sudo firewall-cmd --permanent --zone=public --add-service=https
192 sudo firewall-cmd --reload
195 10. Configure max ports
197 This is necessary if you are running dev setup, otherwise you will have errors with `nodemon`
200 echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
203 [More info](https://stackoverflow.com/questions/34662574/node-js-getting-error-nodemon-internal-watch-failed-watch-enospc#34664097)
207 On a fresh install of [FreeBSD](https://www.freebsd.org), new system or new jail:
209 1. bootstrap pkg, initialize db and install peertube's dependencies, always as root (sudo not yet installed):
214 pkg install -y sudo bash wget git python nginx pkgconf vips postgresql96-server postgresql96-contrib redis openssl node npm yarn ffmpeg unzip
217 2. Allow users in the wheel group (hope you don't forgot to add your user on wheel group!) to use sudo.
223 Uncomment the line 90
229 3. Enable nginx, redis, postgresql services and initialize database.
232 sysrc postgresql_enable="YES"
233 sysrc redis_enable="YES"
234 sysrc nginx_enable="YES"
237 Initialize database and start services
240 service postgresql initdb
241 service postgresql start
251 brew install ffmpeg nginx postgresql openssl gcc make redis git yarn
257 brew services run postgresql
258 brew services run redis
263 1. Add this to ``/etc/portage/sets/peertube``:
268 media-video/ffmpeg[x264] # Optionnally add vorbis,vpx
276 # Optional, client for Let’s Encrypt:
278 # app-crypt/certbot-nginx
281 2. If you are on a "stable" Gentoo you need to accept the testing keyword ~amd64 yarn:
284 mkdir -p /etc/portage/package.keywords
285 cat << EOF >> /etc/portage/package.keywords/peertube
286 # required by yarn (argument) for PeerTube
291 3. Compile the peertube set:
297 4. Initialize the PostgreSQL database if you just merged it:
300 emerge --config postgresql
303 5. (For OpenRC) Enable and then start the services (replace with the correct PostgreSQL slot):
307 rc-update add postgresql-11
308 rc-service redis start
309 rc-service postgresql-11 start
312 ## Other distributions
314 Feel free to update this file in a pull request!