AHRIMAN(1)

NAME
ahriman - ArcH linux ReposItory MANager

SYNOPSIS
ahriman [-h] [-a ARCHITECTURE] [-c CONFIGURATION] [--force] [-l LOCK] [--log-handler {console,syslog,journald}] [-q] [--report | --no-report] [-r REPOSITORY] [--unsafe] [-V] [--wait-timeout WAIT_TIMEOUT] {add,aur-search,check,clean,config,config-validate,copy,daemon,help,help-commands-unsafe,help-updates,help-version,init,key-import,package-add,package-archives,package-changes,package-changes-remove,package-copy,package-hold,package-pkgbuild,package-pkgbuild-remove,package-remove,package-rollback,package-status,package-status-remove,package-status-update,package-unhold,package-update,patch-add,patch-list,patch-remove,patch-set-add,rebuild,remove,remove-unknown,repo-backup,repo-check,repo-clean,repo-config,repo-config-validate,repo-create-keyring,repo-create-mirrorlist,repo-daemon,repo-init,repo-rebuild,repo-remove-unknown,repo-report,repo-restore,repo-setup,repo-sign,repo-statistics,repo-status-update,repo-sync,repo-tree,repo-triggers,repo-update,report,run,search,service-clean,service-config,service-config-validate,service-key-import,service-repositories,service-run,service-setup,service-shell,service-tree-migrate,setup,shell,sign,status,status-update,sync,update,user-add,user-list,user-remove,version,web,web-reload} ...

DESCRIPTION
ArcH linux ReposItory MANager

OPTIONS

-a ARCHITECTURE, --architecture ARCHITECTURE
    filter by target architecture

-c CONFIGURATION, --configuration CONFIGURATION
    configuration path

--force
    force run, remove file lock

-l LOCK, --lock LOCK
    lock file

--log-handler {console,syslog,journald}
    explicit log handler specification. If none set, the handler will be guessed from environment

-q, --quiet
    force disable any logging

--report, --no-report
    force enable or disable reporting to web service

-r REPOSITORY, --repository REPOSITORY
    filter by target repository

--unsafe
    allow to run ahriman as non-ahriman user. Some actions might be unavailable

-V, --version
    show program's version number and exit

--wait-timeout WAIT_TIMEOUT
    wait for lock to be free. Negative value will lead to immediate application run even if there is lock file. In case of zero value, the application will wait infinitely

COMMAND

ahriman aur-search
    search for package

ahriman help
    show help message

ahriman help-commands-unsafe
    list unsafe commands

ahriman help-updates
    check for service updates

ahriman help-version
    application version

ahriman package-add
    add package

ahriman package-archives
    list package archive versions

ahriman package-changes
    get package changes

ahriman package-changes-remove
    remove package changes

ahriman package-copy
    copy package from another repository

ahriman package-hold
    hold package

ahriman package-pkgbuild
    get package pkgbuild

ahriman package-pkgbuild-remove
    remove package pkgbuild

ahriman package-remove
    remove package

ahriman package-rollback
    rollback package

ahriman package-status
    get package status

ahriman package-status-remove
    remove package status

ahriman package-status-update
    update package status

ahriman package-unhold
    unhold package

ahriman patch-add
    add patch for PKGBUILD function

ahriman patch-list
    list patch sets

ahriman patch-remove
    remove patch set

ahriman patch-set-add
    add patch set

ahriman repo-backup
    backup repository data

ahriman repo-check
    check for updates

ahriman repo-create-keyring
    create keyring package

ahriman repo-create-mirrorlist
    create mirrorlist package

ahriman repo-daemon
    run application as daemon

ahriman repo-rebuild
    rebuild repository

ahriman repo-remove-unknown
    remove unknown packages

ahriman repo-report
    generate report

ahriman repo-restore
    restore repository data

ahriman repo-sign
    sign packages

ahriman repo-statistics
    repository statistics

ahriman repo-status-update
    update repository status

ahriman repo-sync
    sync repository

ahriman repo-tree
    dump repository tree

ahriman repo-triggers
    run triggers

ahriman repo-update
    update packages

ahriman service-clean
    clean local caches

ahriman service-config
    dump configuration

ahriman service-config-validate
    validate system configuration

ahriman service-key-import
    import PGP key

ahriman service-repositories
    show repositories

ahriman service-run
    run multiple commands

