Hi people,
I am just posting a brief explanation as to what file sharing method i am going to setup in all versions of Pussy-Pie.
While i have left the Samba packages untouched from the original Raspbian OS, i am not going to configure them to do anything special in Pussy-Pie.
This is because as far as i can tell, even to use a perfectly configured samba on a windows machine requires us to educate newbies to use it. Newbies as far as i understand them do not know much about networking at all, even setting up shares and things between windows machines. Samba is there to provide seamless networking interconnectivity between Linux and Windows (and also to other OSes like Mac OS and Android etc).
To leave a perfectly installed and working Samba on a Linux server may seem like blasphemy but using Samba as the primary method of interconnection will result in endless man hours spent on supporting Windows users and Mac and Android users how to use networking on their specific systems to begin with, and then comes the endless cycle of Samba reconfiguring.
My official policy about this is (you can quote me on the record):
"Samba is there if you would like to configure and use it."
And so that is Samba out of the way. Now for HTTP and FTP. This is how all Pussy-Pies will handle file sharing:
lighttpd will provide webserving from /var/www (i may make a link it to /www or /webserver to make it easier to remember). Webserving will be on the usual port 80. This will remain unchanged.
Why mention this about lighttpd? we already know that all Pussies (not just Pussy-Pies) have the webserver running as standard and i can just surf to
http://meow/ or
http://raspberrypi/ or whatever your hostname is or the IP the machine like
http://192.168.1.101 and view your personal website or a blank page if you have not created one. But we know this, why mention it here?
Well, this is because lighttpd will have a second instance running, of the same program but on a different port. The port number will be something like 1234 or 6789 or 1111 or some easy to remember number that doesnt clash with any known popular server app or web application.
You will be able to use your web browser from another computer or device on your network to surf to
http://your-pussy-server-name:1234 or the IP addy of the of the machine like
http://192.168.1.101:1234
and you will see the list of files you want to share from your Rasp Pi.
You simply right click the one you want and then select "save as" to save it where you like, or if you have configured your browser properly then you can single click and save it. If it is a browser viewable file like a .txt or .html or .swf then the browser will simply view the file or play it, this is good for browsing your stuff but to save these you will need to right click then select "save as". This is the easiest way to share out files and every device that has a web browser on your network will be able to use this feature with no fuss, or configuration on the users part.
To aid with file serving, a dir will be created as /media/local/ or /media/files/ . And the entire /media dir will be the default dir that lighttpd will share out as its second session. This means that as soon as a USB stick or USB HDD is attached to your Rasp Pi, it will appear in the /media dir and automatically will be shared out. This is ideal as it lets the user add a new disk and BOOM! its instantly working as a share. No need to plug in a monitor and configure the mounts and webserver config or login via ssh or telnet to do the same.
What is /media/local about then?
This will be the default place to store any files you want shared out that reside on the OSes SD card. If you are browsing the internet and want to download something and share it out, you save it in this dir and it is instantly available. I may setup the default behavior for the dillo and or secondary browser and other apps like MTpaint and any other program you download or make stuff and then save it to default to /media/local/
as its standard saving folder. This way anything plugged into the Rasp Pi or stuff you make on the Rasp Pi is shared out.
Can i disable the file sharing and or webserver? Yes, there will be an easy "disable" script or button in the Catroll-Panel or you can edit the lighttpd.conf yourself if you are brave.
OK OK .... but how do i PUT files on the Pussy-Pie as browsers only let me download?
Its called FTP and FTPS.
There is a program that is called WinSCP. It is only a few kilobytes in size and it runs on Windows, all the Windows's except for Win 3.11 and lower, ie: Win 95, 98, ME, 2000, XP, Vista, Win 7, Win 8 beta.
This WinSCP program is free and is only one file. The standard default lightppd webpage placeholder will be edited to link to this file as this file will be included with Pussy. This means that any Windows machine surfing to your Pussy-Pie server will be able to download and run this easy to use FTP/ FTPS client.
WinSCP is easy to use, you just add a new connection and you will be prompted to enter the IP or hostname of the server and then its username and password then you can save the config. Now every time you click the WinSCP icon, you are met with an open Window that lets you drag and drop any file into that open window. In this way its almost like using Samba. You can also add a mapped network drive using WinSCP if you want to. This may seem strange to those used to Samba but it really isnt any harder to use than Samba. Instead of configuring the server with a complicated conf file you can within a few clicks have write access to the server. WinSCP also lets you view and or run files with a click. You can drag to and from the WinSCP window just like it was a mapped network drive. WinSCP will default to use FTPS, which is the SSL version of FTP. If you force WinSCP to use normal FTP it will simply be un encrytped.
But what about the other OSes?
WinSCP is available for Mac OS and i may include WinSCP Mac version with Pussy-Pie. I dont know about android but there must be a WinSCP-like program for it, and when i get around to it i will find one and also include it with Pussy-Pie and so every OS will be covered once they use their browser to download it by simply entering
http://servername or
http://192.168.1.101 for example and then clicking on the version of WinSCP for your OS and saving it to your system and then running it.
What about Linux? Use gFTP its just like WinSCP.
While i invite everyone to comment, this is pretty much the way i go. The only potential change that may happen is that i may use a "super duper ultra fancy configuration" for Samba and there will be Samba and HTTP and FTP/ FTPS working all at the same time. HTTP and FTP have always been there and this isnt a real change, its just a matter of teaching people how to use it. The entire internet is built with Linux/ Solaris/ other *nix computers all running HTTP and FTP... its proven system.
Oh, one more potential change, i may just run one session of lighttpd that shares out /media/local as the default placeholder holder page and it will run on the standard port 80 so you dont have to enter a port number in your browser while surfing to your Rasp. This of cause kind of makes the user choose between sharing files and sharing a home web page. I think file sharing takes priority. If you really want to do both then you can set it up like that. This is only a remote potential chance tho.
Ok ill report with more developments as they happen.