Index

resty-gitweb / adbeb10

A git web interface for Lua/OpenResty (you're on it right now!)

Latest Commit

{#}TimeHashSubjectAuthor#(+)(-)GPG?
215 Dec 2020 18:48adbeb10Update READMEJosh Stockin1298G

Blob @ resty-gitweb / README.md

text/plain3993 bytesdownload raw
1# resty-gitweb
2
3A git web interface for Lua/OpenResty.
4
5## Requirements
6
7Lua modules (Lua 5.1/LuaJIT 2.1.0/OpenResty LuaJIT compatible, accessible from
8Lua path/cpath):
9
10| Module | Description |
11| ------ | ----------- |
12| [lfs](https://github.com/keplerproject/luafilesystem) | Filesystem API |
13| [lyaml](https://github.com/gvvaughan/lyaml) | Reads and parses YAML config files |
14| [puremagic](https://github.com/wbond/puremagic) | MIME type by content, used in blob rendering |
15| [etlua](https://github.com/leafo/etlua) | Embedded Lua templating (for HTML rendering) |
16
17Other command line tools (installed on system path, accessible from shell):
18
19| Program | Description |
20| ------- | ----------- |
21| [md4c](https://github.com/mity/md4c) (md2html) | Renders GitHub flavored Markdown |
22| [highlight](http://www.andre-simon.de/doku/highlight/en/highlight.php) | Syntax highlighting in HTML format |
23
24Linkable Libraries (installed on system path, accessible with LuaJIT's C FFI):
25
26| Library | Description |
27| ------- | ----------- |
28| [libgit2](https://github.com/libgit2/libgit2) | Linkable C API for Git |
29
30## Using
31
321. Copy this directory with its scripts to a place OpenResty/nginx workers have
33 access, such as `/srv/[SITE]/resty-gitweb`. (In reality it doesn't matter
34 where, as long as it's accessible.)
35
362. Copy your config file (`resty-gitweb.yaml`) to
37 `/etc/[SITE]/resty-gitweb.yaml` (or somewhere else)
38
393. Add the following near the top (`main` context, outside of any blocks) of
40 your OpenResty/nginx configuration file:
41
42```
43# resty-gitweb configuration
44env RESTY_GITWEB; # Script won't run without this
45env RESTY_GITWEB_ENV=PROD; # PROD for Production, DEV for Development. DEV by default.
46env RESTY_GITWEB_CONFIG=/etc/[SITE]/resty-gitweb.yaml; # Wherever you put your configuration file
47```
48
494. Add the following to the `http` block in your OpenResty/nginx configuration
50 file:
51
52```
53lua_package_path "/usr/local/lib/lua/5.1;/srv/[SITE]/resty-gitweb/?.lua;;"; # Add resty-gitweb to your Lua package path
54init_by_lua_file /srv/[SITE]/resty-gitweb/init.lua; # Initialize modules for nginx workers
55```
56
575. And in whichever `location` block you wish to serve content:
58
59```
60content_by_lua_file /srv/[SITE]/resty-gitweb/app.lua;
61```
62
636. Reload OpenResty/nginx to update config
64
65## OpenResty or nginx?
66
67Note that I use "OpenResty/nginx" instead of just OpenResty; while you can just
68install and use the pre-built
69[OpenResty](https://openresty.org/en/download.html) package, you could actually
70use nginx with only a few added OpenResty components. These are the only
71OpenResty components you actually need to
72[compile](https://www.nginx.com/resources/wiki/extending/compiling/) to use
73this package:
74
75#### nginx modules
76
77* [lua-nginx-module](https://github.com/openresty/lua-nginx-module)
78
79#### Lua libraries
80
81(run `sudo make all install LUA_VERSION=5.1` for each)
82
83* [lua-resty-core](https://github.com/openresty/lua-resty-core)
84* [lua-resty-shell](https://github.com/openresty/lua-resty-shell)
85* [lua-resty-lrucache](https://github.com/openresty/lua-resty-lrucache)
86* [lua-resty-signal](https://github.com/openresty/lua-resty-signal)
87* [lua-tablepool](https://github.com/openresty/lua-tablepool)
88
89Note that lua-nginx-module is the only nginx module that needs to be installed
90with nginx compatibility. The other dependencies just need to be installed on
91your Lua path/cpath. **If you're compiling OpenResty components yourself, you
92may need to build them with OpenResty's
93[branch](https://github.com/openresty/luajit2) of LuaJIT 2.1.0 instead of the
94original.**
95
96(The full OpenResty package has far more precompiled OpenResty components, so
97you may just want to use that if resty-gitweb isn't the only thing you want to
98use OpenResty for.)
99
100## Copyright and Licensing
101
102This package is copyrighted by [Joshua 'joshuas3'
103Stockin](https://joshstock.in/) and licensed under the [MIT License](LICENSE).
104
105&lt;<https://joshstock.in>&gt; | josh@joshstock.in | joshuas3#9641
106