FileRun
So PhotoPrism is pretty darn cool! It looks great and has some advanced features that are fantastic, but it lacks user management for me to really share my photos with others. I came across FileRun for sharing files and a few people mentioned they use it to share photos. Well it looks fairly solid, and it's free for up to five users so I'm going to spin it up and see how it works.
I created a new virtual machine named FILERUN-01 on HV-03 and installed Ubuntu 22.04.
Configure Operating System
Configure SSH Key
Steps performed on desktop via Windows Terminal
ssh-keygen -t ed25519Move-Item -Path c:\Users\david\filename* -Destination c:\Users\david\.ssh -Force- I open Windows Terminal
Settings - I open the
JSONfile and add the following:
{
"colorScheme": "Ubuntu-ColorScheme",
"commandline": "ssh -i \"~/.ssh/filerun-01\" [email protected]",
"experimental.retroTerminalEffect": false,
"font":
{
"face": "Cascadia Code"
},
"guid": "{0caa0dad-35be-5f56-a8ff-XXXXXXXXXXXXX}",
"hidden": false,
"name": "FILERUN-01",
"tabTitle": "FILERUN-01"
},
- I confirm the
GUIDis unique and save the file
Configure SSH
Steps performed on FILERUN-01
mkdir /home/david/.sshnano /home/david/.ssh/authorized_keys- I paste in the public key and save the file
chmod 600 /home/david/.ssh/authorized_keyssudo nano /etc/ssh/sshd_configPermitRootLogin noPubkeyAuthentication yesPubkeyAcceptedKeyTypes ssh-ed25519PasswordAuthentication noAuthorizedKeysFile /home/david/.ssh/authorized_keys
- I save the file
sudo sshd -tsudo systemctl restart ssh
Configure Firewall
Steps performed on FILERUN-01
sudo ufw allow 22sudo ufw allow 80sudo ufw allow 443sudo ufw enable
Install FileRun Prerequisites
Steps performed on FILERUN-01
sudo apt install wgetsudo apt install unzipsudo apt install dockersudo apt install docker-compose
Install FileRun
Steps performed on FILERUN-01
mkdir fileruncd filerun/nano docker-compose.yml
version: '2'
services:
db:
image: mariadb:10.1
environment:
MYSQL_ROOT_PASSWORD: your_mysql_root_password
MYSQL_USER: your_filerun_username
MYSQL_PASSWORD: your_filerun_password
MYSQL_DATABASE: your_filerun_database
volumes:
- /filerun/db:/var/lib/mysql
web:
image: filerun/filerun
environment:
FR_DB_HOST: db
FR_DB_PORT: 3306
FR_DB_NAME: your_filerun_database
FR_DB_USER: your_filerun_username
FR_DB_PASS: your_filerun_password
APACHE_RUN_USER: www-data
APACHE_RUN_USER_ID: 33
APACHE_RUN_GROUP: www-data
APACHE_RUN_GROUP_ID: 33
depends_on:
- db
links:
- db:db
ports:
- "80:80"
volumes:
- /filerun/html:/var/www/html
- /filerun/user-files:/user-files
mkdir htmlmkdir user-filesmkdir dbdocker-compose up -d
Access and Configure FileRun
Steps performed on desktop
I bring up my browser and travel to http://filerun.domain.local. It loads and I work my way through the setup wizard. Now I wonder if I can utilize an existing store of photos?
Steps performed on DC-02 via Windows Admin Center
- I create a new basic service account of
_service_filerun
Steps performed on FILERUN-01
sudo apt install cifs-utilsnano /home/david/.fileruncredentials
username=_service_filerun
password=XXXXXXXXXXXX
domain=domain.local
- I saved the file
.fileruncredentials chmod 400 /home/david/.fileruncredentialsmount -t cifs -o rw,vers=3.0,credentials=/home/david/.fileruncredentials //10.10.10.XXX/Data/Pictures/TestFolder /home/david/filerun/user-files/
The mount is working correctly but there is nothing showing up in FileRun. Is there a way to have it rescan for file changes? I do find some commands but they are not working for me. Is it possiblly because I need to start the container after the location was mounted?
docker-compose downdocker-compose up -d
No that isn't the issue. Oh I know what it is. It's a permission issue because I had run some steps as root. Doh!
umount -l /home/david/filerun/user-files/chown david:david /home/david/filerun/user-filesexitmount -t cifs -o rw,vers=3.0,credentials=/home/david/.fileruncredentials /10.10.10.XXX/Data/Pictures/TestFolder /home/david/filerun/user-filesmount.cifs: permission denied: no match for /home/david/filerun/user-files found in /etc/fstab
sudo nano /etc/fstab//10.10.10.XXX/Data/Pictures/TestFolder /home/gooseneck/filerun/user-files/ cifs credentials=/home/david/.fileruncredentials,uid=1000,guid=1000,iocharset=utf8 0 0
sudo mount -a
Doesn't work. Ohhh....that's a silly mistake. I've gotta read those mount point locations just a little bit better.
rm -R /home/david/filerun/dbrm -R /home/david/filerun/htmlrm -R /home/david/filerun/user-filessudo nano /etc/fstab//10.10.10.XXX/Data/Pictures/TestFolder /filerun/user-files/ cifs credentials=/home/david/.fileruncredentials,uid=1000,gid=1000,iocharset=utf8 0 0
mount -adocker-compose downdocker-compose up -d
There we go! Now from the info I am finding online the commands to scan in my initial files is:
docker exec -it filerun_web_1 php /var/www/html/cron/make_thumbs.phpdocker exec -it filerun_web_1 php /var/www/html/cron/index_filenames.php/user-files/docker exec -it filerun_web_1 php /var/www/html/cron/metadata_index.php
That did it! I can see my test files inside FileRun. And just in time to call it for today!