Skip to content

Commit 16463c2

Browse files
committed
Initial commit
1 parent 412290e commit 16463c2

4 files changed

Lines changed: 352 additions & 0 deletions

File tree

Dockerfile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## Dockerfile for gitit
2+
3+
# Use debian 9 (stretch) for gitit 0.12
4+
FROM debian:9
5+
MAINTAINER Zhang Yang "zyangmath@gmail.com"
6+
7+
ENV DEBIAN_FRONTEND noninteractive
8+
9+
# install git, ssh, supervisor
10+
RUN apt-get update && apt-get install -y \
11+
git gitit supervisor libghc-zlib-dev
12+
13+
RUN echo "root:yangzhang" | chpasswd
14+
15+
VOLUME ["/data/gitit"]
16+
WORKDIR /data/gitit
17+
18+
ADD . /data/gitit
19+
20+
EXPOSE 7500
21+
ENTRYPOINT ["/data/gitit/docker-entrypoint.sh"]

docker-entrypoint.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/bash
2+
3+
GITIT_CONFIG_FILE=/data/gitit/gitit.conf
4+
SUPERVISORD_CONFG_FILE=/data/gitit/supervisord.conf
5+
6+
if [ ! -f "$SUPERVISORD_CONFG_FILE" ]; then
7+
cp /data/gitit/sample.supervisord.conf $SUPERVISORD_CONFG_FILE
8+
fi
9+
10+
if [ ! -f "$GITIT_CONFIG_FILE" ]; then
11+
cp /data/gitit/sample.gitit.conf $GITIT_CONFIG_FILE
12+
fi
13+
14+
supervisord -c /data/gitit/supervisord.conf

sample.gitit.conf

