[server.md] some changes to server setup guide
This commit is contained in:
parent
31de5a0a2d
commit
0b77b386a2
|
@ -76,7 +76,11 @@ apt update
|
||||||
- Other -dev packages, g++ - these are needed for the compilation of Ruby using ruby-build.
|
- Other -dev packages, g++ - these are needed for the compilation of Ruby using ruby-build.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
apt -y install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev nginx redis-server redis-tools postgresql postgresql-contrib certbot libidn11-dev libicu-dev
|
apt -y install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \
|
||||||
|
g++ libprotobuf-dev protobuf-compiler pkg-config gcc autoconf bison build-essential \
|
||||||
|
libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 \
|
||||||
|
libgdbm-dev nginx redis-server redis-tools postgresql postgresql-contrib certbot \
|
||||||
|
libidn11-dev libicu-dev gnupg2 supervisor
|
||||||
```
|
```
|
||||||
|
|
||||||
### Dependencies That Need To Be Added As A Non-Root User
|
### Dependencies That Need To Be Added As A Non-Root User
|
||||||
|
@ -84,14 +88,14 @@ apt -y install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-co
|
||||||
Let us create this user first:
|
Let us create this user first:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
adduser --disabled-password gabsocial
|
adduser --disabled-password --shell /bin/bash gabsocial
|
||||||
```
|
```
|
||||||
|
|
||||||
Log in as the `gabsocial` user:
|
Log in as the `gabsocial` user:
|
||||||
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo su - gabsocial
|
su - gabsocial
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Node Version Manager, Node.js, and Yarn
|
#### Node Version Manager, Node.js, and Yarn
|
||||||
|
@ -99,20 +103,17 @@ sudo su - gabsocial
|
||||||
[Node Version Manager](https://github.com/nvm-sh/nvm) is a tool used for managing Node.js deployments. By convention at Gab, we only use Node.js as a standard user. No part of Node.js is managed or executed with superuser privileges. Those responsibilities are handled by Nginx later in this document.
|
[Node Version Manager](https://github.com/nvm-sh/nvm) is a tool used for managing Node.js deployments. By convention at Gab, we only use Node.js as a standard user. No part of Node.js is managed or executed with superuser privileges. Those responsibilities are handled by Nginx later in this document.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
Refresh your user session to pick up the environment changes added by `nvm`. Then, let's install Node.js v10.15.3LTS, verify that it was installed correctly, and install Yarn:
|
Refresh your user session to pick up the environment changes added by `nvm`. Then, let's install Node.js v10.15.3LTS, verify that it was installed correctly, and install Yarn:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# ask NVM to install 10.16.1LTS
|
# ask NVM to install 10.16.1LTS
|
||||||
nvm install --lts 10.16.1
|
nvm install --lts 12.19.0
|
||||||
|
|
||||||
# ask Node to print it's version number and exit.
|
nvm alias default 12.19.0
|
||||||
node --version
|
nvm use 12.19.0
|
||||||
|
|
||||||
# (should display)
|
|
||||||
v10.16.1
|
|
||||||
|
|
||||||
# Install Yarn, globally
|
# Install Yarn, globally
|
||||||
npm install -g yarn forever
|
npm install -g yarn forever
|
||||||
|
@ -120,37 +121,24 @@ npm install -g yarn forever
|
||||||
|
|
||||||
#### rbenv, Ruby, Rails, Rake
|
#### rbenv, Ruby, Rails, Rake
|
||||||
|
|
||||||
We will need to set up [`rbenv`](https://github.com/rbenv/rbenv) and [`ruby-build`](https://github.com/rbenv/ruby-build):
|
We will need to set up rvm.
|
||||||
|
|
||||||
|
As root:
|
||||||
```sh
|
```sh
|
||||||
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
|
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
||||||
cd ~/.rbenv && src/configure && make -C src
|
|
||||||
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
|
|
||||||
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
|
|
||||||
|
|
||||||
# Restart shell
|
\curl -sSL https://get.rvm.io | bash -s stable
|
||||||
exec bash
|
|
||||||
|
|
||||||
# Check if rbenv is correctly installed
|
usermod -a -G rvm root
|
||||||
type rbenv
|
usermod -a -G rvm gabsocial
|
||||||
|
|
||||||
|
source /etc/profile.d/rvm.sh
|
||||||
|
|
||||||
|
rvm install 2.6.5
|
||||||
|
|
||||||
# Install ruby-build as rbenv plugin
|
|
||||||
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Now that [`rbenv`](https://github.com/rbenv/rbenv) and [`ruby-build`](https://github.com/rbenv/ruby-build) are installed, we will install the
|
|
||||||
[Ruby](https://www.ruby-lang.org/en/) version which [Gab Social](https://code.gab.com/gab/social/gab-social) uses. That version will also need to be enabled.
|
|
||||||
|
|
||||||
To enable [Ruby](https://www.ruby-lang.org/en/), run:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# We recommend watching videos on BitChute while this procedure
|
|
||||||
# ruins your whole machine forever.
|
|
||||||
rbenv install 2.6.1
|
|
||||||
|
|
||||||
# set the global RoR environment to version 2.6.1
|
|
||||||
rbenv global 2.6.1
|
|
||||||
```
|
|
||||||
|
|
||||||
### node.js And Ruby Dependencies
|
### node.js And Ruby Dependencies
|
||||||
|
|
||||||
|
@ -160,7 +148,7 @@ Run the following to clone and install:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Return to gabsocial user's home directory
|
# Return to gabsocial user's home directory
|
||||||
cd ~
|
su - gabsocial
|
||||||
|
|
||||||
# Clone the gabsocial git repository into ~/live
|
# Clone the gabsocial git repository into ~/live
|
||||||
git clone https://code.gab.com/gab/social/gab-social live
|
git clone https://code.gab.com/gab/social/gab-social live
|
||||||
|
@ -168,9 +156,6 @@ git clone https://code.gab.com/gab/social/gab-social live
|
||||||
# Change directory to ~/live
|
# Change directory to ~/live
|
||||||
cd ~/live
|
cd ~/live
|
||||||
|
|
||||||
# Checkout to the latest stable branch
|
|
||||||
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
|
|
||||||
|
|
||||||
# Install bundler
|
# Install bundler
|
||||||
gem install bundler
|
gem install bundler
|
||||||
|
|
||||||
|
@ -413,7 +398,7 @@ If upgrading:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd ~/live
|
cd ~/live
|
||||||
RAILS_ENV=production rails assets:precompile
|
RAILS_ENV=production bin/rake assets:precompile
|
||||||
```
|
```
|
||||||
|
|
||||||
The interactive wizard will guide you through basic and necessary options, generate new app secrets, setup the database schema and precompile the assets.
|
The interactive wizard will guide you through basic and necessary options, generate new app secrets, setup the database schema and precompile the assets.
|
||||||
|
@ -554,4 +539,4 @@ m.deliver
|
||||||
|
|
||||||
That is all! If everything was done correctly, a [Gab Social](https://code.gab.com/gab/social/gab-social) instance will appear when you visit `https://example.com` in a web browser.
|
That is all! If everything was done correctly, a [Gab Social](https://code.gab.com/gab/social/gab-social) instance will appear when you visit `https://example.com` in a web browser.
|
||||||
|
|
||||||
Congratulations and welcome to Gab Social!
|
Congratulations and welcome to Gab Social!
|
||||||
|
|
Loading…
Reference in New Issue