March 2, 20251 yr FileRun is a self-hosted file sync and share web-based application - Like Google Drive, but private! and under your full control. Website | Demo | Registry | Documentation | Template Repo This application template configures FileRun and prepares it for use however some additional manual installation steps are necessary in order to get up and running, refer to the installation steps below for more information. FileRun FeaturesGreat for photos: Fast thumbnail and preview generation. On the fly, while browsing foldersGuest users: Collaborate with other people without creating accounts for themMetadata support: Automatically extracts and index information Exif, XMP and IPTC, so you can search photos by keywords, dates, author and more!Send file requests: File requests allow you to collect and receive files from anyone, right into your FileRun user account, with just a linkAnd a lot more! Fully secure, desktop sync, full mobile support, virtual drives, extensive plugins (Google Docs, Microsoft Office, Autodesk) More information on what FileRun has to offer can be found on the official website.ScreenshotsRequirementsFileRun is a paid application — a perpetual license is required and can be obtained at: filerun.com/pricingA relational database is required for FileRun, you will need either: MySQL 8.4 (or higher) or MariaDB 10.11 (or higher)A reverse proxy (such as Nginx Proxy Manager) is required in order to serve your frontend at the FQDN registered to your FileRun license: this is still necessary even if you plan to run FileRun locally (though you do not need to make it public and can remain entirely local!) Installation & SetupInstall FileRun from the community applications store and configure the template as necessary, then create the container and allow it to startYou will now need to download your copy of FileRun:Login to the client area at: my.filerun.comGo to Your Licenses from the navigation bar and note down your License key: this will be needed later following installationGo to Download FileRun from the top navigation bar, you will be redirected to a drive with downloads for the latest version of FileRun — download the ZIP file of the latest version (e.g. FileRun-2026.2.0-PHP-8.3.zip) Upload the ZIP file to the Application Data Directory that you configured for the container (by default this is: /mnt/user/appdata/filerun)Open a terminal and run the commands below to cd into this directory, unzip the file and then update ownership permissions to 99:100 (nobody:user): // cd into appdata directory (or whatever directory you are using) $ cd /mnt/user/appdata/filerun // Extra the FileRun zip and update permissions $ unzip -o "FileRun-2026.2.0-PHP-8.3.zip" && chown -R --no-dereference 99:100 . // You can remove the original zip file now :) $ rm "FileRun-2026.2.0-PHP-8.3.zip"Restart the container and visit the Web UI at the configured port (by default this is: 7940) and verify the frontend is up and running, however do not proceed with installation yet! You must complete installation using the FQDN registered to the license key that you wish to use for this instance. Setup your FileRun server to be accessible from your license hostname using a reverse proxy, for this example (and recommended) we will use Nginx Proxy Manager for a quick seamless setup:Go to Nginx Proxy Manager ➜ Proxy Hosts ➜ Add Proxy Host and fill in the Details and SSL tabs as shown below:This example creates a hostname for files.mydomain.com with SSL. Hit Save to create the proxy host and then visit your domain: the web UI should be accessible over HTTPS and you should see the same FileRun setup page from step 5. Proceed with installation through the Web UI:You will be shown a pre-install check screen that details various aspects of the upcoming install, if you see a warning that the /var/www/html directory is not writable then ensure the application data directory itself and all contents were set to the nobody:users permission group with: chown -R 99:100 /mnt/user/appdata/filerunNext you will be prompted for database creation, the database credentials should automatically have been populated into these fields from your template configuration ➜ proceed to the next stepThe database has been created, and you will be shown the FileRun superuser credentials - copy these details now. Proceed to the login page and use the superuser details from the previous step, after you login you will be prompted to update the superuser account:Under the Login tab change the username and password to your liking and press Save changes at the topUnder the Permissions tab you will need to set the home folder Path to: /user-files and then press Check path to confirm that the directory exists and has the necessary permissions - finally, press Save changes at the topNote: If you are opting for a multi-user setup then ideally you will want to create separate folders within /user-files for each user and then assign the path in this home folders tab for each of your users in FileRun accordingly. Congratulations, FileRun is up and running! 🎉 SupportIf you have any issues with the template or it has gone out of date, please let me know and I will update it as soon as I can - otherwise you are welcome to leave any support queries below. Edited April 24Apr 24 by ImSkully Updated instructions for version 2026.2.0
March 2, 20251 yr Author ⚠️Updating From 2024.1 to 2026.2+FileRun 2026 has been released and contains a ton new changes and improvements, it's highly recommended you have a read through everything that has changed and any breaking changes that may affect you: docs.filerun.com/2026PrerequisitesStarting from FileRun 2026.1, you must ensure you are running a database version of MySQL 8.4 or higher, or MariaDB 10.11 or higherPHP & File PermissionsFrom version 2026.1+ there are significant improvements made to file permissions and Docker that simplifies the user:group that is used by the Docker container for PHP and eliminates the need for the previous APACHE_* template variables. If you previously made adjustments to any file permissions or altered the PHP/Apache user or groups, then the update process may not be able to replace files during the update.To avoid this, please set the permission of the entire FileRun application data folder so that PHP can replace all files without issues (this will be set back to 99:100 after the update completes):chown -R 65534:100 /mnt/user/appdata/filerunPersonally, to stay on the safe side I highly recommend running the above command regardless of whether you have made any permission changes in the past to avoid any issues. Don't worry, if the update process fails at any point, you can retry it again - it's very graceful and will output any issues that need to be resolved should they occur.Backup Before Proceeding!Before proceeding with any update, it is highly advised to create backups of your FileRun instance including both the Application Data Directory contents and the FileRun database!Backup: Application Data DirectoryTo backup your FileRun application data directory (normally /mnt/user/appdata/filerun by default on the template) you can run the following command from the Unraid terminal:# cd into the application data directory where your FileRun folder is cd /mnt/user/appdata # create a zip file of all contents within filerun/ which will be stored as filerun.zip in the current location zip -r filerun.zip filerun/Backup: DatabaseThis will vary depending on your database engine, either MySQL or MariaDB: if you are not familiar with how to export your database, follow the steps as outlined here: docs.filerun.com/backupUpdate ProcessEnsure you have your FileRun license key as it may be required to input this again following the update process (normally this will be automatically populated following the steps below, but should your installation fail now is a good time to check you know your key). To find your license key, in your FileRun instance head to Control Panel → FileRun or check the Your Licenses page on the official FileRun website in the client areaNavigate to the Control Panel in your FileRun instance and check for updates at Control Panel → FileRun → Updates and press the Check for updates buttonThis should automatically discover the latest FileRun version available, take a brief moment to read through any information and then press Download updateAfter the update has downloaded, press Install updateThis step is where you might be likely to run into installation errors: if it fails, do NOT proceed further until you follow the steps in the error logs displayed or refer to the Troubleshooting section at the bottom of this post.After successful installation from the control panel, you should see the following at the bottom of the update logs:✅ Application files successfully updated!👉 Important: to finish the update, please reload the page in your browser.👉 You will receive further guidance in order to complete the process.At this point reloading the page will now result in a HTTP 500 which is expected as the PHP version in the Docker image is outdatedStop the FileRun docker container and then edit the following values in the template:Change Repository from filerun/filerun:8.1 to filerun/filerun:latestAdd the following in Extra parameters: --user 99:100Scroll down to the template variables and remove all 4 of the following APACHE_* variables if they exist (press Show more settings to expand variables if hidden):Remove APACHE_RUN_USER_IDRemove APACHE_RUN_GROUP_IDRemove APACHE_RUN_USERRemove APACHE_RUN_GROUPHit Apply and wait for the container to update to the latest image and start up againIf you changed PHP file permissions to 65534:100 earlier, you should now set them back: chown -R 99:100 /mnt/user/appdata/filerunGo to your FileRun instance homepage, you will be prompted with: "Applying update: You are updating from version 2024.1.x to 2026.2.x" (versions may vary) → Press proceedYou will be shown all installation requirements and statuses, ensure everything looks good before proceeding:Verify PHP version is 8.4+Verify File permissions is Writable (if it's not writable, you didn't run step #9 and need to do so!)Press Proceed and input your license key if it is not automatically populated then press ValidateYou will be presented with your database details which should be automatically populated, ensure the details are correct and that the database user being used has ALTER/DROP privileges for the purpose of update (if not, you can temporarily specify a root user on this page)Press Next and you should see "Found version 2024.1.x, FileRun can update and use this database."If you see an error message relating to database versions, then you are running an incompatible database version: please update to MySQL 8.4+ or MariaDB 10.11+Ensure Update and use the existing data is checked → press InstallDone! 🎉Troubleshooting❌ "/var/www/html" is not writable. Change its ownership or permissions and try again.If you receive the following error:❌ "/var/www/html" is not writable. Change its ownership or permissions and try again.ℹ️ Changing its ownership in the filesystem to "nobody (UID: 65534)" should fix the problem.ℹ️ If that doesn't fix it, you might need to adjust the SELinux context as well.-------------------------------------❌ Failed to install update. Check above for error messages.If you receive the above error message during installation, please refer to the steps outlined earlier in PHP & File Permissions.Cleaning after previous update...Failed (Delete folder error: Delete folder error: Delete file error: unlink(/var/www/html/system/data/temp/_unzipped_update/files/api.php): Permission denied). Please manually delete "/var/www/html/system/data/temp/_unzipped_update" and try again.This may happen if you attempted more than one installation due to a previous attempt failing. To resolve this, you need to both update the application data directory file permissions (see PHP & File Permissions above) and manually run the below command if the updater isn't cleaning up the previous update resources:# Warning: this is a dangerous command to recursively delete everything at the specified path, double check your path is correct before executing! rm /mnt/user/appdata/filerun/system/data/temp/_unzipped_update -rfAfter you have done this, download and install the update again.Issues with creating/deleting files or foldersIf you are unable to create new files/folders or delete them through FileRun then you likely have the wrong file permissions set on your user files directory. To resolve this, update the permissions for your user files directory that you have mapped to the user-files/ mount in the Docker application template:chown -R 99:100 path-to-your-user-files/ Edited April 24Apr 24 by ImSkully Added updating & troubleshooting for 2026.2+
March 7, 20251 yr Looks very interesting. I struggle with anything beyond simple networking so excuse me if I'm being a bit dense but I have a few things I'm not sure about. Reading up on it I'm thinking I will need a properly registerd domain name with ports permantely open even if I'm using locally but I don't open any ports and do remote access via Twingate and/or Tailscale so if I install Nginx, add a certificate and install Filerun will it be accesible using my current remote options. Will putting Tailscale into the docker direct work or will I need to go throught a subnet on my Unraid server and if I'm running it with local access can I just make a domain name up. I don't mind opening ports for initial installation if necessary but will want to close them after. I was considering just having a go but I'm not sure their refund policy will cover me if I download the files but can't get it to work. Thanks
March 7, 20251 yr Author 4 hours ago, Saqqara said: Looks very interesting. I struggle with anything beyond simple networking so excuse me if I'm being a bit dense but I have a few things I'm not sure about. Reading up on it I'm thinking I will need a properly registerd domain name with ports permantely open even if I'm using locally but I don't open any ports and do remote access via Twingate and/or Tailscale so if I install Nginx, add a certificate and install Filerun will it be accesible using my current remote options. Will putting Tailscale into the docker direct work or will I need to go throught a subnet on my Unraid server and if I'm running it with local access can I just make a domain name up. I don't mind opening ports for initial installation if necessary but will want to close them after. I was considering just having a go but I'm not sure their refund policy will cover me if I download the files but can't get it to work. Thanks The need for a domain is only for the purpose of purchasing the FileRun license key, they require a host name that needs to be associated with the license key but that's about it - you won't actually need to expose FileRun or port forward at all if you don't wish to do so. If you try to access the web UI from the raw Unraid server IP:Port of the container then you'll be greeted with this: When you go through the installer and paste in your license key, it will verify that the domain you are visiting from is the same as what is registered on the key you use: you could simply just update your device hosts file and point said domain to your server and that will allow you to access FileRun. Though a step above this and the recommended approach to also make use of SSL is to configure your reverse proxy (such as NPM as shown in screenshots) to point to the FileRun container. Hope this makes sense! I'll update the original post to include more details on this and cover the steps to go down the hosts file route to provide an alternative setup without having to necessitate a domain. Edited March 7, 20251 yr by ImSkully
March 8, 20251 yr Hi, thanks for getting back to me so quickly, I've worked out how to edit the hosts file and tried to access a wordpress instance I have running locally and although I could get to the Nginx congratulations page and the config page I couldn't get a certificate or open it. I have now bit the bullet and bought a domain and put my Nginx instance in my routers DMZ, got a certificate sorted for the wordpress but still no access. Current plan is to come back to it later today and if I can get the wordpress going crack on with the filerun using your guide and once that's stable move Nginx out of the dmz and throw wireguard into the mix and see what happens.
March 8, 20251 yr Well I'm waving the white flag here which is a pity as filerun looks exactly like what I need. I just can't get past 502 bad gateway errors on nginx with anything, I've tried my wordpress, nextcloud, uptime kuma etc instances, fiddled with all sorts of settings, half of which totally confuse me and no dice. Tbh I think I'm the problem here and this is above my monkey see monkey do copy and paste skills 🤣. I've had people tell me how straight forward networking is but I just get confused with it all, fiddle a bit and either get it working and then leave well alone or don't and then delete. I'm sure if anyone who really knows their stuff looked and my setup they'd tell me to delete everything and start again. Thanks again, I'll keep an eye on this and maybe revist at some point when I've got a bit more knowledge maybe it's time to find a good reference book and finally wrap my head around it all🤔
March 14, 20251 yr Couldn't leave this alone and I'm in..... Managed to get wordpress running through Nginx so had a go at Filerun, set up the databse (MySql) and Filerun containers but the Filerun one wouldn't start, checked the logs and only problem was Error: The directory named as part of the path /var/www/html/system/data/temp/supervisord.log does not exist thought this could be permission related and saw there was a permission step later in the guide so bought the licence, downloaded the files, uploaded to the server and unzipped, had an chown: missing operand after ‘99:100’ Try 'chown --help' for more information at the end but the container started. I tried to configure Nginx but it wouldn't have it although I did get it going later after I'd got Filerun working Added the domain name to the hosts file entered it in a browser and got ot the setup, as an aside I did inadvertaintly go to the web ui from unraid and got to the setup page although I obviously couldn't set up from there and like it says in the guide once set up it's not licensed to run on that. I then just ran through the setup which took a couple of goes as my Bitdefender kept blocking things. Only problem at the minute is setting up the storage path but that'll have to wait until later. This looks really cool so far, and I know I can get local only access via a hosts file entry and once I'm settled I'll look at running it through tailscale which should be fun. ImSkully thanks for this, sorry if my posts have been a bit wordy and rambling but hopefully will be useful to someone.
March 14, 20251 yr OMG, my permissions knowledge is even worse than my network knowledge and the solution was so obvious and appears to be nothing to do with permissions. All I had to do was set the home folder path to /user-files and it maps to the folder specified in the setup 😬🤦♂️ OK, so I'm now stuck at setting up the home folder, I think it could have something to do with the permissions set with the chown command in the install process. When I try to set the path it tells me it doesn't exist or php can't access and when I try to create I get permission denied, screenshot attached. Edited March 15, 20251 yr by Saqqara
March 15, 20251 yr Author @Saqqara Sounds like a lot of learnings along the way 😁 did you manage to get FileRun running fully locally in the end?
March 16, 20251 yr I can via editing the hosts file, thanks for the heads up on that btw, beyond that had a quick go with tailscale but couldn't get it to work but I'll hopefully have an hour or two to spare tomorrow to look into it a bit more. Regarding Filerun itself, I'm loving it. I moved from a microsoft setup to Unraid about 5 years ago and should've had a good tidy up then as my file organisation was a bit messy but ended up just moving everything across and it's all only got worse, Filerun will really help me out, it costs but so did Unraid and I've never regretted buying that.
March 20, 20251 yr OK, everything became really unstable pretty quick with even local access via the hosts file so deleted filerun and nginx and reinstalled filerun then I realised that to map via the hosts file I had changed the network in the template from bridge to custom:br0 because hosts file wont take port numbers. Reinstalled Nginx and put it in the DMZ and I'm now back to 502 bad gateway on that and the installation screen via ip address that can't be used for installation. I've put my wordpress instance back up and it's absolutly fine but that's set to custom network. So I'm going to park this for a bit, I could just change the filerun network to custom:br0 again and go in through hosts but I'm not sure if that was what caused my stability issues in the first place, the Nginx issue would suggest there are other issues here but I can't see them. If anyone has any ideas with how I can get stable access even just locally I am all ears.
March 22, 20251 yr Author @Saqqara Definitely sounds like there is something unrelated with your setup that is interfering with this, hard to say without knowing the full workings of your home server setup. Quote Reinstalled Nginx and put it in the DMZ Just a heads up, this is almost always a bad idea - DMZ should not be used especially if you are exposed to the internet as this opens you up to a whole world of security vulnerabilities. Edited March 22, 20251 yr by ImSkully
March 22, 20251 yr Actually reinstalled everything 2 days ago using a different Nginx and forwarded the ports instead of using the dmz and seems all good at the minute, the dmz thing was just temporary to get it going before moving to local access but as that seems to be when the instability starts I'm leaving everything alone for now. Tbh my network is a mess, I usually buy a decent router and put the ISP issued ones in a drawer and forget about them but my wife is working form home these days and to get support from the ISP I have to use their router and it's a horrid thing. I've tried to replace it and even flirted very briefly with a pfsense box but bottled it when thinking about the wife not being able to get online and having to go into the office 🫣😱
March 28, 20251 yr Hey, thanks for this docker - this resolved the php permission problems i was not able to fix with my own compiled docker. Only problem i have: Even though i have apache run user and group configured like mentioned, if folders are created within Filerun, they dont get an ower and i dont have smb write permissions until i change it manually. Any way to fix this? What am i doing wrong?
April 2, 20251 yr On 3/28/2025 at 11:54 AM, asynic said: Hey, thanks for this docker - this resolved the php permission problems i was not able to fix with my own compiled docker. Only problem i have: Even though i have apache run user and group configured like mentioned, if folders are created within Filerun, they dont get an ower and i dont have smb write permissions until i change it manually. Any way to fix this? What am i doing wrong? It looks like I fixed this by changing the Apache Group User and Group to 99/100 aswell instead of "user" and "nobody".
April 4, 20251 yr Any idea how to configure the php options like this one? The documentation doesn't help. Uploading files temporarily fills up the docker.img without this path being set. I can't map it to a host path because there's no internal path to map to without first setting the PHP configuration for this. Edit: I figured out a temporary work around, I mapped "/tmp" -> "/mnt/user/appdata/filerun/tmp" which seems to have worked for now. I still would like to be able to alter the php settings though. Edited April 4, 20251 yr by MowMdown
April 5, 20251 yr Author 19 hours ago, MowMdown said: Any idea how to configure the php options like this one? The documentation doesn't help. Uploading files temporarily fills up the docker.img without this path being set. I can't map it to a host path because there's no internal path to map to without first setting the PHP configuration for this. Edit: I figured out a temporary work around, I mapped "/tmp" -> "/mnt/user/appdata/filerun/tmp" which seems to have worked for now. I still would like to be able to alter the php settings though. The internal PHP configuration file for FileRun is located in the docker volume at the /usr/local/etc/php/conf.d/ directory, you could add a volume mapping for this on Unraid in order to access it by pointing it to a folder in /mnt/user/appdata/filerun/ directory. Not sure how FileRun will behave if this is mapped on an existing container? I know once FileRun is running the PHP config file is /usr/local/etc/php/conf.d/filerun-optimization.ini which contains some preconfigured defaults but of course no upload_tmp_dir so you could create your own php.ini here and configure it (see FileRun docs: PHP configuration). There is an existing feature request here which goes over this exact problem. I also found topics on FileRun forums that are related to this with some useful bits of knowledge: Big WebDav Uploads fills Unraid Docker Image Disk Increasing upload size - Docker install Where to configure PHP options? I need to try this myself at some point to verify and then update the container template to include this mapping by default for Unraid users. There are also some advanced configuration options for FileRun that can be changed by creating a /mnt/user/appdata/filerun/customizables/config.php file which might also be of interest - I'm using this to adjust the thumbnail cache dir $config["path"]["thumbnail_cache"] to /var/www/html/_thumbnails/ so thumbnails are all located in one folder in FileRun's appdata (/mnt/cache/appdata/filerun/_thumbnails/) rather than being placed alongside the user files directory on my array share; this prevents disk spin up when navigating FileRun as thumbnails will then be loaded from appdata which is exclusively set to a cache pool. Edited April 5, 20251 yr by ImSkully
April 5, 20251 yr That last topic you linked is my own, I posted in their forum hoping the dev could help but it seems pretty dead over there and I don't have high hopes it gets answered. With that said, I did attempt to map the internal php location but it does not populate with the php files and causes filerun to bug out. I did not attempt it as a fresh install yet which might work but I don't have high hopes for that either. I also found that you have to set the apache user and group to 99 and 100 just like @asynic did as this is the only way to fix permissions.
April 5, 20251 yr Author 6 minutes ago, MowMdown said: I did attempt to map the internal php location but it does not populate with the php files and causes filerun to bug out. My guess is you'd need to copy over the existing .ini files that are in the docker volume to go into the new mapped directory as it would be expecting to be there (likely generated during initial setup). 6 minutes ago, MowMdown said: I also found that you have to set the apache user and group to 99 and 100 just like @asynic did as this is the only way to fix permissions. By this do you mean you had to set the APACHE_RUN_USER_ID + APACHE_RUN_GROUP_ID environment variables in the template to 99 + 100? Or is there elsewhere a change is necessary? I ask this because the template should by default have these preconfigured so it works out of the box. Edited April 5, 20251 yr by ImSkully
April 5, 20251 yr 2 hours ago, ImSkully said: By this do you mean you had to set the APACHE_RUN_USER_ID + APACHE_RUN_GROUP_ID environment variables in the template to 99 + 100? Or is there elsewhere a change is necessary? I ask this because the template should by default have these preconfigured so it works out of the box. This: If you leave it as the default names as "nobody:users" it doesn't work.
April 5, 20251 yr Author 4 minutes ago, MowMdown said: If you leave it as the default names as "nobody:users" it doesn't work. That's odd - APACHE_RUN_USER and APACHE_RUN_GROUP variables are intended to be the actual UID names and this is how I have always used it which works perfectly fine for me; this is also inline with FileRun docs which shows an example docker-compose.yml which uses these variables as string values of the UID/GUID name alongside the *_ID variables which is what the actual numeric IDs are. Edited April 5, 20251 yr by ImSkully
April 5, 20251 yr If I leave it at the default I get UNKNOWN user for my files/directories it also creates issues with creating new files and such
April 5, 20251 yr @ImSkully Have you tried to get the AESCrypt working? I downloaded the linux binary it seems to be missing some dependencies when ran from within the docker. I can run it on the host(unraid) no problem. Edit: I got OnlyOffice Document Server working with FileRun. It only works if you access it via reverse proxy. So you have to set up another domain in NPM/Swag that points to the onlyoffice-ds and you put the URL for that into filerun for the URL. Won't work if you use the local ip. Edited April 5, 20251 yr by MowMdown
April 19, 20251 yr On 4/5/2025 at 6:25 PM, ImSkully said: That's odd - APACHE_RUN_USER and APACHE_RUN_GROUP variables are intended to be the actual UID names and this is how I have always used it which works perfectly fine for me; this is also inline with FileRun docs which shows an example docker-compose.yml which uses these variables as string values of the UID/GUID name alongside the *_ID variables which is what the actual numeric IDs are. In my configuration it's only working with UID=99, GID=100,UID Name=99, GID Name=users Otherwise the mapping doesn't fit: (left side docker console, right side unraid console) The username nobody is 65534 as standard value in docker -> mapping do not work Unfortunatly the mapping is not the only issue. Any file created in filerun can renamed but not deleted. Maybe the mask should be set to 777, current value is 644. I tried to set a variable "UMASK=777" but without any effect. Anyone a idea about the issue? How did you resolve this?
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.