Index

joshstock.in / 81b4469

Source for serving and static templating/compiling of https://joshstock.in.

Latest Commit

{#}TimeHashSubjectAuthor#(+)(-)GPG?
10313 Dec 2020 12:1281b4469Update lua-gitweb READMEJosh Stockin1331G

Tree @ joshstock.in / lua-gitweb

ObjectLatest Commit SubjectTimeHash
folder..
foldergitUpdate lua-gitweb12 Dec 2020 20:23009440a
folderpagesFix README rendering13 Dec 2020 11:455814dba
folderutilsAdd git blobs13 Dec 2020 01:05da32c63
fileREADME.mdUpdate lua-gitweb README13 Dec 2020 12:1281b4469
fileapp.luaUpdate blob text rendering13 Dec 2020 11:1029e3f47
fileinit.luaUpdate lua-gitweb12 Dec 2020 21:058147f6b
filerepos.yamlUpdate lua-gitweb12 Dec 2020 21:058147f6b

README

lua-gitweb

A git web client for Lua/OpenResty, similar to stagit.

Requirements

Lua modules (Lua 5.1/LuaJIT 2.1.0/OpenResty LuaJIT compatible, accessible from Lua path/cpath):

Module Description
lfs Filesystem API
lyaml Reads and parses YAML config files
puremagic MIME type by content, used in blob rendering
etlua Embedded Lua templating (for HTML rendering)

Other command line tools (installed on system path, accessible from shell):

Program Description
md4c (md2html) Renders GitHub flavored Markdown
highlight Syntax highlighting in HTML format

Linkable Libraries (installed on system path, accessible with LuaJIT's C FFI):

Library Description
libgit2 Linkable C API for Git

Using

  1. Copy this directory with its scripts to a place OpenResty/nginx workers have access, such as /srv/[SITE]/lua-gitweb. (In reality it doesn't matter where, as long as it's accessible.)

  2. Copy your config file (repos.yaml) to /etc/[SITE]/repos.yaml (or somewhere else).

  3. Add the following near the top (main context, outside of any blocks) of your OpenResty/nginx configuration file:

env LUA_GITWEB; # Script won't run without this
env LUA_GITWEB_ENV=PROD; # PROD for Production, DEV for Development. DEV by default.
env LUA_GITWEB_CONFIG=/etc/[SITE]/repos.yaml; # Wherever you put your configuration file
  1. Add the following to the http block in your OpenResty/nginx configuration file:
lua_package_path ";;/srv/[SITE]/lua-gitweb/?.lua"; # Add lua-gitweb to your Lua package path
init_by_lua_file /srv/[SITE]/lua-gitweb/init.lua; # Initialize modules for nginx workers
  1. And in whichever location block you wish to serve content:
content_by_lua_file /srv/[SITE]/lua-gitweb/app.lua;
  1. Restart OpenResty/nginx

Copyright and Licensing

This package is copyrighted by Joshua 'joshuas3' Stockin and licensed under the MIT License.

<https://joshstock.in> | josh@joshstock.in | joshuas3#9641