Roll Your Own Twitter Alternative with GNU Social
#Twitter #OpenSource #GNUSocial
Full steps can be found at https://i12bretro.github.io/tutorials/0499.html
01. Log into the Debian device
02. Run the following commands in a terminal:
# update software repositories
sudo apt update
# install software updates
sudo apt upgrade -y
# install Apache and MySQL
sudo apt install apache2 mariadb-server mariadb-client -y
# install PHP components
sudo apt install php7.3 libapache2-mod-php7.3 php7.3-curl php7.3-mbstring php7.3-xml php7.3-fpm php7.3-gd php7.3-gmp php7.3-intl php7.3-mysql php7.3-json -y
# download gnu social
wget -O ~/Downloads/gnu-social-master.tar.gz https://git.gnu.io/gnu/gnu-social/-/archive/master/gnu-social-master.tar.gz
# extract the tar.gz
tar zxf ~/Downloads/gnu-social-*.tar.gz --directory ~/Downloads
# move the folder to web root
sudo mv ~/Downloads/gnu-social-*/ /var/www/html/gnusocial
# set permissions
sudo chown -R www-data:www-data /var/www/html/gnusocial/
sudo chmod g+w /var/www/html/gnusocial/
# configure the MySQL database
sudo su
mysql_secure_installation
03. Press Enter to login as root
04. Type Y and press Enter to set a root password, type the password twice to confirm
05. Type Y and press Enter to remove anonymous users
06. Type Y and press Enter to disallow root login remotely
07. Type Y and press Enter to remove the test database
08. Type Y and press Enter to reload privilege tables
09. Run the following command to login into MySQL:
mysql -u root -p
10. Authenticate with the root password set earlier
11. Run the following commands to create the GNU Social database and database user
CREATE DATABASE gnusocial CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'gnusocial_rw'@'localhost' IDENTIFIED BY 'gnu$ocia1!!';
GRANT ALL PRIVILEGES ON gnusocial.* TO 'gnusocial_rw'@'localhost';
FLUSH PRIVILEGES;
EXIT;
exit
12. Continue with the following commands:
# edit default apache conf
sudo nano /etc/apache2/sites-available/000-default.conf
13. Paste the following at the bottom of the .conf file
≪Directory /var/www/html/gnusocial/≫
AllowOverride all
≪/Directory≫
14. Press CTRL+O, Enter, CTRL+X to write the changes
15. Continue with the following commands:
# enable .htaccess in ./gnusocial
sudo cp /var/www/html/gnusocial/htaccess.sample /var/www/html/gnusocial/.htaccess
# set the relative path in .htaccess
sudo sed -i "s/RewriteBase \//RewriteBase \/gnusocial\//g" /var/www/html/gnusocial/.htaccess
# enable apache2 modules
sudo a2enmod rewrite
# restart apache2
sudo systemctl restart apache2
16. Open a web browser and navigate to http://DNSorIP/gnusocial/install.php
17. The GNU Social installation screen should be displayed
18. Enter a site name and fill out the database connection information as follows
Hostname: localhost
Name: gnusocial
DB username: gnusocial_rw
DB password: gnu$ocia1!!
19. Enter an administrator username, password and email
20. Click the Submit button
21. After the installation completes, click the visit your new GNU social site link toward the bottom of the page
22. Click Login at the top right of the page
23. Login with the administrator user created during initialization
24. Welcome to GNU Social
Source: https://git.gnu.io/gnu/gnu-social/blob/master/INSTALL
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro