aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/environment-to-ini/README
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2019-12-28 00:49:42 +0000
committerLunny Xiao <xiaolunwen@gmail.com>2019-12-28 08:49:42 +0800
commit884173232fa036b032f77d5a10d78e695e96b5de (patch)
treec4ffc2ed43286a5124ab475fccc3718f6cd10ea8 /contrib/environment-to-ini/README
parent4ee97465e97ae6b9d3ac6ea57246f67715246afe (diff)
downloadgitea-884173232fa036b032f77d5a10d78e695e96b5de.tar.gz
gitea-884173232fa036b032f77d5a10d78e695e96b5de.zip
Add contrib/environment-to-ini (#9519)
* Add contrib/environment-to-ini This contrib command provides a mechanism to allow arbitrary setting of ini values using the environment variable in a more docker standard fashion. Environment variable keys should be structured as: "GITEA__SECTION_NAME__KEY_NAME" Use of the command is explained in the README. Partial fix for #350 Closes #7287 * Update contrib/environment-to-ini/environment-to-ini.go Co-Authored-By: 6543 <6543@obermui.de> Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com> Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'contrib/environment-to-ini/README')
-rw-r--r--contrib/environment-to-ini/README66
1 files changed, 66 insertions, 0 deletions
diff --git a/contrib/environment-to-ini/README b/contrib/environment-to-ini/README
new file mode 100644
index 0000000000..642a82d28e
--- /dev/null
+++ b/contrib/environment-to-ini/README
@@ -0,0 +1,66 @@
+Environment To Ini
+==================
+
+Multiple docker users have requested that the Gitea docker is changed
+to permit arbitrary configuration via environment variables.
+
+Gitea needs to use an ini file for configuration because the running
+environment that starts the docker may not be the same as that used
+by the hooks. An ini file also gives a good default and means that
+users do not have to completely provide a full environment.
+
+With those caveats above, this command provides a generic way of
+converting suitably structured environment variables into any ini
+value.
+
+To use the command is very simple just run it and the default gitea
+app.ini will be rewritten to take account of the variables provided,
+however there are various options to give slightly different
+behavior and these can be interrogated with the `-h` option.
+
+The environment variables should be of the form:
+
+ GITEA__SECTION_NAME__KEY_NAME
+
+Environment variables are usually restricted to a reduced character
+set "0-9A-Z_" - in order to allow the setting of sections with
+characters outside of that set, they should be escaped as following:
+"_0X2E_" for ".". The entire section and key names can be escaped as
+a UTF8 byte string if necessary. E.g. to configure:
+
+ """
+ ...
+ [log.console]
+ COLORIZE=false
+ STDERR=true
+ ...
+ """
+
+You would set the environment variables: "GITEA__LOG_0x2E_CONSOLE__COLORIZE=false"
+and "GITEA__LOG_0x2E_CONSOLE__STDERR=false". Other examples can be found
+on the configuration cheat sheet.
+
+To plug this command in to the docker, you simply compile the provided go file using:
+
+ go build environment-to-ini.go
+
+And copy the resulting `environment-to-ini` command to /app/gitea in the docker.
+
+Apply the below patch to /etc/s6/gitea.setup to wire this in.
+
+If you find this useful please comment on #7287
+
+
+diff --git a/docker/root/etc/s6/gitea/setup b/docker/root/etc/s6/gitea/setup
+index f87ce9115..565bfcba9 100755
+--- a/docker/root/etc/s6/gitea/setup
++++ b/docker/root/etc/s6/gitea/setup
+@@ -44,6 +44,8 @@ if [ ! -f ${GITEA_CUSTOM}/conf/app.ini ]; then
+ SECRET_KEY=${SECRET_KEY:-""} \
+ envsubst < /etc/templates/app.ini > ${GITEA_CUSTOM}/conf/app.ini
+
++ /app/gitea/environment-to-ini -c ${GITEA_CUSTOM}/conf/app.ini
++
+ chown ${USER}:git ${GITEA_CUSTOM}/conf/app.ini
+ fi
+