Ask HN: Self-host small business stack for a brewery?
I'm nearing completion of a historical renovation to get a nano-brewery off the ground, where I would like to host hacker-friendly events.
With both that in mind and personal preferences that reflect much of the caution found here on HN, I'd like to run as little customer data as possible through or to the major vendors' and marketing ecosystems.
Anyone here have suggestions for a maintainable, self-hostable stack to cover typical brick-and-mortar SMB needs? I am a fairly proficient python programmer who's got a number of professional ML and personal RPi projects under my belt. I am not afraid to code, edit YAMLS, or write scripts to modify config files or a database - but have also learned the value of not reinventing the wheel.
Here's some areas of interest:
-Web presence (wordpress? pythonic alternative?) -Retail sales (just beer and schwag, no food) -Online sales (Stripe alternatives if I DIY, self-hosted shopify?) -Event calendaring & booking (we have a separate space on top of the taproom I'd like to host events in, like tech privacy talks!) -Smart Home - IoT devices for locks, cameras, environmental monitoring. (Home Assistant, NodeRed, something else?)
It turns out if you want anything other than cash and old school CCTV, you immediately get into a vendor matrix I don't really want to opt myself and all my customers into. Most of us can't usually avoid credit cards, but beyond that, it would be nice to provide a modest refuge for my customers.
Genuine thanks for any thoughts, especially from other HNers with businesses in the physical world - levinb Making better beer and having better customer service are your core competencies-- those are what will set you apart from your competitors. I'd outsource just about everything else and focus on your differentiating factors. I expect you will regret any time spent on self-hosting. > ... and having better customer service are your core competencies
> ... focus on your differentiating factors That's literally the reason OP wants to self-host: > I'd like to run as little customer data as possible through or to the major vendors' and marketing ecosystems. Not being treated like a set of caged eyeballs by a vendor is a differentiating factor and is much better customer service. Don't forget to delegate! Find some local junior dev or hobbyist to set these things up, if you need them so, but perhaps it's best to avoid doing them yourself. It's not like people won't have a good time there if you don't have a website and have a Facebook profile/group whatever instead. My biggest concern wouldn't be the initial setup but rather the ongoing maintenance. A local junior dev would be even worse than DIY -- what happens when their code inevitably breaks? Yeah, I've hired great, average, and lousy devs before (and been one) - I will keep my hiring on this project to people who like to make, serve, and talk beer. Hope is that I can do the heavy lifting of getting things up and have something stable enough for me to run and a manager to be able to log in and see, at most. I agree it's all about the customer experience whether it's as a wholesale supplier or craft event space. In a small business I like having different networks for different things. A few small stacks which are less likely to topple or do as much damage. Somewhat like chemical processing, a few PC's might actually be "money-making machines" such as running a process-control app. These can be even more mission-critical than the highly secure office machines dedicated to accounting, or invoicing, or other financial work. If you have tech ability you will likely be better off mastering this hands-on before deciding whether or when to turn it over to an employee or contractor. OTOH an MBA without tech ability would probably be better off hiring an engieeer for process control from the beginning. You will probably want these PCs to never come anywhere near the internet. Highly amenable to physical security measures. Before you can rest, everything will need to be proven reliable around-the-clock without remote access over the long term anyway. This part should be just fine with a few miles of air gap theoretically, even if it's actually in the same bulding as the office machines. For this I also keep spare PC's of the proper vintage as well as pre-cloned HDDs and SSDs along with the spare mission-critial parts for the process equipment itself. No more trouble than it ever was. About those office machines, to me these are the ones that replaced typewriters & copiers, calculators, spreadsheets and filing cabinets. Run-of-the-mill stuff where each typical user's desk has equivalent fundamental capablities. You still have to decide traditionally how you want to separate financial from non-financial desks, and different departments like Engineering and Customer Service, so I would at least end up with more than one net or subnet here. Then there's the "internet machines". These are the ones that to an extent replaced snailmail, company libraries, faxes, phone calls, and in-person meetings. The communication lines which only ever really need to hold or handle a very small fraction of your entire data and perhaps only during the times you actually could designate for data exchange. This could reduce your exposure to electronic compromise quite a bit. Each of these networks has dramatically different administration needs and I just don't think it's good enough to simply have two monitors on each desk, so I have at least two PC's, each with a monitor but only one with an internet connection and it really doesn't look that much different than anybody else. It's not like I have to purchase twice an many PC's for an entire skyscraper full of employees. Traditionally, without secretarial services, if you gave someone a desk without both a phone and a typewriter, nobody ever expected that person to be as productive as possible. It also makes sense to separate the different administrative needs, security considerations, and replacement & upgrade cycles from the begining in a way that they could be turned over to various trusted employees or organizations at different times as things evolve. At some point for visitors I would have a completely different ISP for them alone. First instinct: I would personally start with Nextcloud and then fill in the blanks. It covers a lot of ground, file sharing, collaborative document editing, calendars, contacts. You don't explicitly mention some of these, but they're inevitably part of all businesses. Odoo was the best self hosted ERP last time I looked (although it wasn't recent). IIRC it handles point of sale as well as online purchases. Best if you use it for inventory mgmt too. Some components are paid. One of my favorite resources on the internet is https://awesome-selfhosted.net/ You'll find hidden gems in all the categories you listed. Edit: actually, first instinct is to follow philomath_mn's advice and self host the minimum amount of services. Even with a small off-the-shelf NAS collecting video footage there's always some maintenance going on. This is a fine hobby, but can be a distraction from the real thing. Focus on the business - sure thing (thanks also philomath_mn). Interestingly, the most common thing I have heard from folks who run (successful and failed) breweries is "no one can tell the difference between beers, build a place people want to drink beer". I am doing that by starting with an awesome location - acquiring the building is the main reason I am doing this and it's pretty cool. While the 'hacker' and 'privacy aware' crowds are pretty small, I would like to help be an inviting place for folks that share these interests. I am not sure how much I need to cater to that, but I'd like to be as good an actor as reasonable time tradeoffs will allow. I am totally willing to put up with a learning curve, if that overhead can get me to a stable place that's better for data management than just saying 'I give up', in the face of a large ecosystem. Re: Nextcloud - heard of it many times but never used it. Can a normal person (think bartender) log in and edit a document or respond to a calendar invite on a phone? What output does it generate (.odts, .caldav)? Never heard of Odoo but thanks, I'll go down that rabbit hole. Point taken on being a place where people want to drink beer. In that case, I would definitely try to validate the idea that people will be more interested in a brewery that cares about digital privacy: - How many people in your area care about digital privacy? - How many of them drink craft beer? - How many of them would consider a brewery's digital tools when deciding on a place to drink? My hunch is that the number at the end of that funnel is going be very close to zero. Putting money into a nerdy trivia night would have 100x the impact with 1% of the headaches. Putting money into a nerdy trivia night would have 100x the impact with 1% of the headaches. I agree - we'll do a fair amount of that stuff. From trivia night to the knitting club, I'd like to be a 'Third Place' for people to have fun. I just wonder, if I host the monthly Python meetup, will anyone care besides me? I personally don't shop or eat at places that don't accept cash, require an app, or only allow online takeout orders - but that's not everybody by a long shot. I'd assume the average person, even one who cares about data privacy, would never expect a brewery to also be mindful of this stuff. I do wonder (hope, irrationally?) that some of the local (NC Triangle area) tech community will at least find it to be of some note. > we'll do a fair amount of that stuff. From trivia night to the knitting club, I'd like to be a 'Third Place' for people to have fun. Sounds like a lot of fun! > will anyone care besides me? I personally don't shop or eat at places that don't accept cash, require an app, or only allow online takeout orders - but that's not everybody by a long shot. FWIW, I've been a dev for 10 years and have met many tech people -- I don't think I've met anyone IRL who would take that stance. Lots of people who notice that kind of stuff and wish it were better, but not to the level of buy/not buy. Just a bit of anecdata for you ¯\_(ツ)_/¯ You could checkout It's a pretty cool service for most stuff you mentioned and it values privacy. - cloud storage - online office (calendar, documents, etc.) - mail - video conferencing For more specific stuff (Smart home) you could go for Proxmox combined with zfs-auto-snapshot and some docker LXC and shared directories. Pretty easy to setup (once you are familiar) and rock solid (at least for my self-hosting use case) - even a good level of ransomware protection, if configured correctly. Here is a sample project using proxmox with some self-hosted services (not a recommendation, just an example): https://github.com/bashclub/zamba-lxc-toolbox I am actually starting to think about using European services (Hetzner?) for some things just to have some sort of legal framework that offers plausible control of my data. I already use paid email. I mostly trust that something running in a VM is not accessible or abused when I sign a contract - I just don't want to use 30 SaaS services that require me to allow data consumption from me and my customers. Can you compare Proxmoc to just running small VMs or a container on a bare-metal hosting provider? I tried a lot of self-hosted solutions for my homelab. Pretty much all of them were very time consuming and had minor restrictions I did not want to have. However, Proxmox provided a 'framework' that seemed superior: - Having ZFS as a filesystem to easily revert to a previous state [1] [2] - Makes possible using docker within an additional 'security layer' (LXC) - Having easy integrated backup and restore - Being scalable, if I had to - Not focussing 'fancy new technologies' (k8s, etc.), but established ones (qemu, LXC) [1]: https://pilabor.com/series/proxmox/restore-virtual-machine-v... There are much more niche-centric ERP, CMS, POS software companies out there. Something must exist? I find these opportunities fascinating, but industry knowledge is clearly key. I will try to think of some examples I have seen. Anyone else have some they can share? Odoo is a nice and easily customizable (in Python, iirc) ecosystem if you can find what you need in there Second vote for that - I'll def check it out. If you've used anything else better or worse I'd be happy to hear experiences.