ahriman service-setup
    initial service configuration

ahriman service-shell
    invoke python shell

ahriman service-tree-migrate
    migrate repository tree

ahriman user-add
    create or update user

ahriman user-list
    user known users and their access

ahriman user-remove
    remove user

ahriman web
    web server

ahriman web-reload
    reload configuration

COMMAND 'ahriman aur-search'
usage: ahriman aur-search [-h] [-e] [--info | --no-info]
                        [--sort-by {description,first_submitted,id,last_modified,maintainer,name,num_votes,out_of_date,package_base,package_base_id,popularity,repository,submitter,url,url_path,version}]
                        search [search ...] search for package in AUR using API

search
    search terms, can be specified multiple times, the result will match all terms

OPTIONS 'ahriman aur-search'

-e, --exit-code
    return non-zero exit status if result is empty

--info, --no-info
    show additional package information

--sort-by {description,first_submitted,id,last_modified,maintainer,name,num_votes,out_of_date,package_base,package_base_id,popularity,repository,submitter,url,url_path,version}
    sort field by this field. In case if two packages have the same value of the specified field, they will be always sorted by name

COMMAND 'ahriman help'
usage: ahriman help [-h] [subcommand] show help message for application or command and exit

subcommand
    show help message for specific command

COMMAND 'ahriman help-commands-unsafe'
usage: ahriman help-commands-unsafe [-h] [subcommand ...] list unsafe commands as defined in default args

subcommand
    instead of showing commands, just test command line for unsafe subcommand and return 0 in case if command is safe and 1 otherwise

COMMAND 'ahriman help-updates'
usage: ahriman help-updates [-h] [-e] request AUR for current version and compare with current service version

OPTIONS 'ahriman help-updates'

-e, --exit-code
    return non-zero exit code if updates available

COMMAND 'ahriman help-version'
usage: ahriman help-version [-h] print application and its dependencies versions

COMMAND 'ahriman package-add'
usage: ahriman package-add [-h] [--changes | --no-changes] [--dependencies | --no-dependencies] [-e]
                        [--increment | --no-increment] [-n] [-s {auto,archive,aur,directory,local,remote,repository}]
                        [-u USERNAME] [-v VARIABLE] [-y]
                        package [package ...] add existing or new package to the build queue

package
    package source (base name, path to local files, remote URL)

OPTIONS 'ahriman package-add'

--changes, --no-changes
    calculate changes from the latest known commit if available

--dependencies, --no-dependencies
    process missing package dependencies

-e, --exit-code
    return non-zero exit status if result is empty

--increment, --no-increment
    increment package release (pkgrel) version on duplicate

-n, --now
    run update function after

-s {auto,archive,aur,directory,local,remote,repository}, --source {auto,archive,aur,directory,local,remote,repository}
    explicitly specify the package source for this command

-u USERNAME, --username USERNAME
    build as user

-v VARIABLE, --variable VARIABLE
    apply specified makepkg variables to the next build

-y, --refresh
    download fresh package databases from the mirror before actions, -yy to force refresh even if up to date

COMMAND 'ahriman package-archives'
usage: ahriman package-archives [-h] [-e] [--info | --no-info] package list available archive versions for the package

package
    package base

OPTIONS 'ahriman package-archives'

-e, --exit-code
    return non-zero exit status if result is empty

--info, --no-info
    show additional package information

COMMAND 'ahriman package-changes'
usage: ahriman package-changes [-h] [-e] package retrieve package changes stored in database

package
    package base

OPTIONS 'ahriman package-changes'

-e, --exit-code
    return non-zero exit status if result is empty

COMMAND 'ahriman package-changes-remove'
usage: ahriman package-changes-remove [-h] package remove the package changes stored remotely

package
    package base

COMMAND 'ahriman package-copy'
usage: ahriman package-copy [-h] [-e] [--remove] source package [package ...] copy package and its metadata from another repository

source
    source repository name

package
    package base

OPTIONS 'ahriman package-copy'

-e, --exit-code
    return non-zero exit status if result is empty

--remove
    remove package from the source repository after

COMMAND 'ahriman package-hold'
usage: ahriman package-hold [-h] package [package ...] hold package from automatic updates

package
    package base

COMMAND 'ahriman package-pkgbuild'
usage: ahriman package-pkgbuild [-h] [-e] package retrieve package PKGBUILD stored in database

package
    package base

OPTIONS 'ahriman package-pkgbuild'

-e, --exit-code
    return non-zero exit status if result is empty

COMMAND 'ahriman package-pkgbuild-remove'
usage: ahriman package-pkgbuild-remove [-h] package remove the package PKGBUILD stored remotely

package
    package base

COMMAND 'ahriman package-remove'
usage: ahriman package-remove [-h] package [package ...] remove package from the repository

package
    package name or base

COMMAND 'ahriman package-rollback'
usage: ahriman package-rollback [-h] [--hold | --no-hold] [-u USERNAME] package version rollback package to specified version from archives

package
    package base

version
    package version

OPTIONS 'ahriman package-rollback'

--hold, --no-hold
    hold package afterwards

-u USERNAME, --username USERNAME
    build as user

COMMAND 'ahriman package-status'
usage: ahriman package-status [-h] [--ahriman] [-e] [--info | --no-info] [-s {unknown,pending,building,failed,success}]
                        [package ...] request status of the package

package
    filter status by package base

OPTIONS 'ahriman package-status'

--ahriman
    get service status itself

-e, --exit-code
    return non-zero exit status if result is empty

--info, --no-info
    show additional package information

-s {unknown,pending,building,failed,success}, --status {unknown,pending,building,failed,success}
    filter packages by status

COMMAND 'ahriman package-status-remove'
usage: ahriman package-status-remove [-h] package [package ...] remove the package from the status page

package
    remove specified packages from status page

COMMAND 'ahriman package-status-update'
usage: ahriman package-status-update [-h] [-s {unknown,pending,building,failed,success}] [package ...] update package status on the status page

package
    set status for specified packages. If no packages supplied, service status will be updated

OPTIONS 'ahriman package-status-update'

-s {unknown,pending,building,failed,success}, --status {unknown,pending,building,failed,success}
    new package build status

COMMAND 'ahriman package-unhold'
usage: ahriman package-unhold [-h] package [package ...] remove package hold, allowing automatic updates

package
    package base

COMMAND 'ahriman patch-add'
usage: ahriman patch-add [-h] package variable [patch] create or update patched PKGBUILD function or variable

package
    package base

variable
    PKGBUILD variable or function name. If variable is a function, it must end with ()

patch
    path to file which contains function or variable value. If not set, the value will be read from stdin

COMMAND 'ahriman patch-list'
usage: ahriman patch-list [-h] [-e] [-v VARIABLE] package list available patches for the package

package
    package base

OPTIONS 'ahriman patch-list'

-e, --exit-code
    return non-zero exit status if result is empty

-v VARIABLE, --variable VARIABLE
    if set, show only patches for specified PKGBUILD variables

COMMAND 'ahriman patch-remove'
usage: ahriman patch-remove [-h] [-v VARIABLE] package remove patches for the package

package
    package base

OPTIONS 'ahriman patch-remove'

-v VARIABLE, --variable VARIABLE
    should be used for single-function patches in case if you wold like to remove only specified PKGBUILD variables. In case if not set, it will remove all patches related to the package

COMMAND 'ahriman patch-set-add'
usage: ahriman patch-set-add [-h] [-t TRACK] package create or update source patches

package
    path to directory with changed files for patch addition/update

OPTIONS 'ahriman patch-set-add'

-t TRACK, --track TRACK
    files which has to be tracked

COMMAND 'ahriman repo-backup'
usage: ahriman repo-backup [-h] path backup repository settings and database

path
    path of the output archive

COMMAND 'ahriman repo-check'
usage: ahriman repo-check [-h] [--changes | --no-changes] [--check-files | --no-check-files] [-e] [--vcs | --no-vcs]
                        [-y]
                        [package ...] check for packages updates. Same as repo-update --dry-run --no-manual

package
    filter check by package base

OPTIONS 'ahriman repo-check'

--changes, --no-changes
    calculate changes from the latest known commit if available

--check-files, --no-check-files
    enable or disable checking of broken dependencies (e.g. dynamically linked libraries or modules directories)

-e, --exit-code
    return non-zero exit status if result is empty

--vcs, --no-vcs
    fetch actual version of VCS packages

-y, --refresh
    download fresh package databases from the mirror before actions, -yy to force refresh even if up to date

