This post is not relevant anymore. Gab has permanently removed (and will not be re-enabling) Federation in any capacity, so there's no point to even considering running your own Gab Social-based site.
These instructions cover the complete process, “all batteries included”, as I executed this on a VPS.
First, install Docker+Compose.
Then, grab the Gab source code and build it:
git clone -b develop https://code.gab.com/gab/social/gab-social.git
(No; they do not have a stable branch…or versioned tags…)pushd gab-socialcp -v .env.production.sample .env.production- Edit
docker-compose.yml- add the following to the end of the
dbsection:environment: - POSTGRES_HOST_AUTH_METHOD=trust
- add the following to the end of the
time docker-compose build
This last step took a little under an hour on the 2-core VPS I'm renting, so (unless you're not cheaping out) you'll want to take a break.
Also, mine died in Step 10/37; I ended up having to reboot the system before it'd work again and complete. (I'm not sure whether this was a problem with Docker, the Dockerfile, or just my hosting provider's images.)
You can punch the holes in your firewall while you're waiting:
systemctl start firewalld && systemctl enable firewalldfirewall-cmd --permanent --add-service=http --add-service=https
Then, set it up:
dnf config-manager --add-repo http://nginx.org/packages/centos/8/$(arch)echo 'gpgkey=https://nginx.org/keys/nginx_signing.key' >> /etc/yum.repos.d/nginx*.repodnf install nginx && systemctl enable nginx
Configure a proxying site:
mkdir -v /etc/nginx/sites-{enabled,available}echo 'include sites-enabled/*;' >> /etc/nginx/conf.d/sites.confpushd /etc/nginx/sites-available- Edit (create) text file
gabsocial - Paste this monster into it
- Find-and-replace "example.com" and put in your web domain
(in Nano, that's Ctrl_W, Ctrl_R) - Change the
rootvalues to something like/var/www/null(don't remove the semicolon at the end!) - Save-and-quit
ln -vs ../sites-available/gabsocial ../sites-enabled/popd
Set up a TLS certificate (if you know what you're doing, obviously you can replace this part with what you're doing):
dnf install epel-release && dnf install letsencryptletsencrypt certonly -d example.com --standalone
Set the whole mess up:
sed -i s_/mnt/md0/assets_/var/gabsocial/assets_ docker-compose.ymlmkdir -vp /var/gabsocial/assets && chmod -Rv 991:991 /var/gabsocial/assetssed 's/^\(SECRET_KEY_BASE=\).*$/\1'$(docker-compose run --rm web bundle exec rake secret)/ -i .env.productionsed 's/^\(OTP_SECRET=\).*$/\1'$(docker-compose run --rm web bundle exec rake secret)/ -i .env.production/var/gabsocial/assetsdocker-compose run --rm web bundle exec rails gabsocial:setup- Accept the defaults for everything except the domain and mail settings
- I don't know what to tell you about the mail settings other than the fact that "send mail from localhost" and "don't send a test e-mail" are your best bet if you don't have an e-mail server
- Replace
${local_domain}with your actual local domain, and run:
sed 's/^\(LOCAL_DOMAIN=\).*$/\1'${local_domain}/ -i .env.production- If and only if you are running a separate
WEB_DOMAIN, likewise run:
sed 's/^#? ?\(WEB_DOMAIN=\).*$/\1'${web_domain}/ -i .env.production
- If and only if you are running a separate
And, finally, start it:
systemctl start nginxdocker-compose up -d