Skip to content

DairyBox Next #71

@mikekasprzak

Description

@mikekasprzak

Well it's been a few years and much of the software we using is out-of-date or unsupported (see #69).

This issue collects some notes and thoughts on what to do next, and what we need.

Post Scotch/Box

In the absence of a replacement for Scotch/Box, we could make a new setup script that starts from a stock Ubuntu vagrant box, and installs/configures everything as we need it. The downside is setup time would be much longer, but frankly we've added so much to Scotch/Box anyway that it might not be that much worse.

Vagrant works best with images that don't need to do much after they've been instanced. That's the opposite of what we've done.

It would be nice if DairyBox only contained Jammer Core setup specifics, and didn't need all the hacked-in software updates.

JuiceBox vs DairyBoxSource

We could create a monolithic script that not only does the system setup, but all the Jammer Core setup as well. This would solve a lot of our problems, and potentially make upgrading to newer Ubuntu versions far simpler (just change the base-box). The downside is every fresh build would be slow, and it would be proprietary. I call this the "DairyBoxSource" approach.

Alternatively we could create a more work for ourselves, isolate the system setup from the Jammer Core setup, and make a general purpose box. The box would be driven by our needs, but anyone could use it for their own projects (even us). Scotch.io did us a huge favour creating and sharing Scotch/Box, and it would be cool if we did the same.

I've dabbled with this in the past, taking Scotch/Box and upgrading it. I also intended to do this with the original JuiceBox, but in practice Scotch/Box was good enough. I still like the name JuiceBox, so I'll call this the "JuiceBox" approach. 😋

I'm conflicted. I think the JuiceBox approach is better, but it would be much easier to get the DairyBoxSource approach working. That said, gutting DairyBoxSource and splitting it into JuiceBox and DairyBox later could also work. It would be nice to just skip the DairyBoxSource approach, but deadlines are looming.

Needs

Here's a rough list of what the new "box" needs.

Server Needs

  • Latest Ubuntu (20.04 today, 22.04 after April)
  • Nginx (instead of Apache)
  • PHP 8.x with APCu
  • Redis (NOTE: only used as a better PHP session cache)
  • MariaDB
  • ImageMagick, FFMPEG, and other image optimizers

Tooling needs

  • GNU Make
  • Nodejs
  • JavaScript linter and other build tools
  • Less and other CSS build tools
  • SVG build tools
  • Typescript tools (future use)
  • Rustup and Cargo (future use)
  • [ ] Sass (future use)

Other needs

  • Something for database hacking (PHPMyAdmin?)
  • Something for outgoing email capturing and review
  • Something capable of emulating Amazon S3 object storage (CEPH?)
  • Search database (Sphinx?)
  • Something to make PHP easier to debug

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions