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
39 $ sudo pacman -S nodejs yarn ffmpeg postgresql openssl redis git wget unzip python2 base-devel npm nginx
44 1. Install NodeJS 8.x (current LTS):
45 [https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)
47 [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
48 3. Install or compile ffmpeg:
49 * Install - [https://linoxide.com/linux-how-to/install-ffmpeg-centos-7/](https://linoxide.com/linux-how-to/install-ffmpeg-centos-7/)
50 * Compile - [https://gist.github.com/mustafaturan/7053900#file-latest-ffmpeg-centos6-sh](https://gist.github.com/mustafaturan/7053900#file-latest-ffmpeg-centos6-sh)
55 $ sudo yum install epel-release centos-release-scl
57 $ sudo yum install nginx postgresql postgresql-server postgresql-contrib openssl gcc-c++ make redis git devtoolset-7
60 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.
62 $ sudo scl enable devtoolset-7 bash
65 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:
68 $ 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
73 On a fresh install of [FreeBSD](https://www.freebsd.org), new system or new jail:
75 1. bootstrap pkg, initialize db and install peertube's dependencies, always as root (sudo not yet installed):
79 # pkg install -y sudo bash wget git python nginx pkgconf vips postgresql96-server postgresql96-contrib redis openssl node npm yarn ffmpeg unzip
82 2. Allow users in the wheel group (hope you don't forgot to add your user on wheel group!) to use sudo
92 3. Enable nginx, redis, postgresql services and initialize database
95 # sysrc postgresql_enable="YES"
96 # sysrc redis_enable="YES"
97 # sysrc nginx_enable="YES"
100 Initialize database and start services
102 # service postgresql initdb
103 # service postgresql start
104 # service redis start
105 # service nginx start
112 brew install ffmpeg nginx postgresql openssl gcc make redis git yarn
117 brew services run postgresql
118 brew services run redis
123 * Add this to ``/etc/portage/sets/peertube``:
127 media-video/ffmpeg[x264] # Optionnally add vorbis,vpx
134 media-libs/vips[jpeg,png,exif]
136 # Optionnal, client for Let’s Encrypt:
138 # app-crypt/certbot-nginx
141 * Compile the peertube set:
146 * Initialize the PostgreSQL database if you just merged it:
148 emerge --config postgresql
151 * (For OpenRC) Enable and then start the services (replace with the correct PostgreSQL slot):
154 rc-update add postgresql-10
155 rc-service redis start
156 rc-service postgresql-10 start
159 ## Other distributions
161 Feel free to update this file in a pull request!