COMMAND 'ahriman repo-create-keyring'
usage: ahriman repo-create-keyring [-h] create package which contains list of trusted keys as set by configuration. Note, that this action will only create package, the package itself has to be built manually

COMMAND 'ahriman repo-create-mirrorlist'
usage: ahriman repo-create-mirrorlist [-h] create package which contains list of available mirrors as set by configuration. Note, that this action will only create package, the package itself has to be built manually

COMMAND 'ahriman repo-daemon'
usage: ahriman repo-daemon [-h] [-i INTERVAL] [--aur | --no-aur] [--changes | --no-changes]
                        [--check-files | --no-check-files] [--dependencies | --no-dependencies] [--dry-run]
                        [--increment | --no-increment] [--local | --no-local] [--manual | --no-manual]
                        [--partitions | --no-partitions] [-u USERNAME] [--vcs | --no-vcs] [-y] start process which periodically will run update process

OPTIONS 'ahriman repo-daemon'

-i INTERVAL, --interval INTERVAL
    interval between runs in seconds

--aur, --no-aur
    enable or disable checking for AUR updates

--changes, --no-changes
    calculate changes from the latest known commit if available. Only applicable in dry run mode

--check-files, --no-check-files
    enable or disable checking of broken dependencies (e.g. dynamically linked libraries or modules directories)

--dependencies, --no-dependencies
    process missing package dependencies

--dry-run
    just perform check for updates, same as check command

--increment, --no-increment
    increment package release (pkgrel) on duplicate

--local, --no-local
    enable or disable checking of local packages for updates

--manual, --no-manual
    include or exclude manual updates

--partitions, --no-partitions
    instead of updating whole repository, split updates into chunks

-u USERNAME, --username USERNAME
    build as user

--vcs, --no-vcs
    fetch actual version of VCS packages

-y, --refresh
    download fresh package databases from the mirror before actions, -yy to force refresh even if up to date

COMMAND 'ahriman repo-rebuild'
usage: ahriman repo-rebuild [-h] [--depends-on DEPENDS_ON] [--dry-run] [--from-database] [--increment | --no-increment]
                        [-e] [-s {unknown,pending,building,failed,success}] [-u USERNAME] force rebuild whole repository

OPTIONS 'ahriman repo-rebuild'

--depends-on DEPENDS_ON
    only rebuild packages that depend on specified packages

--dry-run
    just perform check for packages without rebuild process itself

--from-database
    read packages from database instead of filesystem. This feature in particular is required in case if you would like to restore repository from another repository instance. Note, however, that in order to restore packages you need to have original ahriman instance run with web service and have run repo-update at least once.

--increment, --no-increment
    increment package release (pkgrel) on duplicate

-e, --exit-code
    return non-zero exit status if result is empty

-s {unknown,pending,building,failed,success}, --status {unknown,pending,building,failed,success}
    filter packages by status. Requires --from-database to be set

-u USERNAME, --username USERNAME
    build as user

COMMAND 'ahriman repo-remove-unknown'
usage: ahriman repo-remove-unknown [-h] [--dry-run] remove packages which are missing in AUR and do not have local PKGBUILDs

OPTIONS 'ahriman repo-remove-unknown'

--dry-run
    just perform check for packages without removal

COMMAND 'ahriman repo-report'
usage: ahriman repo-report [-h] generate repository report according to current settings

COMMAND 'ahriman repo-restore'
usage: ahriman repo-restore [-h] [-o OUTPUT] path restore settings and database

path
    path of the input archive

OPTIONS 'ahriman repo-restore'

-o OUTPUT, --output OUTPUT
    root path of the extracted files

COMMAND 'ahriman repo-sign'
usage: ahriman repo-sign [-h] [package ...] (re-)sign packages and repository database according to current settings

package
    sign only specified packages

COMMAND 'ahriman repo-statistics'
usage: ahriman repo-statistics [-h] [--chart CHART]
                        [-e {build-log,package-held,package-outdated,package-removed,package-status-changed,package-update-failed,package-updated,service-status-changed}]
                        [--from-date FROM_DATE] [--limit LIMIT] [--offset OFFSET] [--to-date TO_DATE]
                        [package] fetch repository statistics

package
    fetch only events for the specified package

OPTIONS 'ahriman repo-statistics'

--chart CHART
    create updates chart and save it to the specified path

