How to Install Akkoma on Fedora Server

Akkoma is a social networking software that allows users to create and join communities, share content, and connect with others. In this tutorial, we will guide you on how to install Akkoma on a Fedora Server.

Prerequisites

Step 1: Update System Packages

Before starting, it is always recommended to update the system packages to their latest version. You can do this by running the following commands as sudo:

sudo dnf -y update

Step 2: Install Required Dependencies

Akkoma requires some dependencies to be installed on your server. Run the following command to install them:

sudo dnf -y install git wget curl unzip nginx mariadb-server php php-fpm php-mysqlnd php-json php-gd php-xml php-mbstring php-zip

Once installed, start and enable nginx and mariadb to start at system boot:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mariadb
sudo systemctl enable mariadb

Step 3: Install Composer

Composer is a dependency manager for PHP, used to install and manage dependencies required by Akkoma. Here's how to install it:

sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Verify that Composer was installed by running:

composer

Step 4: Clone Akkoma Repo

Clone Akkoma's Git repository from GitHub to your document root folder:

sudo git clone https://github.com/akkoma/Akkoma.git /usr/share/nginx/html/akkoma

Step 5: Install Akkoma and Dependencies

Next, navigate to the Akkoma directory and install its dependencies using Composer:

cd /usr/share/nginx/html/akkoma
sudo composer install

Step 6: Configure Akkoma

Create a copy of the example configuration file and name it .env:

cp .env.example .env

Open the .env file using your favorite text editor and fill in the following values:

DB_DATABASE=dbname
DB_USERNAME=dbuser
DB_PASSWORD=dbpass

APP_URL=https://your-domain-name.com

Save and close the file.

Next, generate the application key required by Akkoma:

sudo php artisan key:generate

Step 7: Create Akkoma Database

Log in to MySQL/MariaDB as the root user:

sudo mysql -u root -p

Create a new database:

CREATE DATABASE dbname;

Create a new user and grant privileges to the database:

CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'dbpass';
GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'localhost';
FLUSH PRIVILEGES;
exit;

Step 8: Migrate and Seed Akkoma Database

Run the following commands to create the database tables and seed the database with some initial data:

sudo php artisan migrate:fresh --seed

Step 9: Configure Nginx

Create a new server block configuration for Akkoma:

sudo nano /etc/nginx/conf.d/your-domain-name.com.conf

Add the following configuration:

server {
    listen 80;
    server_name your-domain-name.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name your-domain-name.com;

    ssl_certificate /path/to/your/certificate.pem;
    ssl_certificate_key /path/to/your/key.pem;

    root /usr/share/nginx/html/akkoma/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Replace your-domain-name.com with your domain name and /path/to/your/certificate.pem and /path/to/your/key.pem with the paths to your SSL/TLS certificate and key files respectively.

Save and close the file.

Step 10: Restart Nginx and php-fpm

Apply the changes to Nginx and php-fpm by restarting them:

sudo systemctl restart nginx
sudo systemctl restart php-fpm

Step 11: Access Akkoma

You are now ready to access Akkoma. Open your web browser and go to https://your-domain-name.com. You should see the Akkoma welcome page.

Conclusion

In this tutorial, we have shown you how to install Akkoma on a Fedora Server. You can now use Akkoma to create and join communities, share content, and connect with others.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!