Skip to content

ProducerMatt/redbean-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Template for Redbean Projects

This repo contains two options for managing your project: a shell script, and a Makefile.

To make your redbean launch a browser on start, uncomment LaunchBrowserOnStart() in srv/.init.lua.

M1 Mac users should use the default MODE instead of asan-, this can be set in the top of your Makefile/build.sh

build.sh

  • build.sh init: download Redbean, zip, and sqlite
  • build.sh pack: put contents of srv/ into a fresh redbean, overwriting previously existing bean.
  • build.sh run: pack and then execute custom command found at top of file

Stock redbeans are hidden with dots. Executables are excluded in the .gitignore. Since they are Actually Portable, you could disable this behavior and commit the executables directly, if you're ok with keeping them in the git store. Also remember that binaries have a certain risk profile of their own.

Makefile

You can also use make to do the above.

  • make will do make download + make add
  • make download will download all of the requirements.
  • make add zips the contents of /srv into your redbean.com.
  • make start or make start-daemon will start the webserver (in foreground and background, respectively)

See also: make stop-daemon, make restart-daemon, make log, make ls

Roadmap

  • Build.sh
    • INIT: build.sh init [-s for sqlite?]
      • Fetch Redbean, save as read-only stock build.
      • Also fetch zip & sqlite
      • make sqlite opt-in
      • Verify checksums for known versions/generate checksums for new ones
    • PACK (default with no arguments)
      • force copy stock redbean to writable file. Zip contents of srv/ into zip
      • user-specified actions: if one script named packer* exists and is executable, run it
      • if sqlite.com and default.sqlite exist, force copy default.sqlite to db.sqlite
    • RUN
      • pack and then execute command specified in variable

Notable contributions