-e {build-log,package-held,package-outdated,package-removed,package-status-changed,package-update-failed,package-updated,service-status-changed}, --event {build-log,package-held,package-outdated,package-removed,package-status-changed,package-update-failed,package-updated,service-status-changed}
    event type filter

--from-date FROM_DATE
    only fetch events which are newer than the date

--limit LIMIT
    limit response by specified amount of events

--offset OFFSET
    skip specified amount of events

--to-date TO_DATE
    only fetch events which are older than the date

COMMAND 'ahriman repo-status-update'
usage: ahriman repo-status-update [-h] [-s {unknown,pending,building,failed,success}] update repository status on the status page

OPTIONS 'ahriman repo-status-update'

-s {unknown,pending,building,failed,success}, --status {unknown,pending,building,failed,success}
    new status

COMMAND 'ahriman repo-sync'
usage: ahriman repo-sync [-h] sync repository files to remote server according to current settings

COMMAND 'ahriman repo-tree'
usage: ahriman repo-tree [-h] [-p PARTITIONS] dump repository tree based on packages dependencies

OPTIONS 'ahriman repo-tree'

-p PARTITIONS, --partitions PARTITIONS
    also divide packages by independent partitions

COMMAND 'ahriman repo-triggers'
usage: ahriman repo-triggers [-h] [trigger ...] run triggers on empty build result as configured by settings

trigger
    instead of running all triggers as set by configuration, just process specified ones in order of mention

COMMAND 'ahriman repo-update'
usage: ahriman repo-update [-h] [--aur | --no-aur] [--changes | --no-changes] [--check-files | --no-check-files]
                        [--dependencies | --no-dependencies] [--dry-run] [-e] [--increment | --no-increment]
                        [--local | --no-local] [--manual | --no-manual] [-u USERNAME] [--vcs | --no-vcs] [-y]
                        [package ...] check for packages updates and run build process if requested

package
    filter check by package base

OPTIONS 'ahriman repo-update'

--aur, --no-aur
    enable or disable checking for AUR updates

--changes, --no-changes
    calculate changes from the latest known commit if available. Only applicable in dry run mode

--check-files, --no-check-files
    enable or disable checking of broken dependencies (e.g. dynamically linked libraries or modules directories)

--dependencies, --no-dependencies
    process missing package dependencies

--dry-run
    just perform check for updates, same as check command

-e, --exit-code
    return non-zero exit status if result is empty

--increment, --no-increment
    increment package release (pkgrel) on duplicate

--local, --no-local
    enable or disable checking of local packages for updates

--manual, --no-manual
    include or exclude manual updates

-u USERNAME, --username USERNAME
    build as user

--vcs, --no-vcs
    fetch actual version of VCS packages

-y, --refresh
    download fresh package databases from the mirror before actions, -yy to force refresh even if up to date

COMMAND 'ahriman service-clean'
usage: ahriman service-clean [-h] [--cache | --no-cache] [--chroot | --no-chroot] [--manual | --no-manual]
                        [--packages | --no-packages] [--pacman | --no-pacman] remove local caches

OPTIONS 'ahriman service-clean'

--cache, --no-cache
    clear directory with package caches

--chroot, --no-chroot
    clear build chroot

--manual, --no-manual
    clear manually added packages queue

--packages, --no-packages
    clear directory with built packages

--pacman, --no-pacman
    clear directory with pacman local database cache

COMMAND 'ahriman service-config'
usage: ahriman service-config [-h] [--info | --no-info] [--secure | --no-secure] [section] [key] dump configuration for the specified architecture

section
    filter settings by section

key filter settings by key

OPTIONS 'ahriman service-config'

--info, --no-info
    show additional information, e.g. configuration files

--secure, --no-secure
    hide passwords and secrets from output

COMMAND 'ahriman service-config-validate'
usage: ahriman service-config-validate [-h] [-e] validate configuration and print found errors

OPTIONS 'ahriman service-config-validate'

-e, --exit-code
    return non-zero exit status if configuration is invalid

COMMAND 'ahriman service-key-import'
usage: ahriman service-key-import [-h] [--key-server KEY_SERVER] key import PGP key from public sources to the repository user

key PGP key to import from public server

OPTIONS 'ahriman service-key-import'

--key-server KEY_SERVER
    key server for key import

COMMAND 'ahriman service-repositories'
usage: ahriman service-repositories [-h] [--id-only | --no-id-only] list all available repositories

