3 ## Debian / Ubuntu and derivatives
4 1. On a fresh Debian/Ubuntu, as root user, install basic utility programs needed for the installation
7 # apt-get install curl sudo unzip vim
10 2. It would be wise to disable root access and to continue this tutorial with a user with sudoers group access
12 3. Install certbot (choose instructions for nginx and your distribution) :
13 [https://certbot.eff.org/all-instructions](https://certbot.eff.org/all-instructions)
14 4. Install NodeJS 8.x (current LTS):
15 [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)
16 5. Install yarn, and be sure to have a recent version (>= 1.5.1, the latest release):
17 [https://yarnpkg.com/en/docs/install#linux-tab](https://yarnpkg.com/en/docs/install#linux-tab)
22 $ sudo apt install nginx ffmpeg postgresql postgresql-contrib openssl g++ make redis-server git
23 $ ffmpeg -version # Should be >= 3.x
24 $ g++ -v # Should be >= 5.x
27 If you still have a 2.x version of FFmpeg on Ubuntu:
29 $ sudo add-apt-repository ppa:jonathonf/ffmpeg-3
31 $ sudo apt install ffmpeg
34 Now that dependencies are installed, before running PeerTube you should start PostgreSQL and Redis:
36 $ sudo systemctl start redis postgresql
44 $ sudo pacman -S nodejs yarn ffmpeg postgresql openssl redis git wget unzip python2 base-devel npm nginx
47 Now that dependencies are installed, before running PeerTube you should start PostgreSQL and Redis:
49 $ sudo systemctl start redis postgresql
54 1. Install NodeJS 8.x (current LTS):
55 [https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)
57 [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
58 3. Install or compile ffmpeg:
59 * Install - [https://linoxide.com/linux-how-to/install-ffmpeg-centos-7/](https://linoxide.com/linux-how-to/install-ffmpeg-centos-7/)
60 * Compile - [https://gist.github.com/mustafaturan/7053900#file-latest-ffmpeg-centos6-sh](https://gist.github.com/mustafaturan/7053900#file-latest-ffmpeg-centos6-sh)
65 $ sudo yum install epel-release centos-release-scl
67 $ sudo yum install nginx postgresql postgresql-server postgresql-contrib openssl gcc-c++ make redis git devtoolset-7
70 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.
72 $ sudo scl enable devtoolset-7 bash
75 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:
78 $ 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
81 Now that dependencies are installed, before running PeerTube you should start PostgreSQL and Redis:
83 $ sudo service redis start
84 $ sudo service postgresql start
89 On a fresh install of [FreeBSD](https://www.freebsd.org), new system or new jail:
91 1. bootstrap pkg, initialize db and install peertube's dependencies, always as root (sudo not yet installed):
95 # pkg install -y sudo bash wget git python nginx pkgconf vips postgresql96-server postgresql96-contrib redis openssl node npm yarn ffmpeg unzip
98 2. Allow users in the wheel group (hope you don't forgot to add your user on wheel group!) to use sudo
103 Uncomment the line 90
108 3. Enable nginx, redis, postgresql services and initialize database
111 # sysrc postgresql_enable="YES"
112 # sysrc redis_enable="YES"
113 # sysrc nginx_enable="YES"
116 Initialize database and start services
118 # service postgresql initdb
119 # service postgresql start
120 # service redis start
121 # service nginx start
128 brew install ffmpeg nginx postgresql openssl gcc make redis git yarn
133 brew services run postgresql
134 brew services run redis
139 * Add this to ``/etc/portage/sets/peertube``:
143 media-video/ffmpeg[x264] # Optionnally add vorbis,vpx
150 media-libs/vips[jpeg,png,exif]
152 # Optionnal, client for Let’s Encrypt:
154 # app-crypt/certbot-nginx
157 * Compile the peertube set:
162 * Initialize the PostgreSQL database if you just merged it:
164 emerge --config postgresql
167 * (For OpenRC) Enable and then start the services (replace with the correct PostgreSQL slot):
170 rc-update add postgresql-10
171 rc-service redis start
172 rc-service postgresql-10 start
175 ## Other distributions
177 Feel free to update this file in a pull request!