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 0. Upgrade your packages:
93 1. Add a user with sudoers group access:
95 useradd my-peertube-user
96 passwd my-peertube-user
97 usermod my-peertube-user -a -G wheel # Add my-peertube-user to sudoers
100 2. (Optional) Install certbot (choose instructions for nginx and your distribution) :
101 [https://certbot.eff.org/all-instructions](https://certbot.eff.org/all-instructions)
102 3. Install NodeJS 8.x (current LTS):
103 [https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)
105 [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install)
106 5. Enable [RPM Fusion](https://rpmfusion.org) for Fedora (available for x86, x86_64, armhfp)
108 sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
110 This is necessary because `ffmpeg` is not in the Fedora repos.
114 sudo dnf install nginx ffmpeg postgresql-server postgresql-contrib openssl gcc-c++ make redis git
115 ffmpeg -version # Should be >= 3.x
116 g++ -v # Should be >= 5.x
120 _from [PostgreSQL documentation](https://www.postgresql.org/download/linux/redhat/):_
121 > Due to policies for Red Hat family distributions, the PostgreSQL installation will not be enabled for automatic start or have the database initialized automatically.
124 sudo postgresql-setup initdb
125 sudo systemctl enable postgresql.service
126 sudo systemctl start postgresql.service
128 sudo systemctl enable nginx.service
129 sudo systemctl start nginx.service
131 sudo systemctl enable redis.service
132 sudo systemctl start redis.service
136 By default, you cannot acces your server via public IP. To do so, you must configure firewall:
138 # Ports used by peertube dev setup
139 sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
140 sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
142 sudo firewall-cmd --permanent --zone=public --add-service=http
143 sudo firewall-cmd --permanent --zone=public --add-service=https
145 sudo firewall-cmd --reload
147 9. Configure max ports
149 This is necessary if you are running dev setup, otherwise you will have errors with `nodemon`
151 echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
153 [More info](https://stackoverflow.com/questions/34662574/node-js-getting-error-nodemon-internal-watch-failed-watch-enospc#34664097)
157 On a fresh install of [FreeBSD](https://www.freebsd.org), new system or new jail:
159 1. bootstrap pkg, initialize db and install peertube's dependencies, always as root (sudo not yet installed):
163 # pkg install -y sudo bash wget git python nginx pkgconf vips postgresql96-server postgresql96-contrib redis openssl node npm yarn ffmpeg unzip
166 2. Allow users in the wheel group (hope you don't forgot to add your user on wheel group!) to use sudo
171 Uncomment the line 90
176 3. Enable nginx, redis, postgresql services and initialize database
179 # sysrc postgresql_enable="YES"
180 # sysrc redis_enable="YES"
181 # sysrc nginx_enable="YES"
184 Initialize database and start services
186 # service postgresql initdb
187 # service postgresql start
188 # service redis start
189 # service nginx start
196 brew install ffmpeg nginx postgresql openssl gcc make redis git yarn
201 brew services run postgresql
202 brew services run redis
207 * Add this to ``/etc/portage/sets/peertube``:
211 media-video/ffmpeg[x264] # Optionnally add vorbis,vpx
218 media-libs/vips[jpeg,png,exif]
220 # Optionnal, client for Let’s Encrypt:
222 # app-crypt/certbot-nginx
225 * Compile the peertube set:
230 * Initialize the PostgreSQL database if you just merged it:
232 emerge --config postgresql
235 * (For OpenRC) Enable and then start the services (replace with the correct PostgreSQL slot):
238 rc-update add postgresql-10
239 rc-service redis start
240 rc-service postgresql-10 start
243 ## Other distributions
245 Feel free to update this file in a pull request!