OPTIONS 'ahriman service-repositories'

--id-only, --no-id-only
    show machine readable identifier instead

COMMAND 'ahriman service-run'
usage: ahriman service-run [-h] command [command ...] run multiple commands on success run of the previous command

command
    command to be run (quoted) without ``ahriman``

COMMAND 'ahriman service-setup'
usage: ahriman service-setup [-h] [--build-as-user BUILD_AS_USER] [--from-configuration FROM_CONFIGURATION]
                        [--generate-salt | --no-generate-salt] [--makeflags-jobs | --no-makeflags-jobs]
                        [--mirror MIRROR] [--multilib | --no-multilib] --packager PACKAGER [--server SERVER]
                        [--sign-key SIGN_KEY] [--sign-target {disabled,packages,repository}] [--web-port WEB_PORT]
                        [--web-unix-socket WEB_UNIX_SOCKET] create initial service configuration, requires root

OPTIONS 'ahriman service-setup'

--build-as-user BUILD_AS_USER
    force makepkg user to the specific one

--from-configuration FROM_CONFIGURATION
    path to default devtools pacman configuration

--generate-salt, --no-generate-salt
    generate salt for user passwords

--makeflags-jobs, --no-makeflags-jobs
    append MAKEFLAGS variable with parallelism set to number of cores

--mirror MIRROR
    use the specified explicitly mirror instead of including mirrorlist

--multilib, --no-multilib
    add or do not multilib repository

--packager PACKAGER
    packager name and email

--server SERVER
    server to be used for devtools. If none set, local files will be used

--sign-key SIGN_KEY
    sign key id

--sign-target {disabled,packages,repository}
    sign options

--web-port WEB_PORT
    port of the web service

--web-unix-socket WEB_UNIX_SOCKET
    path to unix socket used for interprocess communications

COMMAND 'ahriman service-shell'
usage: ahriman service-shell [-h] [-o OUTPUT] [code] drop into python shell

code
    instead of dropping into shell, just execute the specified code

OPTIONS 'ahriman service-shell'

-o OUTPUT, --output OUTPUT
    output commands and result to the file

COMMAND 'ahriman service-tree-migrate'
usage: ahriman service-tree-migrate [-h] migrate repository tree between versions

COMMAND 'ahriman user-add'
usage: ahriman user-add [-h] [--key KEY] [--packager PACKAGER] [-p PASSWORD] [-R {unauthorized,read,reporter,full}]
                        username update user for web services with the given password and role. In case if password was not entered it will be asked interactively

username
    username for web service

OPTIONS 'ahriman user-add'

--key KEY
    optional PGP key used by this user. The private key must be imported

--packager PACKAGER
    optional packager id used for build process in form of `Name Surname <mail@example.com>`

-p PASSWORD, --password PASSWORD
    user password. Blank password will be treated as empty password, which is in particular must be used for OAuth2 authorization type.

-R {unauthorized,read,reporter,full}, --role {unauthorized,read,reporter,full}
    user access level

COMMAND 'ahriman user-list'
usage: ahriman user-list [-h] [-e] [-R {unauthorized,read,reporter,full}] [username] list users from the user mapping and their roles

username
    filter users by username

OPTIONS 'ahriman user-list'

-e, --exit-code
    return non-zero exit status if result is empty

-R {unauthorized,read,reporter,full}, --role {unauthorized,read,reporter,full}
    filter users by role

COMMAND 'ahriman user-remove'
usage: ahriman user-remove [-h] username remove user from the user mapping and update the configuration

username
    username for web service

COMMAND 'ahriman web'
usage: ahriman web [-h] start web server

COMMAND 'ahriman web-reload'
usage: ahriman web-reload [-h] reload web server configuration

COMMENTS
Quick setup command (replace repository name, architecture and packager as needed): >>> ahriman -a x86_64 -r aur service-setup --packager "ahriman bot <ahriman@example.com>" Add new package from AUR: >>> ahriman package-add ahriman --now Check for updates and build out-of-dated packages (add ``--dry-run`` to build it later): >>> ahriman repo-update Remove package from the repository: >>> ahriman package-remove ahriman Start web service (requires additional configuration): >>> ahriman web

AUTHOR
ahriman team

DISTRIBUTION
The latest version of ahriman may be downloaded from https://github.com/arcan1s/ahriman