I am no expert, but since your saying that simply installing a desktop solved this one issue, it seems like that script is similar to how HotKey Automation functions where (for some reason) it requires a DE for it to work (HotKey Automation does nothing on the DE expect automatically open terminal to start the script).
As an update to PirateBox - it truly seems that it is so outdated that a few features/functions will not work with newer hardware (specifically, the Pi Zero W, circa 2017) nor will it allow me to connect to it via SMB (on a Windows 10 PC). I also do NOT like how it puts out an unsecured Wi-Fi signal (and, based on my limited knowledge, won’t let me change this - even after searching around the file system via terminal to find the hostapd info, I was not able to find the file containing the broadcast signal info).
PirateBox Update:
After further review of their website, I found information that will allow me to change the SSID as well as secure it. It also provides for many other option/feature changes that will be beneficial to this project. For now, I can call PirateBox a success, however I am still exploring other potential options.
DietPi OS + Hotspot Update:
Last night I decided to install a fresh copy of DietPi OS 32-bit on a separate SD Card and give the Hotspot function another shot. Using an Ethernet HAT (the same one in the picture in the original post) connected to a network switch, I setup DietPi along with the Hotspot and Samba Software via dietpi-software. After a reboot, I backed up the Pi Zero W using dietpi-backup just incase something goes wrong. Once the backup completed, I shutdown the Pi via shutdown -h now, unplugged the ethernet cable, and re-powered the Pi…
Results:
The results were successful! i.e.; even without being connected via ethernet, the Hotspot software still broadcasted a Wi-Fi signal from the Pi’s On-Board Wi-Fi module. I was able to connect to it, AND I was able to use SSH and Samba without any issues. Just to ensure that this wasn’t a fluke, I rebooted the Pi once more and was still able to connect, SSH in, and access the USB Flash Drive via Samba.
Notes:
I have a feeling that if I were to go into dietpi-config and change something, the Hotspot software would no longer work (although I have not tested this since I have the Pi setup the way I want).
Continued Testing:
About 20 mins ago, I hooked the ethernet cable back into the Pi and installed FuguHub since it’s WebDAV function plays well with the FE File Explorer iOS App. After the installation and setup of FuguHub, I rebooted just to make sure that the Hotspot software continued to broadcast a signal - it did! I will be testing to see if I can successfully upload and download files from my iPhone to the Pi’s attached USB Flash Drive later on tonight. I’ll report back then…
DietPi OS + Hotspot Update:
As promised, I went down to my car, setup the Pi with power, connected to the [DietPi’s] Wi-Fi Signal, and used Samba and FuguHub’s WebDAV server to upload and download files, pictures, and videos back and forth from my iPhone. I can now say that this project (using DietPi OS) has been a success and is my preferred method of offloading photos and videos from my iPhone. And truthfully, I might even uninstall FuguHub and attempt to use the dietpi-sync function (along with iOS’s Siri Shortcuts to delete the videos and photos after syncing) to sync everything once it connects to the Wi-Fi SSID signal.
Another quick update for those who are looking to accomplish the same type of project (i.e.; using a GoPro or DJI product and want to offload photos and videos on-the-go), I discovered this GitHub repository from a guy that hacks GoPro’s and DJI Drones (and other DJI products).
He has provided an outline on how to control, see stats, and download media from both products mentioned above with HTTP Get commands via Windows and Linux. After testing his scripts, I’ve decided that this is the best option for me, although most options mentioned in this thread will work (and I will most likely mess around with them once I am back from my next road trip).
Yeah…once you setup the FuguHub and then use the link ip.address.of.pi0/fs it goes right to the filesystem and just being able to upload directly to the website is very nice
Simple to install https://fuguhub.com/RaspberryPi.lsp
Indeed, however I installed FuguHub from the DietPi-Software Library. It seemed to be the only File/Media Server that was light enough to run on the Pi Zero without a ton of latency due to high CPU usage.
Whoa! Filebrowser… never even thought to search for something like that. After a cursory overview of the software, it seems very simply and every easy to implement. I am going to load up a fresh SD Card and see how this thing interacts with DietPi.
Syncthing was one of my initial ideas for keeping everything sync’d up between the Raspberry Pi Zero and my iPhone due it’s lightweight nature and ability to create automated scripts where once my iPhone connected to it’s Wi-Fi, it would begin the sync, however there is no iOS App for Syncthing. Theoretically I could
As another option for networking, I stumbled across this little script while cleaning up some of my Chrome bookmarks. Apparently I found this months ago, bookmarked it for later review, but forgot about it.
I manually installed it, didn’t know they had a filebrowser build
I ran it inside fubuhub /db directory
Stock it only listens on 127.0.0.1 so it will only answer the webpage ON the device…I was using my computer so I needed it to listen on all devices for the requests for the webpage
I then told it to create a config file rather than using everything stock, so I could modify the config as needed (and it would be a persistent change.
OoOoOoOoOoOhHhHh - ok, got it. Makes sense - I was following your steps and couldn’t get anything to work properly, haha and now I know why. I understand now.
I am going to try the normal install steps on a fresh copy of Diet Pi OS and see how it reacts.
Hmm, I just tried installing it on a fresh copy of Diet Pi OS and Raspberry Pi OS using the standard install instructions, but I have not been able to get it to function at all.
But when I run the second command filebrowser -r / it tells me that there is no ‘config’ file found but starts the server anyway… Listening on 127.0.0.1:8080.
What I am doing wrong here?
Edit: I just noticed that the fresh copy of Diet Pi OS is running the new Debian Bullseye image - could this be a possible issue? I have the previous image available, if needed.
I was able to get it working on a fresh install of DietPi OS. I Added a USB Flash Drive prior to installing the script (formatted in Ext4), and ran dietpi-backup so I could revert back without having to reflash the SD Card. I then ran the following commands while in the USB Flash Drive’s directory:
After running that last command, I was greeted by the server starting successfully:
2021/08/15 15:03:11 Using config file: /mnt/FileUSB/filebrowser.yaml
2021/08/15 15:03:11 Listening on [::]:8080
I navigated to the Pi’s IP address on my LAN followed by the port number ':8080" (http://192.168.xxx.xxx:8080) and was able to log in and upload/download files!
Now, the real question is: How do I get this script to start once the Raspberry Pi boots?
>
> Put configuration files under /etc/filebrowser directory, for example default.yaml, and execute:
>
> ```text
sudo systemctl enable filebrowser@default.yaml.service
to start filebrowser on boot as a service.
Specific tweaks for user dietpi might be needed to ensure read/write ability in directories not associated with dietpi
Also putting it in the /etc/filebrowser directory prevents non authorized users from being able to see/tweak the config, but allows the program to have a static/persistent config file it can initiate from.
There are a BUCKETLOAT of options for the config that can be set in the config.yml file
root@DietPi:/home/warhawk# filebrowser config set --help
Updates the configuration. Set the flags for the options
you want to change. Other options will remain unchanged.
Usage:
filebrowser config set [flags]
Flags:
-a, --address string address to listen on (default "127.0.0.1")
--auth.header string HTTP header for auth.method=proxy
--auth.method string authentication type (default "json")
-b, --baseurl string base url
--branding.disableExternal disable external links such as GitHub links
--branding.files string path to directory with images and custom styles
--branding.name string replace 'File Browser' by this name
--cache-dir string file cache directory (disabled if empty)
-t, --cert string tls certificate
--commands strings a list of the commands a user can execute
--disable-exec disables Command Runner feature
--disable-preview-resize disable resize of image previews
--disable-thumbnails disable image thumbnails
--disable-type-detection-by-header disables type detection by reading file headers
-h, --help help for set
--img-processors int image processors count (default 4)
-k, --key string tls key
--locale string locale for users (default "en")
--lockPassword lock password
-l, --log string log output (default "stdout")
--perm.admin admin perm for users
--perm.create create perm for users (default true)
--perm.delete delete perm for users (default true)
--perm.download download perm for users (default true)
--perm.execute execute perm for users (default true)
--perm.modify modify perm for users (default true)
--perm.rename rename perm for users (default true)
--perm.share share perm for users (default true)
-p, --port string port to listen on (default "8080")
--recaptcha.host string use another host for ReCAPTCHA. recaptcha.net might be useful in China (default "https://www.google.com")
--recaptcha.key string ReCaptcha site key
--recaptcha.secret string ReCaptcha secret
-r, --root string root to prepend to relative paths (default ".")
--scope string scope for users (default ".")
--shell string shell command to which other commands should be appended
-s, --signup allow users to signup
--singleClick use single clicks only
--socket string socket to listen to (cannot be used with address, port, cert nor key flags)
--socket-perm uint32 unix socket file permissions (default 438)
--sorting.asc sorting by ascending order
--sorting.by string sorting mode (name, size or modified) (default "name")
--viewMode string view mode for users (default "list")
Global Flags:
-c, --config string config file path
-d, --database string database path (default "./filebrowser.db")
I guess the main thing to do is do the filebrowser config init to pre-generate a “stock” config, then exporting it to /etc/filebrowser/config.yaml, might even be a good place to put the filebrowser.db in /etc as well…but it could grow rather large I would bet