Hauk is a privacy-friendly, web-based location sharing server. In this tutorial, we will guide you on how to install Hauk on a Fedora Server.
Before getting started, make sure you have the following:
sudo
privilegesTo run Hauk, you need some dependencies on your Fedora Server. Open your terminal and run the following command to install them:
sudo dnf install php php-common php-gd php-json php-mbstring php-mysqlnd php-pear php-xml php-fpm php-intl nginx mariadb-server -y
To install Hauk, you have to clone the Hauk repository from Github. To do so, run the following command:
git clone https://github.com/bilde2910/Hauk.git
After cloning the repository, navigate to the Hauk directory and switch to the latest stable tag using the following command:
cd Hauk
git checkout tags/stable
Hauk requires a MySQL or MariaDB database to store user data. We will use MariaDB in our tutorial. To configure MariaDB, run the following commands:
sudo systemctl start mariadb
sudo mysql_secure_installation
When you run the mysql_secure_installation
command, you will be asked a series of questions. Answer them as follows:
After securing MariaDB, log in to the MySQL shell using the following command:
sudo mysql -u root -p
Provide the root password you set during the MariaDB installation.
Now, create a database and user for Hauk using the following SQL commands:
CREATE DATABASE haukdb;
CREATE USER 'haukuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON haukdb.* TO 'haukuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Make sure to replace password
with a strong password for the user.
We will use Nginx as a web server to run Hauk. To configure Nginx, create a new configuration file using the following command:
sudo nano /etc/nginx/sites-available/hauk.conf
Paste the following configuration into the file:
server {
listen 80;
listen [::]:80;
root /var/www/Hauk;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location /ws/ {
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
location ~* \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}
Make sure to replace example.com
with your server's domain name.
Save and close the file by pressing Ctrl+X
, Y
, and then Enter
.
Next, enable the virtual host for Hauk by creating a symbolic link in the sites-enabled
directory using the following command:
sudo ln -s /etc/nginx/sites-available/hauk.conf /etc/nginx/sites-enabled/
Verify that the configuration file is valid by running:
sudo nginx -t
If you get a message that says "syntax is okay" in the output, proceed to the next step.
Reload Nginx to apply the changes using the following command:
sudo systemctl reload nginx
Before configuring Hauk, copy the sample configuration file and rename it to config.php
:
cp config-example.php config.php
Then, open the configuration file using the following command:
nano config.php
In the configuration file, set the following variables:
$secret_key
: Set a random secret key to secure your server$mysql_server
: Set localhost
if your database is on the same server, otherwise, set the server's hostname/IP address$mysql_user
: Set the Hauk database user you created earlier$mysql_password
: Set the password for the Hauk database user$mysql_database
: Set the name of the Hauk database you created earlier$domain
: Set your server's domain nameSave and close the configuration file by pressing Ctrl+X
, Y
, and then Enter
.
Finally, start the Hauk server by running the following command:
sudo php hauk.php
Press Ctrl + Z
to put the process in the background.
Now, Hauk is installed and running on your Fedora Server!
In this tutorial, we explained how to install Hauk on a Fedora Server. By following these steps, you can successfully install and configure Hauk.
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!
Alternatively, for the best virtual desktop, try Shells!