Lines changed: 297 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,297 @@
1+
# gitit wiki configuration file
2+
3+
address: 0.0.0.0
4+
# sets the IP address on which the web server will listen.
5+
6+
port: 7500
7+
# sets the port on which the web server will run.
8+
9+
wiki-title: Gitit Wiki
10+
# the title of the wiki.
11+
12+
repository-type: Git
13+
# specifies the type of repository used for wiki content.
14+
# Options are Git, Darcs, and Mercurial.
15+
16+
repository-path: wikidata
17+
# specifies the path of the repository directory. If it does not
18+
# exist, gitit will create it on startup.
19+
20+
require-authentication: modify
21+
# if 'none', login is never required, and pages can be edited anonymously.
22+
# if 'modify', login is required to modify the wiki (edit, add, delete
23+
# pages, upload files).
24+
# if 'read', login is required to see any wiki pages.
25+
26+
authentication-method: form
27+
# 'form' means that users will be logged in and registered
28+
# using forms in the gitit web interface. 'http' means
29+
# that gitit will assume that HTTP authentication is in
30+
# place and take the logged in username from the "Authorization"
31+
# field of the HTTP request header (in addition,
32+
# the login/logout and registration links will be
33+
# suppressed). 'generic' means that gitit will assume that
34+
# some form of authentication is in place that directly
35+
# sets REMOTE_USER to the name of the authenticated user
36+
# (e.g. mod_auth_cas on apache). 'rpx' means that gitit
37+
# will attempt to log in through https://rpxnow.com.
38+
# This requires that 'rpx-domain', 'rpx-key', and 'base-url'
39+
# be set below, and that 'curl' be in the system path.
40+
# 'github' means that you are redirected to github website and
41+
# need to avail gitit to use your credential from there (github name and
42+
# email). Your email is used to identify you when you push your wiki data
43+
# to git to identify you as the author.
44+
45+
user-file: gitit-users
46+
# specifies the path of the file containing user login information.
47+
# If it does not exist, gitit will create it (with an empty user list).
48+
# This file is not used if 'http' is selected for authentication-method.
49+
50+
session-timeout: 3600
51+
# number of minutes of inactivity before a session expires.
52+
53+
static-dir: static
54+
# specifies the path of the static directory (containing javascript,
55+
# css, and images). If it does not exist, gitit will create it
56+
# and populate it with required scripts, stylesheets, and images.
57+
58+
default-extension: md
59+
# files in the repository path must have this extension in order
60+
# to be recognized as Wiki pages
61+
62+
default-page-type: Markdown
63+
# specifies the type of markup used to interpret pages in the wiki.
64+
# Possible values are Markdown, CommonMark, RST, LaTeX, HTML, Markdown+LHS,
65+
# RST+LHS, LaTeX+LHS, DocBook, Org. (The +LHS variants treat the input as
66+
# literate Haskell. See pandoc's documentation for more details.) If
67+
# Markdown is selected, pandoc's syntax extensions (for footnotes,
68+
# delimited code blocks, etc.) will be enabled. Note that pandoc's
69+
# reStructuredText parser is not complete, so some pages may not be
70+
# rendered correctly if RST is selected. The same goes for LaTeX and
71+
# HTML.
72+
73+
math: mathjax
74+
# specifies how LaTeX math is to be displayed. Possible values
75+
# are MathML, raw, mathjax, jsMath, and google. If mathml is selected,
76+
# gitit will convert LaTeX math to MathML and link in a script,
77+
# MathMLinHTML.js, that allows the MathML to be seen in Gecko browsers, IE +
78+
# mathplayer, and Opera. In other browsers you may get a jumble of characters.
79+
# If raw is selected, the LaTeX math will be displayed as raw LaTeX math.
80+
# If mathjax is selected, gitit will link to the remote mathjax script.
81+
# If jsMath is selected, gitit will link to the script /js/jsMath/easy/load.js,
82+
# and will assume that jsMath has been installed into the js/jsMath directory.
83+
# This is the most portable solution. If google is selected, the google chart
84+
# API is called to render the formula as an image. This requires a connection
85+
# to google, and might raise a technical or a privacy problem.
86+
87+
mathjax-script: https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML
88+
# specifies the path to MathJax rendering script.
89+
# You might want to use your own MathJax script to render formulas without
90+
# Internet connection or if you want to use some special LaTeX packages.
91+
# Note: path specified there cannot be an absolute path to a script on your hdd,
92+
# instead you should run your (local if you wish) HTTP server which will
93+
# serve the MathJax.js script. You can easily (in four lines of code) serve
94+
# MathJax.js using http://happstack.com/docs/crashcourse/FileServing.html
95+
# Do not forget the "http://" prefix (e.g. http://localhost:1234/MathJax.js)
96+
97+
show-lhs-bird-tracks: no
98+
# specifies whether to show Haskell code blocks in "bird style",
99+
# with "> " at the beginning of each line.
100+
101+
templates-dir: templates
102+
# specifies the path of the directory containing page templates.
103+
# If it does not exist, gitit will create it with default templates.
104+
# Users may wish to edit the templates to customize the appearance of
105+
# their wiki. The template files are HStringTemplate templates.
106+
# Variables to be interpolated appear between $'s. Literal $'s must be
107+
# backslash-escaped.
108+
109+
log-file: logs-gitit.log
110+
# specifies the path of gitit's log file. If it does not exist,
111+
# gitit will create it. The log is in Apache combined log format.
112+
113+
log-level: WARNING
114+
# determines how much information is logged.
115+
# Possible values (from most to least verbose) are DEBUG, INFO,
116+
# NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY.
117+
118+
front-page: index
119+
# front-page: Front Page
120+
# specifies which wiki page is to be used as the wiki's front page.
121+
# Gitit creates a default front page on startup, if one does not exist
122+
# already.
123+
124+
no-delete: index, Front Page, Help
125+
# specifies pages that cannot be deleted through the web interface.
126+
# (They can still be deleted directly using git or darcs.)
127+
# A comma-separated list of page names. Leave blank to allow
128+
# every page to be deleted.
129+
130+
no-edit: Help
131+
# specifies pages that cannot be edited through the web interface.
132+
# Leave blank to allow every page to be edited.
133+
134+
default-summary: automatically added commit message.
135+
# specifies text to be used in the change description if the author
136+
# leaves the "description" field blank. If default-summary is blank
137+
# (the default), the author will be required to fill in the description
138+
# field.
139+
140+
table-of-contents: yes
141+
# specifies whether to print a tables of contents (with links to
142+
# sections) on each wiki page.
143+
144+
plugins:
145+
# specifies a list of plugins to load. Plugins may be specified
146+
# either by their path or by their module name. If the plugin name
147+
# starts with Gitit.Plugin., gitit will assume that the plugin is
148+
# an installed module and will not try to find a source file.
149+
# Examples:
150+
# plugins: plugins/DotPlugin.hs, CapitalizeEmphasisPlugin.hs
151+
# plugins: plugins/DotPlugin
152+
# plugins: Gitit.Plugin.InterwikiLinks
153+
154+
use-cache: no
155+
# specifies whether to cache rendered pages. Note that if use-feed
156+
# is selected, feeds will be cached regardless of the value of use-cache.
157+
158+
cache-dir: cache
159+
# directory where rendered pages will be cached
160+
161+
max-upload-size: 10240K
162+
# specifies an upper limit on the size (in bytes) of files uploaded
163+
# through the wiki's web interface.
164+
# To disable uploads, set this to 0K.
165+
# This will result in the uploads link disappearing
166+
# and the _upload url becoming inactive.
167+
168+
max-page-size: 1024K
169+
# specifies an upper limit on the size (in bytes) of pages
170+
171+
debug-mode: no
172+
# if "yes", causes debug information to be logged while gitit is running.
173+
174+
compress-responses: yes
175+
# specifies whether HTTP responses should be compressed.
176+
177+
mime-types-file: /etc/mime.types
178+
# specifies the path of a file containing mime type mappings.
179+
# Each line of the file should contain two fields, separated by
180+
# whitespace. The first field is the mime type, the second is a
181+
# file extension. For example:
182+
# video/x-ms-wmx wmx
183+
# If the file is not found, some simple defaults will be used.
184+
185+
use-recaptcha: no
186+
# if "yes", causes gitit to use the reCAPTCHA service
187+
# (http://recaptcha.net) to prevent bots from creating accounts.
188+
189+
recaptcha-private-key:
190+
recaptcha-public-key:
191+
# specifies the public and private keys for the reCAPTCHA service.
192+
# To get these, you need to create an account at http://recaptcha.net.
193+
194+
access-question:
195+
access-question-answers:
196+
# specifies a question that users must answer when they attempt to create
197+
# an account, along with a comma-separated list of acceptable answers.
198+
# This can be used to institute a rudimentary password for signing up as
199+
# a user on the wiki, or as an alternative to reCAPTCHA.
200+
# Example:
201+
# access-question: What is the code given to you by Ms. X?
202+
# access-question-answers: RED DOG, red dog
203+
204+
rpx-domain:
205+
rpx-key:
206+
# Specifies the domain and key of your RPX account. The domain is
207+
# just the prefix of the complete RPX domain, so if your full domain
208+
# is 'https://foo.rpxnow.com/', use 'foo' as the value of rpx-domain.
209+
210+
mail-command: sendmail %s
211+
# specifies the command to use to send notification emails.
212+
# '%s' will be replaced by the destination email address.
213+
# The body of the message will be read from stdin.
214+
# If this field is left blank, password reset will not be offered.
215+
216+
reset-password-message:
217+
> From: nobody@$hostname$
218+
> To: $useremail$
219+
> Subject: Wiki password reset
220+
>
221+
> Dear $username$:
222+
>
223+
> To reset your password, please follow the link below:
224+
> http://$hostname$:$port$$resetlink$
225+
>
226+
> Yours sincerely,
227+
> The Wiki Master
228+
229+
# gives the text of the message that will be sent to the user should she
230+
# want to reset her password, or change other registration info.
231+
# The lines must be indented, and must begin with '>'. The initial
232+
# spaces and '> ' will be stripped off. $username$ will be replaced
233+
# by the user's username, $useremail$ by her email address,
234+
# $hostname$ by the hostname on which the wiki is running (as
235+
# returned by the hostname system call), $port$ by the port on
236+
# which the wiki is running, and $resetlink$ by the
237+
# relative path of a reset link derived from the user's existing
238+
# hashed password. If your gitit wiki is being proxied to a location
239+
# other than the root path of $port$, you should change the link to
240+
# reflect this: for example, to
241+
# http://$hostname$/path/to/wiki$resetlink$ or
242+
# http://gitit.$hostname$$resetlink$
243+
244+
use-feed: no
245+
# specifies whether an ATOM feed should be enabled (for the site and for
246+
# individual pages)
247+
248+
base-url:
249+
# the base URL of the wiki, to be used in constructing feed IDs
250+
# and RPX token_urls.
251+
# Set this if use-feed is 'yes' or authentication-method is 'rpx'.
252+
253+
absolute-urls: no
254+
# make wikilinks absolute with respect to the base-url.
255+
# So, for example, in a wiki served at the base URL '/wiki', on a page
256+
# Sub/Page, the wikilink '[Cactus]()' will produce a link to
257+
# '/wiki/Cactus' if absolute-urls is 'yes', and a relative link to 'Cactus'
258+
# (referring to '/wiki/Sub/Cactus') if absolute-urls is 'no'.
259+
260+
feed-days: 14
261+
# number of days to be included in feeds.
262+
263+
feed-refresh-time: 60
264+
# number of minutes to cache feeds before refreshing
265+
266+
pdf-export: no
267+
# if yes, PDF will appear in export options. PDF will be created using
268+
# pdflatex, which must be installed and in the path. Note that PDF
269+
# exports create significant additional server load.
270+
271+
pandoc-user-data:
272+
# if a directory is specified, this will be searched for pandoc
273+
# customizations. These can include a templates/ directory for custom
274+
# templates for various export formats, an S5 directory for custom
275+
# S5 styles, and a reference.odt for ODT exports. If no directory is
276+
# specified, $HOME/.pandoc will be searched. See pandoc's README for
277+
# more information.
278+
279+
xss-sanitize: yes
280+
# if yes, all HTML (including that produced by pandoc) is filtered
281+
# through xss-sanitize. Set to no only if you trust all of your users.
282+
283+
recent-activity-days: 30
284+
# if the activity page receives no 'since' parameter specifiying the time
285+
# thereafter which to show the changes, it will by default show "recent"
286+
# changes. This allows you to specify how recent "recent" means, in days.
287+
288+
[Github]
289+
# replace dummy oauthclientid and oauthclientsecret:
290+
oauthclientid: 01239456789abcdef012
291+
oauthclientsecret: 01239456789abcdef01239456789abcdef012394
292+
oauthcallback: http://mysite/_githubCallback
293+
oauthoauthorizeendpoint: https://github.com/login/oauth/authorize
294+
oauthaccesstokenendpoint: https://github.com/login/oauth/access_token
295+
## Uncomment if you are checking membership against an organization and change
296+
## gitit-testorg to this organization:
297+
# github-org: gitit-testorg

sample.supervisord.conf

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
[supervisord]
2+
nodaemon = true
3+
4+
[unix_http_server]
5+
file=/tmp/logs-gitit-supervisord.sock ; (the path to the socket file)
6+
[supervisorctl]
7+
serverurl=unix:///tmp/logs-gitit-supervisord.sock
8+
9+
[rpcinterface:supervisor]
10+
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
11+
12+
[program:gitit]
13+
directory = /data/gitit
14+
command = gitit -f gitit.conf
15+
stdout_logfile = /data/gitit/logs-%(program_name)s.log
16+
stderr_logfile = /data/gitit/logs-%(program_name)s.log
17+
autostart = true
18+
autorestart = true
19+
redirect_stderr = true
20+
numprocs = 1

0 commit comments

Comments
 (0)