HomeGallery is a lightweight and easy-to-use self-hosted image gallery for your personal photos. Alpine Linux is a minimal Linux distribution that provides a secure and lightweight environment for hosting web applications. In this tutorial, we will guide you through the process of installing HomeGallery on Alpine Linux Latest.
Before you begin, make sure that you have the following:
Log in to your Alpine Linux server and update the package index using the following command:
sudo apk update
HomeGallery requires several dependencies to be installed on your server. Use the following command to install them:
sudo apk add --no-cache curl nginx mariadb mariadb-client mariadb-server-utils php7 php7-fpm php7-json php7-mysqli php7-opcache php7-session php7-zlib php7-gd php7-exif php7-mbstring php7-xml php7-curl
This command will install Nginx, MariaDB, PHP7, and all the required PHP7 modules.
After installing MariaDB, you need to configure it by creating a new user and database for HomeGallery. Use the following commands to create a new user and database:
sudo mysql -u root -p
CREATE DATABASE homegallery;
CREATE USER 'homegallery'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON homegallery.* TO 'homegallery'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Replace strongpassword
with a strong password of your choice.
Now it's time to download and install HomeGallery. Use the following commands to download and extract the latest release of HomeGallery:
cd /tmp
curl -LO https://github.com/photoprism/photoprism/releases/latest/download/photoprism-linux-amd64.tar.gz
tar -xvf photoprism-linux-amd64.tar.gz
sudo mv photoprism /usr/local/bin/photoprism
sudo chmod +x /usr/local/bin/photoprism
rm photoprism-linux-amd64.tar.gz
This will move the photoprism
executable to /usr/local/bin/photoprism
.
Next, you need to configure Nginx to serve HomeGallery. Use the following command to create a new Nginx configuration file:
sudo nano /etc/nginx/conf.d/homegallery.conf
Then, paste the following configuration into the editor:
server {
listen 80;
server_name example.com; # change this to your domain name
root /var/www/homegallery;
index index.php;
access_log /var/log/nginx/homegallery.access.log;
error_log /var/log/nginx/homegallery.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
index index.php;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # change this to your PHP version
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Make sure to replace example.com
with your domain name. You can leave the fastcgi_pass
setting as is if you are using PHP 7.4. If you are using a different version of PHP, make sure to change the version number accordingly.
Save and exit the file by pressing CTRL+X
, then Y
, and then ENTER
.
Finally, start the Nginx, PHP, and MariaDB services using the following commands:
sudo rc-update add nginx default
sudo rc-service nginx start
sudo rc-update add php-fpm7 default
sudo rc-service php-fpm7 start
sudo rc-update add mariadb default
sudo rc-service mariadb start
You can now access HomeGallery by visiting http://example.com
in your web browser, replacing example.com
with your domain name. The first time you visit the page, you will be prompted to configure HomeGallery with your MariaDB credentials.
Congratulations! You have successfully installed HomeGallery on Alpine Linux Latest.
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!