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 6. 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 --now redis
116 sudo systemctl enable --now postgresql
121 1. Install NodeJS 10.x:
122 [https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)
125 [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
127 3. Install or compile ffmpeg:
129 * Install - [https://linuxize.com/post/how-to-install-ffmpeg-on-centos-8/](https://linuxize.com/post/how-to-install-ffmpeg-on-centos-8/)
135 sudo dnf install epel-release
137 sudo dnf install nginx postgresql postgresql-server postgresql-contrib openssl gcc-c++ make wget redis git
140 5. You'll need a symlink for python3 to python for youtube-dl to work
143 sudo ln -s /usr/bin/python3 /usr/bin/python
146 6. Initialize the PostgreSQL database:
149 sudo postgresql-setup initdb
152 Now that dependencies are installed, before running PeerTube you should enable and start PostgreSQL and Redis:
155 sudo systemctl enable --now redis
156 sudo systemctl enable --now postgresql
162 1. Upgrade your packages:
168 2. Add a user with sudoers group access:
171 useradd my-peertube-user
172 passwd my-peertube-user
173 usermod my-peertube-user -a -G wheel # Add my-peertube-user to sudoers
177 3. (Optional) Install certbot (choose instructions for nginx and your distribution):
178 [https://certbot.eff.org/all-instructions](https://certbot.eff.org/all-instructions)
180 4. Install NodeJS 10.x:
181 [https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)
184 [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
186 6. Enable [RPM Fusion](https://rpmfusion.org) for Fedora (available for x86, x86_64, armhfp)
189 sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
191 This is necessary because `ffmpeg` is not in the Fedora repos.
196 sudo dnf install nginx ffmpeg postgresql-server postgresql-contrib openssl gcc-c++ make redis git
197 ffmpeg -version # Should be >= 3.x
198 g++ -v # Should be >= 5.x
203 _from [PostgreSQL documentation](https://www.postgresql.org/download/linux/redhat/):_
204 > Due to policies for Red Hat family distributions, the PostgreSQL installation will not be enabled for automatic start or have the database initialized automatically.
208 sudo postgresql-setup initdb
209 sudo systemctl enable postgresql.service
210 sudo systemctl start postgresql.service
212 sudo systemctl enable nginx.service
213 sudo systemctl start nginx.service
215 sudo systemctl enable redis.service
216 sudo systemctl start redis.service
221 By default, you cannot access your server via public IP. To do so, you must configure firewall:
224 # Ports used by peertube dev setup
225 sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
226 sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
228 sudo firewall-cmd --permanent --zone=public --add-service=http
229 sudo firewall-cmd --permanent --zone=public --add-service=https
231 sudo firewall-cmd --reload
234 10. Configure max ports
236 This is necessary if you are running dev setup, otherwise you will have errors with `nodemon`
239 echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
242 [More info](https://stackoverflow.com/questions/34662574/node-js-getting-error-nodemon-internal-watch-failed-watch-enospc#34664097)
246 On a fresh install of [FreeBSD](https://www.freebsd.org), new system or new jail:
248 1. bootstrap pkg, initialize db and install peertube's dependencies, always as root (sudo not yet installed):
253 pkg install -y sudo bash wget git python nginx pkgconf vips postgresql96-server postgresql96-contrib redis openssl node npm yarn ffmpeg unzip
256 2. Allow users in the wheel group (hope you don't forgot to add your user on wheel group!) to use sudo.
262 Uncomment the line 90
268 3. Enable nginx, redis, postgresql services and initialize database.
271 sysrc postgresql_enable="YES"
272 sysrc redis_enable="YES"
273 sysrc nginx_enable="YES"
276 Initialize database and start services
279 service postgresql initdb
280 service postgresql start
290 brew install ffmpeg nginx postgresql openssl gcc make redis git yarn
296 brew services run postgresql
297 brew services run redis
302 1. Add this to ``/etc/portage/sets/peertube``:
307 media-video/ffmpeg[x264] # Optionnally add vorbis,vpx
315 # Optional, client for Let’s Encrypt:
317 # app-crypt/certbot-nginx
320 2. If you are on a "stable" Gentoo you need to accept the testing keyword ~amd64 yarn:
323 mkdir -p /etc/portage/package.keywords
324 cat << EOF >> /etc/portage/package.keywords/peertube
325 # required by yarn (argument) for PeerTube
330 3. Compile the peertube set:
336 4. Initialize the PostgreSQL database if you just merged it:
339 emerge --config postgresql
342 5. (For OpenRC) Enable and then start the services (replace with the correct PostgreSQL slot):
346 rc-update add postgresql-11
347 rc-service redis start
348 rc-service postgresql-11 start
351 ## Other distributions
353 Feel free to update this file in a pull request!