Hi
I want to set up a DIY print station/storage server. I read around online and I found CUPS for Raspberry Pi. The thing is though, raspberry pi seems pretty expensive. Then I found out about CHIP (www.getchip.com). So my questions are, how can I set up a print server as well as a storage server, as far as I know, CUPS is only for printers.... So is it possible to run CUPS and another program (for HDD sharing) at the same time? if so, can the CHIP actually run it? What program do you suggest I use for HDD sharing (if I can)?
*BTW if the Hard Drive sharing is not supported, will CHIP be sufficient enough to run CUPS
*I have a 2 TB Hard drive
*I don't know much about Linux, does CUPS run as a program on an operating system, or does it run 'as' and operating system? might be a stupid question...
Finally a topic I can help with!
While I'm an utter newbie with electronics, when it comes to computers, IT and in particular Linux, you're in my domain (job, hobby and haven't run Windows for 10+ years now).
There's a lot here - let's start with "chips". The project scares me - they announce they're working on their own processor chip, so that puts into question how/what source can be compiled and managed on there. Their github is very inactive and slow - using Linux that's not a good idea. Their buildroot is 9-11 months old. Bottom line is, inactive projects don't patch, don't fix, don't move to be compatible with changes. It means that getting "new" things on there is going to be hard if not impossible unless you know how to compile from source for that particular chipset. It's not trivial.
This is why I like the PI - it's standard ARM and most major distributions support it. Meaning they not only create a build compiled for ARM, but pre-configure it for the PI device to understand the hardware on it, including applications to use it. Going for small embedded systems, I would go with a major distribution's ARM/PI option anytime. This means you have a large selection of applications and options, and most likely others have tried to do what you're doing so there will be help. I really get the impression that CHIP is about BUYING their software on that little gadget. Meaning little to no choice. It's interesting what's considered high prices. You won't get much of a server with US$60 - in that light, a PI is extremely cheap (there's a but - it comes further down). Since it's a complete system (sans realtime clock) - USB, DVI etc. makes making a small computer like device easy.
CUPS - a very powerful printing service for Linux. This is the important part. I love CUPS. When I connect to the corporate network, the list of printers automatically expands to show me what printers is in the office I'm connected to - that's all CUPS. It's been a long time since I installed printers on Windows - back in the days, it was hours of installing from a CD. We just got a new printer here at home, and I had my wife's and my Linux based desktops configured in about 2 minutes. NO installs needed. HOWEVER, in a later post you state that you are only going to use Windows machines. That's going to be your 'pain' here. Getting drivers for Windows working, getting them connected to CUPS, making sure CUPS exposes the printer and the right interface, with passthru for Windows etc. - for small home networks, in particular if you just have one printer and haven't worked with setting up servers, I would recommend getting a printer with WiFi/physical network and just connect every device you have to it. We use CUPS as a print server when we have security concerns, and if the printers don't have networking and you for instance have 2-3 printers connected via USB and want to share them. It will be a lot cheaper (easier) to get a USB print server that translate the USB to a network interface, vs. going down the CUPS route if you just have one printer that happens to not be networked
https://www.newegg.com/Product/Product.aspx?Item=9SIA6PF41B0120Traditionally we would use SAMBA to expose printers to Windows. I'm told (remember, I don't use it) that modern Windows versions can connect directly to CUPS with some tweaks. A quick google produced this
http://www.lueckdatasystems.com/HOW-TO_Connect_Windows_to_a_CUPS_Network_Printer which I have no clue if it's correct or not. It certainly does not deal with drivers and configuration of CUPS to make links like this work.
This drives me to the last point - file sharing. It's dirt easy, HOWEVER a PI is way too slow for that to be useful for you. Or let me rephrase, it depends highly on WHAT you want to do with the file server. If you're doing video editing, having multiple systems access different files at the same time, the IO of a PI is willfully incapable for supporting your need. However, if you can live with slow IO - that you use the fileserver from one system at a time for non-intensive IO operations like archiving photos - all you need is patience. SAMBA again used to be the way to go here. But there are much better solutions today - solutions that will scale. You've probably seen pictures of multiple PIs all tied together in a stack and headlines talking about a PI cluster. This is what is needed to get proper IO bandwidth on a PI. Storage systems like Gluster will span multiple systems and present a single logical representation of data that's in reality stripped/mirrored across multiple systems and it can create that point as SMB so Windows can connect. THAT SAID - you'll need to think about your network need here. Sharing means security. SAMBA unfortunately gives the impression that security is "share" based. It's not - it's file based. All SAMBA does is store all files with root or similar priveleges and then it tries to map your username to it's own security. In other words, it BYPASSES security to implement it's own pseudo option. Gluster and NFS do NOT do that. But that means you'll need an IDM if you have more than just a few computers you want to connect (IDM=Identification Management) which in the Microsoft world is called Active Directory (I don't think they've renamed it). It sounds like a lot - it's not. It's a very easy install today with something called "FreeIPA". The trick is connecting your windows machines to it, so you authenticate on them once, and never again. Worst case, you'll have to login every time you need to access a file. FreeIPA comes with "plugins" for Windows so this can be done. For Linux I just install the ipa-client and presto I'm done
All in all, as you start adding what you need you can see the complexity increases. You're not the first wanting to do this, so there are nice package solutions that do all of this out of the box. One is FreeNAS - and it's very very easy to install on a small traditional system. Scanning the forums everyone is stating what I did above that IO will suck and there are a few technical challenges that can be overcome. But it has it all built in, and a great graphical user-interface (Web) to manage it all. Users, SAMBA, etc. etc. That said, if you want anything performing out of your network, don't use PIs. A i3 with 4-8GB of memory will be more expensive, but it will run a single SSD nicely and really perform to your home need.
Wow - this got to be longer than I expected. Bottom line here is, think about what you want to achieve. If it's just a single printer, single workstation there are better ways to do things. Otherwise you may be venturing into areas you're not prepared to attack yet