diff --git a/CONFIGURING.md b/CONFIGURING.md index bf19ca0c..df103949 100644 --- a/CONFIGURING.md +++ b/CONFIGURING.md @@ -60,14 +60,22 @@ Remote synchronization settings: * `target` - list of synchronizations to be used, space separated list of strings, optional. Allowed values are `rsync`, `s3`. +### `rsync_*` group + +Group name must refer to architecture, e.g. it should be `rsync_x86_64` for x86_64 architecture. Requires `rsync` package to be installed. Do not forget to configure ssh for user `ahriman`. + +* `remote` - remote server to rsync (e.g. `1.2.3.4:5678:path/to/sync`), string, required. + ### `s3_*` group Group name must refer to architecture, e.g. it should be `s3_x86_64` for x86_64 architecture. Requires `aws-cli` package to be installed. Do not forget to configure it for user `ahriman`. * `bucket` - bucket name (e.g. `s3://bucket/path`), string, required. -### `rsync_*` group +## `web` group -Group name must refer to architecture, e.g. it should be `rsync_x86_64` for x86_64 architecture. Requires `rsync` package to be installed. Do not forget to configure ssh for user `ahriman`. +Web server settings. If any of `host`/`port` is not set, web intergration will be disabled. -* `remote` - remote server to rsync (e.g. `1.2.3.4:5678:path/to/sync`), string, required. +* `host` - host to bind, string, optional. +* `port` - port to bind, int, optional. +* `templates` - path to templates directory, string, required. diff --git a/package/archlinux/PKGBUILD b/package/archlinux/PKGBUILD index 062c197b..94a55d5a 100644 --- a/package/archlinux/PKGBUILD +++ b/package/archlinux/PKGBUILD @@ -14,14 +14,17 @@ optdepends=('aws-cli: sync to s3' 'darcs: -darcs packages support' 'gnupg: package and repository sign' 'mercurial: -hg packages support' + 'python-aiohttp: web server' + 'python-aiohttp-jinja2: web server' 'python-jinja: html report generation' + 'python-requests: web server' 'rsync: sync by using rsync' 'subversion: -svn packages support') source=("https://github.com/arcan1s/ahriman/releases/download/$pkgver/$pkgname-$pkgver-src.tar.xz" 'ahriman.sudoers' 'ahriman.sysusers' 'ahriman.tmpfiles') -sha512sums=('82a8208554956f009db0334b0cb20891889d96617b4c9b9d2af7a007d668f6cbc6d46d0be8b5ee11ffb2b69d124b5d5d6db1a6f7d5a0a2c719c0d8e07dca24d8' +sha512sums=('bc4880fc2f4196dc959f14a199135bbf09c75fbaad722709c1ca7c1fdae0475b3cfcdff5bf33bc9bcdf4f17a0e29b42bd26de7b3d551356dd63a705ec496e111' '8c9b5b63ac3f7b4d9debaf801a1e9c060877c33d3ecafe18010fcca778e5fa2f2e46909d3d0ff1b229ff8aa978445d8243fd36e1fc104117ed678d5e21901167' '13718afec2c6786a18f0b223ef8e58dccf0688bca4cdbe203f14071f5031ed20120eb0ce38b52c76cfd6e8b6581a9c9eaa2743eb11abbaca637451a84c33f075' '55b20f6da3d66e7bbf2add5d95a3b60632df121717d25a993e56e737d14f51fe063eb6f1b38bd81cc32e05db01c0c1d80aaa720c45cde87f238d8b46cdb8cbc4') diff --git a/package/etc/ahriman.ini b/package/etc/ahriman.ini index b438bb39..008f5d83 100644 --- a/package/etc/ahriman.ini +++ b/package/etc/ahriman.ini @@ -27,13 +27,18 @@ target = path = homepage = link_path = -template_path = /usr/share/ahriman/index.jinja2 +template_path = /usr/share/ahriman/repo-index.jinja2 [upload] target = +[rsync_x86_64] +remote = + [s3_x86_64] bucket = -[rsync_x86_64] -remote = \ No newline at end of file +[web] +host = +port = +templates = /usr/share/ahriman \ No newline at end of file diff --git a/package/etc/ahriman.ini.d/logging.ini b/package/etc/ahriman.ini.d/logging.ini index 09c2a770..dd998588 100644 --- a/package/etc/ahriman.ini.d/logging.ini +++ b/package/etc/ahriman.ini.d/logging.ini @@ -1,8 +1,8 @@ [loggers] -keys = root,builder,build_details +keys = root,builder,build_details,http [handlers] -keys = console_handler,build_file_handler,file_handler +keys = console_handler,build_file_handler,file_handler,http_handler [formatters] keys = generic_format @@ -25,6 +25,12 @@ level = DEBUG formatter = generic_format args = ('/var/log/ahriman/build.log', 'a', 20971520, 20) +[handler_http_handler] +class = logging.handlers.RotatingFileHandler +level = DEBUG +formatter = generic_format +args = ('/var/log/ahriman/http.log', 'a', 20971520, 20) + [formatter_generic_format] format = %(asctime)s : %(levelname)s : %(funcName)s : %(message)s datefmt = @@ -45,3 +51,9 @@ level = DEBUG handlers = build_file_handler qualname = build_details propagate = 0 + +[logger_http] +level = DEBUG +handlers = http_handler +qualname = http +propagate = 0 diff --git a/package/lib/systemd/system/ahriman-web.service b/package/lib/systemd/system/ahriman-web.service new file mode 100644 index 00000000..67b5b0e1 --- /dev/null +++ b/package/lib/systemd/system/ahriman-web.service @@ -0,0 +1,11 @@ +[Unit] +Description=ArcHlinux ReposItory MANager web server + +[Service] +Type=simple +ExecStart=/usr/bin/ahriman --architecture x86_64 web +User=ahriman +Group=ahriman + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/package/share/ahriman/index.jinja2 b/package/share/ahriman/index.jinja2 index 7758fb8d..1b5756f6 100644 --- a/package/share/ahriman/index.jinja2 +++ b/package/share/ahriman/index.jinja2 @@ -2,30 +2,83 @@
package base | +packages | +version | +architecture | +timestamp | +status | +
---|---|---|---|---|---|
{{ package.base|e }} | +{{ package.packages|join(" "|safe) }} |
+ {{ package.version|e }} | +{{ architecture|e }} | +{{ package.timestamp|e }} | +{{ package.status|e }} | +