Upstream: https://github.com/YunoHost/yunohost @ 3a5f8bac8301c450897b96cbd43a4c7d3ba750fb But (José) : transformer tout le code en bions + ploxions du xerboxion. La carte de digestion vit au labo : /yunohost-digest.json
2413 lines
93 KiB
YAML
Executable File
2413 lines
93 KiB
YAML
Executable File
##########################################################################
|
|
# Category/actions/arguments file
|
|
#
|
|
#
|
|
# Except for general_arguments, this file contains 3 levels
|
|
# as in this sample command line:
|
|
#
|
|
# yunohost monitor info --cpu --ram
|
|
# ^ ^ ^ ^
|
|
# (script) | category | action | parameters
|
|
#
|
|
#
|
|
# Above example will lead to the function 'monitor_info(args)'
|
|
# in the file 'yunohost_monitor.py' with 'cpu' and 'ram'
|
|
# stored in an 'args' dictionnary.
|
|
#
|
|
# Usage:
|
|
# You can add a category at the first level, action at the second one,
|
|
# and arguments at the third one.
|
|
# If a connexion is needed for the action, don't forget to add it to
|
|
# the action parameters (ldap, repo, dns or firewall).
|
|
#
|
|
# Documentation:
|
|
# You can see all arguments settings at the argparse documentation:
|
|
# http://docs.python.org/dev/library/argparse.html
|
|
# #argparse.ArgumentParser.add_argument
|
|
#
|
|
# Don't forget to turn argument yaml style (setting: value)
|
|
#
|
|
##########################################################################
|
|
|
|
#############################
|
|
# Global parameters #
|
|
#############################
|
|
_global:
|
|
namespace: yunohost
|
|
authentication:
|
|
api: ldap_admin
|
|
cli: null
|
|
|
|
#############################
|
|
# User #
|
|
#############################
|
|
user:
|
|
category_help: Manage users and groups
|
|
actions:
|
|
|
|
### user_list()
|
|
list:
|
|
action_help: List users
|
|
api: GET /users
|
|
arguments:
|
|
--fields:
|
|
help: fields to fetch (username, fullname, mail, mail-alias, mail-forward, mailbox-quota, groups, shell, home-path)
|
|
nargs: "+"
|
|
choices:
|
|
- username
|
|
- fullname
|
|
- mail
|
|
- mail-alias
|
|
- mail-forward
|
|
- mailbox-quota
|
|
- groups
|
|
- shell
|
|
- home-path
|
|
|
|
### user_create()
|
|
create:
|
|
action_help: Create user
|
|
api: POST /users
|
|
arguments:
|
|
username:
|
|
help: The unique username to create
|
|
extra:
|
|
pattern: &pattern_username
|
|
- !!str ^[a-z0-9][-a-z0-9_\.]*$
|
|
- "pattern_username"
|
|
-F:
|
|
full: --fullname
|
|
help: The full name of the user. For example 'Camille Dupont'
|
|
extra:
|
|
ask: ask_fullname
|
|
required: True
|
|
pattern: &pattern_fullname
|
|
- !!str ^([^\W_]{1,30}[ ,.'-]{0,3})+$
|
|
- "pattern_fullname"
|
|
-p:
|
|
full: --password
|
|
help: User password
|
|
extra:
|
|
password: ask_password
|
|
required: True
|
|
pattern: &pattern_password
|
|
- !!str ^.{3,}$
|
|
- "pattern_password"
|
|
comment: good_practices_about_user_password
|
|
-d:
|
|
full: --domain
|
|
help: Domain for the email address
|
|
extra:
|
|
pattern: &pattern_domain
|
|
- !!str ^([^\W_A-Z]+([-]*[^\W_A-Z]+)*\.)+((xn--)?[^\W_]{2,})$
|
|
- "pattern_domain"
|
|
autocomplete: &domains_list
|
|
ynh_selector: domain list
|
|
jq_selector: '.domains[]'
|
|
use_cache: false
|
|
-q:
|
|
full: --mailbox-quota
|
|
help: Mailbox size quota
|
|
default: "0"
|
|
metavar: "{SIZE|0}"
|
|
extra:
|
|
pattern: &pattern_mailbox_quota
|
|
- !!str ^(\d+[bkMGT])|0$
|
|
- "pattern_mailbox_quota"
|
|
-s:
|
|
full: --loginShell
|
|
help: The login shell used
|
|
default: "/bin/bash"
|
|
|
|
|
|
### user_delete()
|
|
delete:
|
|
action_help: Delete user
|
|
api: DELETE /users/<username>
|
|
arguments:
|
|
username:
|
|
help: Username to delete
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: &users_list
|
|
ynh_selector: user list --fields username
|
|
jq_selector: '.users[].username'
|
|
use_cache: false
|
|
--purge:
|
|
help: Purge user's home and mail directories
|
|
action: store_true
|
|
--force:
|
|
help: Force user deletion
|
|
action: store_true
|
|
|
|
### user_update()
|
|
update:
|
|
action_help: Update user informations
|
|
api: PUT /users/<username>
|
|
arguments:
|
|
username:
|
|
help: Username to update
|
|
extra:
|
|
autocomplete: *users_list
|
|
-F:
|
|
full: --fullname
|
|
help: The full name of the user. For example 'Camille Dupont'
|
|
extra:
|
|
pattern: *pattern_fullname
|
|
-m:
|
|
full: --mail
|
|
extra:
|
|
pattern: &pattern_email
|
|
- !!str ^[\w.-]+@([^\W_A-Z]+([-]*[^\W_A-Z]+)*\.)+((xn--)?[^\W_]{2,})$
|
|
- "pattern_email"
|
|
-p:
|
|
full: --change-password
|
|
help: New password to set
|
|
metavar: PASSWORD
|
|
nargs: "?"
|
|
const: 0
|
|
extra:
|
|
pattern: *pattern_password
|
|
comment: good_practices_about_user_password
|
|
--add-mailforward:
|
|
help: Mailforward addresses to add
|
|
nargs: "*"
|
|
metavar: MAIL
|
|
extra:
|
|
pattern: &pattern_email_forward
|
|
- !!str ^[\w\+.-]+@([^\W_A-Z]+([-]*[^\W_A-Z]+)*\.)+((xn--)?[^\W_]{2,})$
|
|
- "pattern_email_forward"
|
|
--remove-mailforward:
|
|
help: Mailforward addresses to remove
|
|
nargs: "*"
|
|
metavar: MAIL
|
|
--add-mailalias:
|
|
help: Mail aliases to add
|
|
nargs: "*"
|
|
metavar: MAIL
|
|
extra:
|
|
pattern: *pattern_email
|
|
--remove-mailalias:
|
|
help: Mail aliases to remove
|
|
nargs: "*"
|
|
metavar: MAIL
|
|
-q:
|
|
full: --mailbox-quota
|
|
help: Mailbox size quota
|
|
metavar: "{SIZE|0}"
|
|
extra:
|
|
pattern: *pattern_mailbox_quota
|
|
-s:
|
|
full: --loginShell
|
|
help: The login shell used
|
|
default: "/bin/bash"
|
|
|
|
### user_info()
|
|
info:
|
|
action_help: Get user information
|
|
api: GET /users/<username>
|
|
arguments:
|
|
username:
|
|
help: Username or email to get information
|
|
extra:
|
|
autocomplete: *users_list
|
|
|
|
### user_export()
|
|
export:
|
|
action_help: Export users into CSV
|
|
api: GET /users/export
|
|
|
|
### user_import()
|
|
import:
|
|
action_help: Import several users from CSV
|
|
api: POST /users/import
|
|
arguments:
|
|
csvfile:
|
|
help: "CSV file with columns username, firstname, lastname, password, mail, mailbox-quota, mail-alias, mail-forward, groups (separated by coma)"
|
|
type: open
|
|
extra:
|
|
autocomplete:
|
|
zsh_completion: _files
|
|
-u:
|
|
full: --update
|
|
help: Update all existing users contained in the CSV file (by default existing users are ignored)
|
|
action: store_true
|
|
-d:
|
|
full: --delete
|
|
help: Delete all existing users that are not contained in the CSV file (by default existing users are kept)
|
|
action: store_true
|
|
|
|
subcategories:
|
|
group:
|
|
subcategory_help: Manage user groups
|
|
actions:
|
|
### user_group_list()
|
|
list:
|
|
action_help: List existing groups
|
|
api: GET /users/groups
|
|
arguments:
|
|
-f:
|
|
full: --full
|
|
help: Display all informations known about each groups
|
|
action: store_true
|
|
-p:
|
|
full: --include-primary-groups
|
|
help: Also display primary groups (each user has an eponym group that only contains itself)
|
|
action: store_true
|
|
default: false
|
|
|
|
### user_group_create()
|
|
create:
|
|
action_help: Create group
|
|
api: POST /users/groups
|
|
arguments:
|
|
groupname:
|
|
help: Name of the group to be created
|
|
extra:
|
|
pattern: &pattern_groupname
|
|
- !!str ^[a-z0-9][-a-z0-9_\.]*$
|
|
- "pattern_groupname"
|
|
|
|
### user_group_delete()
|
|
delete:
|
|
action_help: Delete group
|
|
api: DELETE /users/groups/<groupname>
|
|
arguments:
|
|
groupname:
|
|
help: Name of the group to be deleted
|
|
extra:
|
|
pattern: *pattern_groupname
|
|
autocomplete: &user_groups_list
|
|
ynh_selector: user group list -s
|
|
jq_selector: '.groups[]'
|
|
use_cache: false
|
|
|
|
### user_group_info()
|
|
info:
|
|
action_help: Get information about a specific group
|
|
api: GET /users/groups/<groupname>
|
|
arguments:
|
|
groupname:
|
|
help: Name of the group to fetch info about
|
|
extra:
|
|
pattern: *pattern_groupname
|
|
autocomplete: *user_groups_list
|
|
|
|
### user_group_add()
|
|
add:
|
|
action_help: Add users to group
|
|
api: PUT /users/groups/<groupname>/add/<usernames>
|
|
arguments:
|
|
groupname:
|
|
help: Name of the group to add user(s) to
|
|
extra:
|
|
pattern: *pattern_groupname
|
|
autocomplete: *user_groups_list
|
|
usernames:
|
|
help: User(s) to add in the group
|
|
nargs: "*"
|
|
metavar: USERNAME
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: *users_list
|
|
|
|
### user_group_remove()
|
|
remove:
|
|
action_help: Remove users from group
|
|
api: PUT /users/groups/<groupname>/remove/<usernames>
|
|
arguments:
|
|
groupname:
|
|
help: Name of the group to remove user(s) from
|
|
extra:
|
|
pattern: *pattern_groupname
|
|
autocomplete: *user_groups_list
|
|
usernames:
|
|
help: User(s) to remove from the group
|
|
nargs: "*"
|
|
metavar: USERNAME
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: *users_list
|
|
|
|
### user_group_add_mailalias()
|
|
add-mailalias:
|
|
action_help: Add mail aliases to group
|
|
api: PUT /users/groups/<groupname>/aliases/<aliases>
|
|
arguments:
|
|
groupname:
|
|
help: Name of the group to add user(s) to
|
|
extra:
|
|
pattern: *pattern_groupname
|
|
autocomplete: *user_groups_list
|
|
aliases:
|
|
help: Mail aliases to add
|
|
nargs: "+"
|
|
metavar: MAIL
|
|
extra:
|
|
pattern: *pattern_email
|
|
--force:
|
|
help: Ignore warnings about special groups
|
|
action: store_true
|
|
|
|
### user_group_remove_mailalias()
|
|
remove-mailalias:
|
|
action_help: Remove mail aliases to group
|
|
api: DELETE /users/groups/<groupname>/aliases/<aliases>
|
|
arguments:
|
|
groupname:
|
|
help: Name of the group to add user(s) to
|
|
extra:
|
|
pattern: *pattern_groupname
|
|
autocomplete: *user_groups_list
|
|
aliases:
|
|
help: Mail aliases to remove
|
|
nargs: "+"
|
|
metavar: MAIL
|
|
--force:
|
|
help: Ignore warnings about special groups
|
|
action: store_true
|
|
|
|
permission:
|
|
subcategory_help: Manage permissions
|
|
actions:
|
|
|
|
### user_permission_list()
|
|
list:
|
|
action_help: List permissions and corresponding accesses
|
|
api: GET /users/permissions
|
|
arguments:
|
|
apps:
|
|
help: Apps to list permission for (all by default)
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: &apps_list
|
|
ynh_selector: app list
|
|
jq_selector: '.apps[].id'
|
|
use_cache: false
|
|
-f:
|
|
full: --full
|
|
help: Display all info known about each permission, including the full user list of each group it is granted to.
|
|
action: store_true
|
|
|
|
### user_permission_info()
|
|
info:
|
|
action_help: Get information about a specific permission
|
|
api: GET /users/permissions/<permission>
|
|
arguments:
|
|
permission:
|
|
help: Name of the permission to fetch info about (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
|
extra:
|
|
autocomplete: &permissions_list
|
|
ynh_selector: user permission list
|
|
jq_selector: '.permissions | keys[]'
|
|
use_cache: false
|
|
|
|
### user_permission_update()
|
|
update:
|
|
action_help: Manage group or user permissions
|
|
api: PUT /users/permissions/<permission>
|
|
arguments:
|
|
permission:
|
|
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
|
extra:
|
|
autocomplete: *permissions_list
|
|
-l:
|
|
full: --label
|
|
help: Custom label for this app / permission
|
|
-s:
|
|
full: --show_tile
|
|
help: Define if a tile will be shown in the user portal
|
|
choices:
|
|
- 'True'
|
|
- 'False'
|
|
-L:
|
|
full: --logo
|
|
help: File to use as logo for this app / permission. Only PNG are supported.
|
|
type: argparse.FileType('rb')
|
|
-d:
|
|
full: --description
|
|
help: Custom description for this app / permission
|
|
-o:
|
|
full: --order
|
|
help: Order number to be used when displaying the tiles in the user portal. Default is 100 so set this to any low value for the tile to appear first, or higher value to appear last.
|
|
type: int
|
|
-H:
|
|
full: --hide_from_public
|
|
help: Mark the tile as to be hidden from the 'public app list' (if enabled). Useful for apps such as Nextcloud that need to be exposed to be publicly exposed for desktop/mobile client to be able to connect to, but not meant to be listed for visitors.
|
|
choices:
|
|
- "True"
|
|
- "False"
|
|
|
|
## user_permission_add()
|
|
add:
|
|
action_help: Grant permission to group or user
|
|
api: PUT /users/permissions/<permission>/add/<names>
|
|
arguments:
|
|
permission:
|
|
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
|
extra:
|
|
autocomplete: *permissions_list
|
|
names:
|
|
help: Group or usernames to grant this permission to
|
|
nargs: "*"
|
|
metavar: GROUP_OR_USER
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: &user_and_groups_list
|
|
ynh_selector: user group list
|
|
jq_selector: '[(.groups | keys), ([.groups[] | select(.members).members[]] | unique)] | add[]'
|
|
use_cache: false
|
|
|
|
## user_permission_remove()
|
|
remove:
|
|
action_help: Revoke permission to group or user
|
|
api: PUT /users/permissions/<permission>/remove/<names>
|
|
arguments:
|
|
permission:
|
|
help: Permission to manage (e.g. mail or nextcloud or wordpress.editors) (use "yunohost user permission list" and "yunohost user permission -f" to see all the current permissions)
|
|
extra:
|
|
autocomplete: *permissions_list
|
|
names:
|
|
help: Group or usernames to revoke this permission to
|
|
nargs: "*"
|
|
metavar: GROUP_OR_USER
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: *user_and_groups_list
|
|
|
|
## user_permission_ldapsync()
|
|
ldapsync:
|
|
action_help: Resynchronize permissions to LDAP from app settings. This is a purely technical command, only meant to be ran if you manually modified permission settings in app, which is absolutely not recommended.
|
|
|
|
ssh:
|
|
subcategory_help: Manage ssh access
|
|
actions:
|
|
|
|
### user_ssh_keys_list()
|
|
list-keys:
|
|
action_help: Show user's authorized ssh keys
|
|
api: GET /users/ssh/keys
|
|
arguments:
|
|
username:
|
|
help: Username of the user
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: *users_list
|
|
|
|
### user_ssh_keys_add()
|
|
add-key:
|
|
action_help: Add a new authorized ssh key for this user
|
|
api: POST /users/ssh/key
|
|
arguments:
|
|
username:
|
|
help: Username of the user
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: *users_list
|
|
key:
|
|
help: The key to be added
|
|
-c:
|
|
full: --comment
|
|
help: Optional comment about the key
|
|
|
|
### user_ssh_keys_remove()
|
|
remove-key:
|
|
action_help: Remove an authorized ssh key for this user
|
|
api: DELETE /users/ssh/key
|
|
arguments:
|
|
username:
|
|
help: Username of the user
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: *users_list
|
|
key:
|
|
help: The key to be removed
|
|
|
|
#############################
|
|
# Domain #
|
|
#############################
|
|
domain:
|
|
category_help: Manage domains
|
|
actions:
|
|
|
|
### domain_list()
|
|
list:
|
|
action_help: List domains
|
|
api: GET /domains
|
|
arguments:
|
|
--exclude-subdomains:
|
|
help: Filter out domains that are obviously subdomains of other declared domains
|
|
action: store_true
|
|
--tree:
|
|
help: Display domains as a tree
|
|
action: store_true
|
|
--features:
|
|
help: List only domains with features enabled (mail_in, mail_out)
|
|
nargs: "*"
|
|
|
|
### domain_info()
|
|
info:
|
|
action_help: Get domain aggredated data
|
|
api: GET /domains/<domain>
|
|
arguments:
|
|
domain:
|
|
help: Domain to check
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
|
|
### domain_add()
|
|
add:
|
|
action_help: Create a custom domain
|
|
api: POST /domains
|
|
arguments:
|
|
domain:
|
|
help: Domain name to add
|
|
extra:
|
|
pattern: *pattern_domain
|
|
--ignore-dyndns:
|
|
help: If adding a DynDNS domain, only add the domain, without subscribing to the DynDNS service
|
|
action: store_true
|
|
--dyndns-recovery-password:
|
|
metavar: PASSWORD
|
|
nargs: "?"
|
|
const: 0
|
|
help: If adding a DynDNS domain, subscribe to the DynDNS service with a password, used to later delete the domain
|
|
extra:
|
|
pattern: *pattern_password
|
|
--install-letsencrypt-cert:
|
|
help: If adding a subdomain of an already added domain, try to install a Let's Encrypt certificate
|
|
action: store_true
|
|
|
|
### domain_remove()
|
|
remove:
|
|
action_help: Delete domains
|
|
api: DELETE /domains/<domain>
|
|
arguments:
|
|
domain:
|
|
help: Domain to delete
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
-r:
|
|
full: --remove-apps
|
|
help: Remove apps installed on the domain
|
|
action: store_true
|
|
-f:
|
|
full: --force
|
|
help: Do not ask confirmation to remove apps
|
|
action: store_true
|
|
--ignore-dyndns:
|
|
help: If removing a DynDNS domain, only remove the domain, without unsubscribing from the DynDNS service
|
|
action: store_true
|
|
--dyndns-recovery-password:
|
|
metavar: PASSWORD
|
|
nargs: "?"
|
|
const: 0
|
|
help: If removing a DynDNS domain, unsubscribe from the DynDNS service with a password
|
|
extra:
|
|
pattern: *pattern_password
|
|
|
|
### domain_maindomain()
|
|
main-domain:
|
|
action_help: Check the current main domain, or change it
|
|
deprecated_alias:
|
|
- maindomain
|
|
api: PUT /domains/<new_main_domain>/main
|
|
arguments:
|
|
-n:
|
|
full: --new-main-domain
|
|
help: Change the current main domain
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
|
|
### domain_url_available()
|
|
url-available:
|
|
hide_in_help: True
|
|
action_help: Check availability of a web path
|
|
api: GET /domain/<domain>/urlavailable
|
|
arguments:
|
|
domain:
|
|
help: The domain for the web path (e.g. your.domain.tld)
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
path:
|
|
help: The path to check (e.g. /coffee)
|
|
|
|
|
|
### domain_action_run()
|
|
action-run:
|
|
hide_in_help: True
|
|
action_help: Run domain action
|
|
api: PUT /domain/<domain>/actions/<action>
|
|
arguments:
|
|
domain:
|
|
help: Domain name
|
|
extra:
|
|
autocomplete: *domains_list
|
|
action:
|
|
help: action id
|
|
-a:
|
|
full: --args
|
|
help: Serialized arguments for action (i.e. "foo=bar&lorem=ipsum")
|
|
|
|
subcategories:
|
|
dyndns:
|
|
subcategory_help: Subscribe and Update DynDNS Hosts
|
|
actions:
|
|
### domain_dyndns_subscribe()
|
|
subscribe:
|
|
action_help: Subscribe to a DynDNS service
|
|
arguments:
|
|
domain:
|
|
help: Domain to subscribe to the DynDNS service
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
-p:
|
|
full: --recovery-password
|
|
nargs: "?"
|
|
const: 0
|
|
help: Password used to later recover the domain if needed
|
|
extra:
|
|
pattern: *pattern_password
|
|
|
|
### domain_dyndns_unsubscribe()
|
|
unsubscribe:
|
|
action_help: Unsubscribe from a DynDNS service
|
|
arguments:
|
|
domain:
|
|
help: Domain to unsubscribe from the DynDNS service
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
required: True
|
|
-p:
|
|
full: --recovery-password
|
|
nargs: "?"
|
|
const: 0
|
|
help: Recovery password used to delete the domain
|
|
extra:
|
|
pattern: *pattern_password
|
|
|
|
### domain_dyndns_set_recovery_password()
|
|
set-recovery-password:
|
|
action_help: Set recovery password
|
|
arguments:
|
|
domain:
|
|
help: Domain to set recovery password for
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
required: True
|
|
-p:
|
|
full: --recovery-password
|
|
help: The new recovery password
|
|
extra:
|
|
password: ask_dyndns_recovery_password
|
|
pattern: *pattern_password
|
|
|
|
config:
|
|
subcategory_help: Domain settings
|
|
actions:
|
|
### domain_config_get()
|
|
get:
|
|
action_help: Display a domain configuration
|
|
api:
|
|
- GET /domains/<domain>/config
|
|
- GET /domains/<domain>/config/<key>
|
|
arguments:
|
|
domain:
|
|
help: Domain name
|
|
extra:
|
|
autocomplete: *domains_list
|
|
key:
|
|
help: A specific panel, section or a question identifier
|
|
nargs: '?'
|
|
-f:
|
|
full: --full
|
|
help: Display all details (meant to be used by the API)
|
|
action: store_true
|
|
-e:
|
|
full: --export
|
|
help: Only export key/values, meant to be reimported using "config set --args-file"
|
|
action: store_true
|
|
|
|
### domain_config_set()
|
|
set:
|
|
action_help: Apply a new configuration
|
|
api: PUT /domains/<domain>/config/<key>
|
|
arguments:
|
|
domain:
|
|
help: Domain name
|
|
extra:
|
|
autocomplete: *domains_list
|
|
key:
|
|
help: The question or form key
|
|
nargs: '?'
|
|
-v:
|
|
full: --value
|
|
help: new value
|
|
-a:
|
|
full: --args
|
|
help: Serialized arguments for new configuration (i.e. "mail_in=0&mail_out=0")
|
|
|
|
dns:
|
|
subcategory_help: Manage domains DNS
|
|
actions:
|
|
### domain_dns_conf()
|
|
suggest:
|
|
action_help: Generate sample DNS configuration for a domain
|
|
api:
|
|
- GET /domains/<domain>/dns
|
|
- GET /domains/<domain>/dns/suggest
|
|
arguments:
|
|
domain:
|
|
help: Target domain
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
|
|
### domain_dns_push()
|
|
push:
|
|
action_help: Push DNS records to registrar
|
|
api: POST /domains/<domain>/dns/push
|
|
arguments:
|
|
domain:
|
|
help: Domain name to push DNS conf for
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
-d:
|
|
full: --dry-run
|
|
help: Only display what's to be pushed
|
|
action: store_true
|
|
--force:
|
|
help: Also update/remove records which were not originally set by Yunohost, or which have been manually modified
|
|
action: store_true
|
|
--purge:
|
|
help: Delete all records
|
|
action: store_true
|
|
|
|
cert:
|
|
subcategory_help: Manage domain certificates
|
|
actions:
|
|
### certificate_status()
|
|
status:
|
|
action_help: List status of current certificates (all by default).
|
|
api:
|
|
- GET /domains/<domain_list>/cert
|
|
- GET /domains/*/cert
|
|
arguments:
|
|
domain_list:
|
|
help: Domains to check
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: *domains_list
|
|
--full:
|
|
help: Show more details
|
|
action: store_true
|
|
|
|
### certificate_install()
|
|
install:
|
|
action_help: Install Let's Encrypt certificates for given domains (all by default).
|
|
api: PUT /domains/<domain_list>/cert
|
|
arguments:
|
|
domain_list:
|
|
help: Domains for which to install the certificates
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: *domains_list
|
|
--force:
|
|
help: Install even if current certificate is not self-signed
|
|
action: store_true
|
|
--no-checks:
|
|
help: Does not perform any check that your domain seems correctly configured (DNS, reachability) before attempting to install. (Not recommended)
|
|
action: store_true
|
|
--self-signed:
|
|
help: Install self-signed certificate instead of Let's Encrypt
|
|
action: store_true
|
|
|
|
### certificate_renew()
|
|
renew:
|
|
action_help: Renew the Let's Encrypt certificates for given domains (all by default).
|
|
api: PUT /domains/<domain_list>/cert/renew
|
|
arguments:
|
|
domain_list:
|
|
help: Domains for which to renew the certificates
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: *domains_list
|
|
--force:
|
|
help: Ignore the validity threshold (15 days)
|
|
action: store_true
|
|
--email:
|
|
help: Send an email to root with logs if some renewing fails
|
|
action: store_true
|
|
--no-checks:
|
|
help: Does not perform any check that your domain seems correctly configured (DNS, reachability) before attempting to renew. (Not recommended)
|
|
action: store_true
|
|
|
|
#############################
|
|
# App #
|
|
#############################
|
|
app:
|
|
category_help: Manage apps
|
|
actions:
|
|
|
|
catalog:
|
|
action_help: Show the catalog of installable application
|
|
api: GET /apps/catalog
|
|
arguments:
|
|
-f:
|
|
full: --full
|
|
help: Display all details, including the app manifest and various other infos
|
|
action: store_true
|
|
-c:
|
|
full: --with-categories
|
|
help: Also return a list of app categories
|
|
action: store_true
|
|
-a:
|
|
full: --with-antifeatures
|
|
help: Also return a list of antifeatures categories
|
|
action: store_true
|
|
|
|
### app_search()
|
|
search:
|
|
action_help: Search installable apps
|
|
arguments:
|
|
string:
|
|
help: Return matching app name or description with "string"
|
|
|
|
### app_manifest()
|
|
manifest:
|
|
action_help: Return the manifest of a given app from the catalog, or from a remote git repo
|
|
api: GET /apps/manifest
|
|
arguments:
|
|
app:
|
|
help: Name, local path or git URL of the app to fetch the manifest of
|
|
extra:
|
|
autocomplete: &apps_catalog_list
|
|
ynh_selector: app catalog
|
|
jq_selector: '.apps | keys[]'
|
|
use_cache: True
|
|
-s:
|
|
full: --with-screenshot
|
|
help: Also return a base64 screenshot if any (API only)
|
|
action: store_true
|
|
extra:
|
|
autocomplete:
|
|
hide_in_help: True
|
|
|
|
### app_list()
|
|
list:
|
|
action_help: List installed apps
|
|
api: GET /apps
|
|
arguments:
|
|
-f:
|
|
full: --full
|
|
help: Display all details, including the app manifest and various other infos
|
|
action: store_true
|
|
|
|
### app_info()
|
|
info:
|
|
action_help: Show infos about a specific installed app
|
|
api: GET /apps/<app>
|
|
arguments:
|
|
app:
|
|
help: Specific app ID
|
|
extra:
|
|
autocomplete: *apps_list
|
|
-f:
|
|
full: --full
|
|
help: Display all details, including the app manifest and various other infos
|
|
action: store_true
|
|
--with-pre-upgrade-notifications:
|
|
help: Also fetch pre-upgrade notifications, if an upgrade is available (this is meant for the web API)
|
|
action: store_true
|
|
|
|
### app_map()
|
|
map:
|
|
action_help: Show the mapping between urls and apps
|
|
api: GET /apps/map
|
|
arguments:
|
|
-a:
|
|
full: --app
|
|
help: Specific app to map
|
|
extra:
|
|
autocomplete: *apps_list
|
|
-r:
|
|
full: --raw
|
|
help: Return complete dict
|
|
action: store_true
|
|
-u:
|
|
full: --user
|
|
help: Allowed app map for a user
|
|
extra:
|
|
pattern: *pattern_username
|
|
autocomplete: *users_list
|
|
|
|
### app_install()
|
|
install:
|
|
action_help: Install apps
|
|
api: POST /apps
|
|
arguments:
|
|
app:
|
|
help: Name, local path or git URL of the app to install
|
|
extra:
|
|
autocomplete: *apps_catalog_list
|
|
-l:
|
|
full: --label
|
|
help: Custom name for the app
|
|
-a:
|
|
full: --args
|
|
help: Serialized arguments for app script (i.e. "domain=domain.tld&path=/path&init_main_permission=visitors")
|
|
-n:
|
|
full: --no-remove-on-failure
|
|
help: Debug option to avoid removing the app on a failed installation
|
|
action: store_true
|
|
-f:
|
|
full: --force
|
|
help: Do not ask confirmation if the app is not safe to use (low quality, experimental or 3rd party), or when the app displays a post-install notification
|
|
action: store_true
|
|
-i:
|
|
full: --ignore-yunohost-version
|
|
help: Attempt to install the app even if your YunoHost version is below the required one
|
|
action: store_true
|
|
|
|
### app_remove()
|
|
remove:
|
|
action_help: Remove app
|
|
api: DELETE /apps/<app>
|
|
arguments:
|
|
app:
|
|
help: App to remove
|
|
extra:
|
|
autocomplete: *apps_list
|
|
-p:
|
|
full: --purge
|
|
help: Also remove all application data
|
|
action: store_true
|
|
|
|
### app_upgrade()
|
|
upgrade:
|
|
action_help: Upgrade app
|
|
api: PUT /apps/<app>/upgrade
|
|
arguments:
|
|
app:
|
|
help: App(s) to upgrade (default all)
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: *apps_list
|
|
-u:
|
|
full: --url
|
|
help: Git url to fetch for upgrade
|
|
-f:
|
|
full: --file
|
|
help: Folder or tarball for upgrade
|
|
-F:
|
|
full: --force
|
|
help: Force the update, even though the app is up to date
|
|
action: store_true
|
|
-b:
|
|
full: --no-safety-backup
|
|
help: Disable the safety backup during upgrade
|
|
action: store_true
|
|
-c:
|
|
full: --continue-on-failure
|
|
help: Continue to upgrade apps even if one or more upgrade failed
|
|
action: store_true
|
|
-i:
|
|
full: --ignore-yunohost-version
|
|
help: Attempt to upgrade the app even if your YunoHost version is below the required one
|
|
action: store_true
|
|
|
|
### app_change_url()
|
|
change-url:
|
|
action_help: Change app's URL
|
|
api: PUT /apps/<app>/changeurl
|
|
arguments:
|
|
app:
|
|
help: Target app instance name
|
|
extra:
|
|
autocomplete: *apps_list
|
|
-d:
|
|
full: --domain
|
|
help: New app domain on which the application will be moved
|
|
extra:
|
|
ask: ask_new_domain
|
|
pattern: *pattern_domain
|
|
required: True
|
|
autocomplete: *domains_list
|
|
-p:
|
|
full: --path
|
|
help: New path at which the application will be moved
|
|
extra:
|
|
ask: ask_new_path
|
|
required: True
|
|
|
|
### app_setting()
|
|
setting:
|
|
action_help: Set or get an app setting value
|
|
api: GET /apps/<app>/settings
|
|
arguments:
|
|
app:
|
|
help: App ID
|
|
extra:
|
|
autocomplete: *apps_list
|
|
key:
|
|
help: Key to get/set
|
|
-v:
|
|
full: --value
|
|
help: Value to set
|
|
-d:
|
|
full: --delete
|
|
help: Delete the key
|
|
action: store_true
|
|
|
|
### app_shell()
|
|
shell:
|
|
action_help: Open an interactive shell with the app environment already loaded
|
|
# Here we set a GET only not to lock the command line. There is no actual API endpoint for app_shell()
|
|
api: GET /apps/<app>/shell
|
|
arguments:
|
|
app:
|
|
help: App ID
|
|
extra:
|
|
autocomplete: *apps_list
|
|
|
|
### app_db()
|
|
db:
|
|
action_help: Open an interactive database client prompt for the app
|
|
api: GET /apps/<app>/db
|
|
arguments:
|
|
app:
|
|
help: App ID
|
|
extra:
|
|
autocomplete: *apps_list
|
|
|
|
### app_register_url()
|
|
register-url:
|
|
hide_in_help: True
|
|
action_help: Book/register a web path for a given app
|
|
arguments:
|
|
app:
|
|
help: App which will use the web path
|
|
extra:
|
|
autocomplete: *apps_list
|
|
domain:
|
|
help: The domain on which the app should be registered (e.g. your.domain.tld)
|
|
extra:
|
|
autocomplete: *domains_list
|
|
path:
|
|
help: The path to be registered (e.g. /coffee)
|
|
|
|
|
|
### app_makedefault()
|
|
makedefault:
|
|
hide_in_help: True
|
|
action_help: Redirect domain root to an app
|
|
api: PUT /apps/<app>/default
|
|
arguments:
|
|
app:
|
|
help: App name to put on domain root
|
|
extra:
|
|
autocomplete: *apps_list
|
|
-d:
|
|
full: --domain
|
|
help: Specific domain to put app on (the app domain by default)
|
|
extra:
|
|
autocomplete: *domains_list
|
|
-u:
|
|
full: --undo
|
|
help: Undo redirection
|
|
action: store_true
|
|
|
|
### app_dismiss_notification
|
|
dismiss-notification:
|
|
hide_in_help: True
|
|
action_help: Dismiss post_install or post_upgrade notification
|
|
api: PUT /apps/<app>/dismiss_notification/<name>
|
|
arguments:
|
|
app:
|
|
help: App ID to dismiss notification for
|
|
extra:
|
|
autocomplete: *apps_list
|
|
name:
|
|
help: Notification name, either post_install or post_upgrade
|
|
choices:
|
|
- post_install
|
|
- post_upgrade
|
|
|
|
### app_ssowatconf()
|
|
ssowatconf:
|
|
action_help: Regenerate SSOwat configuration file
|
|
|
|
### app_change_label()
|
|
change-label:
|
|
action_help: Change app label
|
|
api: PUT /apps/<app>/label
|
|
arguments:
|
|
app:
|
|
help: App ID
|
|
extra:
|
|
autocomplete: *apps_list
|
|
new_label:
|
|
help: New app label
|
|
|
|
subcategories:
|
|
|
|
action:
|
|
subcategory_help: Handle apps actions
|
|
actions:
|
|
|
|
### app_action_list()
|
|
list:
|
|
action_help: List app actions
|
|
api: GET /apps/<app>/actions
|
|
arguments:
|
|
app:
|
|
help: App name
|
|
extra:
|
|
autocomplete: *apps_list
|
|
|
|
### app_action_run()
|
|
run:
|
|
action_help: Run app action
|
|
api: PUT /apps/<app>/actions/<action>
|
|
arguments:
|
|
app:
|
|
help: App name
|
|
extra:
|
|
autocomplete: *apps_list
|
|
action:
|
|
help: action id
|
|
-a:
|
|
full: --args
|
|
help: Serialized arguments for app script (i.e. "domain=domain.tld&path=/path")
|
|
|
|
config:
|
|
subcategory_help: Applications configuration panel
|
|
actions:
|
|
|
|
### app_config_get()
|
|
get:
|
|
action_help: Display an app configuration
|
|
api:
|
|
- GET /apps/<app>/config
|
|
- GET /apps/<app>/config/<key>
|
|
arguments:
|
|
app:
|
|
help: App name
|
|
extra:
|
|
autocomplete: *apps_list
|
|
key:
|
|
help: A specific panel, section or a question identifier
|
|
nargs: '?'
|
|
-f:
|
|
full: --full
|
|
help: Display all details (meant to be used by the API)
|
|
action: store_true
|
|
-e:
|
|
full: --export
|
|
help: Only export key/values, meant to be reimported using "config set --args-file"
|
|
action: store_true
|
|
--core:
|
|
help: Get the 'core' config for this app, such as permissions stuff. This option is only meant for API.
|
|
action: store_true
|
|
|
|
### app_config_set()
|
|
set:
|
|
action_help: Apply a new configuration
|
|
api: PUT /apps/<app>/config/<key>
|
|
arguments:
|
|
app:
|
|
help: App name
|
|
extra:
|
|
autocomplete: *apps_list
|
|
key:
|
|
help: The question or panel key
|
|
nargs: '?'
|
|
-v:
|
|
full: --value
|
|
help: new value
|
|
-a:
|
|
full: --args
|
|
help: Serialized arguments for new configuration (i.e. "domain=domain.tld&path=/path")
|
|
-f:
|
|
full: --args-file
|
|
help: YAML or JSON file with key/value couples
|
|
type: open
|
|
--core:
|
|
help: Set the 'core' config for this app, such as permissions stuff. This option is only meant for API.
|
|
action: store_true
|
|
|
|
#############################
|
|
# Backup #
|
|
#############################
|
|
backup:
|
|
category_help: Manage backups
|
|
actions:
|
|
|
|
### backup_create()
|
|
create:
|
|
action_help: Create a backup local archive. If neither --apps or --system are given, this will backup all apps and all system parts. If only --apps if given, this will only backup apps and no system parts. Similarly, if only --system is given, this will only backup system parts and no apps.
|
|
api: POST /backups
|
|
arguments:
|
|
-n:
|
|
full: --name
|
|
help: Name of the backup archive
|
|
extra:
|
|
pattern: &pattern_backup_archive_name
|
|
- !!str ^[\w\-\._]{1,50}(?<!\.)$
|
|
- "pattern_backup_archive_name"
|
|
-d:
|
|
full: --description
|
|
help: Short description of the backup
|
|
-o:
|
|
full: --output-directory
|
|
help: Output directory for the backup
|
|
--methods:
|
|
help: List of backup methods to apply (copy or tar by default)
|
|
nargs: "*"
|
|
--system:
|
|
help: List of system parts to backup (or all if none given).
|
|
nargs: "*"
|
|
--apps:
|
|
help: List of application names to backup (or all if none given)
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: *apps_list
|
|
--dry-run:
|
|
help: "'Simulate' the backup and return the size details per item to backup"
|
|
action: store_true
|
|
|
|
### backup_restore()
|
|
restore:
|
|
action_help: Restore from a local backup archive. If neither --apps or --system are given, this will restore all apps and all system parts in the archive. If only --apps if given, this will only restore apps and no system parts. Similarly, if only --system is given, this will only restore system parts and no apps.
|
|
api: PUT /backups/<name>/restore
|
|
arguments:
|
|
name:
|
|
help: Name or path of the backup archive
|
|
extra:
|
|
autocomplete: &backups_list
|
|
ynh_selector: backup list
|
|
jq_selector: '.archives[]'
|
|
use_cache: false
|
|
--system:
|
|
help: List of system parts to restore (or all if none is given)
|
|
nargs: "*"
|
|
--apps:
|
|
help: List of application names to restore (or all if none is given)
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: *apps_list
|
|
--force:
|
|
help: Force restauration on an already installed system
|
|
action: store_true
|
|
--no-remove-on-failure:
|
|
help: For app only, debug option to avoid removing the app on a failed restore
|
|
action: store_true
|
|
|
|
### backup_list()
|
|
list:
|
|
action_help: List available local backup archives
|
|
api: GET /backups
|
|
arguments:
|
|
-i:
|
|
full: --with-info
|
|
help: Show backup information for each archive
|
|
action: store_true
|
|
-H:
|
|
full: --human-readable
|
|
help: Print sizes in human readable format
|
|
action: store_true
|
|
|
|
### backup_info()
|
|
info:
|
|
action_help: Show info about a local backup archive
|
|
api: GET /backups/<name>
|
|
arguments:
|
|
name:
|
|
help: Name or path of the backup archive
|
|
extra:
|
|
autocomplete: *backups_list
|
|
-d:
|
|
full: --with-details
|
|
help: Show additional backup information
|
|
action: store_true
|
|
-H:
|
|
full: --human-readable
|
|
help: Print sizes in human readable format
|
|
action: store_true
|
|
|
|
### backup_download()
|
|
download:
|
|
hide_in_help: True
|
|
action_help: (API only) Request to download the file
|
|
api: GET /backups/<name>/download
|
|
arguments:
|
|
name:
|
|
help: Name of the local backup archive
|
|
|
|
### backup_delete()
|
|
delete:
|
|
action_help: Delete a backup archive
|
|
api: DELETE /backups/<name>
|
|
arguments:
|
|
name:
|
|
help: Name of the archive to delete
|
|
extra:
|
|
pattern: *pattern_backup_archive_name
|
|
autocomplete: *backups_list
|
|
|
|
#############################
|
|
# Settings #
|
|
#############################
|
|
settings:
|
|
category_help: Manage YunoHost global settings
|
|
actions:
|
|
|
|
### settings_list()
|
|
list:
|
|
action_help: list all entries of the settings
|
|
api: GET /settings
|
|
arguments:
|
|
-f:
|
|
full: --full
|
|
help: Display all details (meant to be used by the API)
|
|
action: store_true
|
|
|
|
### settings_get()
|
|
get:
|
|
action_help: get an entry value in the settings
|
|
api: GET /settings/<key>
|
|
arguments:
|
|
key:
|
|
help: Settings key
|
|
extra:
|
|
autocomplete: &settings_list
|
|
ynh_selector: settings list
|
|
jq_selector: '. | keys[]'
|
|
use_cache: false
|
|
-f:
|
|
full: --full
|
|
help: Display all details (meant to be used by the API)
|
|
action: store_true
|
|
-e:
|
|
full: --export
|
|
help: Only export key/values, meant to be reimported using "config set --args-file"
|
|
action: store_true
|
|
|
|
### settings_set()
|
|
set:
|
|
action_help: set an entry value in the settings
|
|
api: PUT /settings/<key>
|
|
arguments:
|
|
key:
|
|
help: The question or form key
|
|
nargs: '?'
|
|
extra:
|
|
autocomplete: *settings_list
|
|
-v:
|
|
full: --value
|
|
help: new value
|
|
-a:
|
|
full: --args
|
|
help: Serialized arguments for new configuration (i.e. "mail_in=0&mail_out=0")
|
|
|
|
### settings_reset_all()
|
|
reset-all:
|
|
action_help: reset all settings to their default value
|
|
api: DELETE /settings
|
|
|
|
### settings_reset()
|
|
reset:
|
|
action_help: set an entry value to its default one
|
|
api: DELETE /settings/<key>
|
|
arguments:
|
|
key:
|
|
help: Settings key
|
|
extra:
|
|
autocomplete: *settings_list
|
|
|
|
#############################
|
|
# Service #
|
|
#############################
|
|
service:
|
|
category_help: Manage services
|
|
actions:
|
|
|
|
### service_add()
|
|
add:
|
|
action_help: Add a service
|
|
arguments:
|
|
name:
|
|
help: Service name to add
|
|
-d:
|
|
full: --description
|
|
help: Description of the service
|
|
-l:
|
|
full: --log
|
|
help: Absolute path to log file to display
|
|
nargs: "+"
|
|
extra:
|
|
autocomplete:
|
|
zsh_completion: _files
|
|
--test_status:
|
|
help: Specify a custom bash command to check the status of the service. Note that it only makes sense to specify this if the corresponding systemd service does not return the proper information already.
|
|
--test_conf:
|
|
help: Specify a custom bash command to check if the configuration of the service is valid or broken, similar to nginx -t.
|
|
--needs_exposed_ports:
|
|
help: A list of ports that needs to be publicly exposed for the service to work as intended.
|
|
nargs: "+"
|
|
type: int
|
|
metavar: PORT
|
|
-n:
|
|
full: --need_lock
|
|
help: Use this option to prevent deadlocks if the service does invoke yunohost commands.
|
|
action: store_true
|
|
|
|
### service_remove()
|
|
remove:
|
|
action_help: Remove a service
|
|
arguments:
|
|
name:
|
|
help: Service name to remove
|
|
extra:
|
|
autocomplete: &services_list
|
|
ynh_selector: service status
|
|
jq_selector: '. | keys[]'
|
|
use_cache: false
|
|
|
|
### service_start()
|
|
start:
|
|
action_help: Start one or more services
|
|
api: PUT /services/<names>/start
|
|
arguments:
|
|
names:
|
|
help: Service name to start
|
|
nargs: "+"
|
|
metavar: NAME
|
|
extra:
|
|
autocomplete: *services_list
|
|
|
|
### service_stop()
|
|
stop:
|
|
action_help: Stop one or more services
|
|
api: PUT /services/<names>/stop
|
|
arguments:
|
|
names:
|
|
help: Service name to stop
|
|
nargs: "+"
|
|
metavar: NAME
|
|
extra:
|
|
autocomplete: *services_list
|
|
|
|
### service_reload()
|
|
reload:
|
|
action_help: Reload one or more services
|
|
arguments:
|
|
names:
|
|
help: Service name to reload
|
|
nargs: "+"
|
|
metavar: NAME
|
|
extra:
|
|
autocomplete: *services_list
|
|
|
|
### service_restart()
|
|
restart:
|
|
action_help: Restart one or more services. If the services are not running yet, they will be started.
|
|
api: PUT /services/<names>/restart
|
|
arguments:
|
|
names:
|
|
help: Service name to restart
|
|
nargs: "+"
|
|
metavar: NAME
|
|
extra:
|
|
autocomplete: *services_list
|
|
|
|
### service_reload_or_restart()
|
|
reload_or_restart:
|
|
action_help: Reload one or more services if they support it. If not, restart them instead. If the services are not running yet, they will be started.
|
|
arguments:
|
|
names:
|
|
help: Service name to reload or restart
|
|
nargs: "+"
|
|
metavar: NAME
|
|
extra:
|
|
autocomplete: *services_list
|
|
|
|
### service_enable()
|
|
enable:
|
|
action_help: Enable one or more services
|
|
api: PUT /services/<names>/enable
|
|
arguments:
|
|
names:
|
|
help: Service name to enable
|
|
nargs: "+"
|
|
metavar: NAME
|
|
extra:
|
|
autocomplete: *services_list
|
|
|
|
### service_disable()
|
|
disable:
|
|
action_help: Disable one or more services
|
|
api: PUT /services/<names>/disable
|
|
arguments:
|
|
names:
|
|
help: Service name to disable
|
|
nargs: "+"
|
|
metavar: NAME
|
|
extra:
|
|
autocomplete: *services_list
|
|
|
|
### service_status()
|
|
status:
|
|
action_help: Show status information about one or more services (all by default)
|
|
api:
|
|
- GET /services
|
|
- GET /services/<names>
|
|
arguments:
|
|
names:
|
|
help: Service name to show
|
|
nargs: "*"
|
|
metavar: NAME
|
|
extra:
|
|
autocomplete: *services_list
|
|
|
|
### service_log()
|
|
log:
|
|
action_help: Log every log files of a service
|
|
api: GET /services/<name>/log
|
|
arguments:
|
|
name:
|
|
help: Service name to log
|
|
extra:
|
|
autocomplete: *services_list
|
|
-n:
|
|
full: --number
|
|
help: Number of lines to display
|
|
default: 50
|
|
type: int
|
|
|
|
#############################
|
|
# Firewall #
|
|
#############################
|
|
firewall:
|
|
category_help: Manage firewall rules
|
|
actions:
|
|
|
|
### firewall_list()
|
|
list:
|
|
action_help: List all firewall rules
|
|
api: GET /firewall
|
|
arguments:
|
|
-r:
|
|
full: --raw
|
|
help: Return the complete YAML dict
|
|
action: store_true
|
|
-p:
|
|
full: --protocol
|
|
help: "If not raw, protocol type to list (tcp/udp)"
|
|
choices:
|
|
- tcp
|
|
- udp
|
|
nargs: "?"
|
|
default: tcp
|
|
-f:
|
|
full: --forwarded
|
|
help: If not raw, list UPnP forwarded ports instead of open ports
|
|
action: store_true
|
|
|
|
### firewall_is_open()
|
|
is-open:
|
|
action_help: Returns whether the port is open or not.
|
|
api: GET /firewall/<protocol>/<port>
|
|
arguments:
|
|
port:
|
|
help: Port or range of ports to check
|
|
extra:
|
|
pattern: &pattern_port_or_range
|
|
- !!str ((^|(?!\A):)([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])){1,2}?$
|
|
- "pattern_port_or_range"
|
|
-p:
|
|
full: --protocol
|
|
help: "Protocol type (tcp/udp)"
|
|
choices:
|
|
- tcp
|
|
- udp
|
|
default: tcp
|
|
|
|
### firewall_open()
|
|
open:
|
|
action_help: Allow connections on a port
|
|
api: PUT /firewall/<protocol>/open/<port>
|
|
arguments:
|
|
port:
|
|
help: Port or range of ports to open
|
|
extra:
|
|
pattern: *pattern_port_or_range
|
|
-p:
|
|
full: --protocol
|
|
help: "Protocol type (tcp/udp)"
|
|
choices:
|
|
- tcp
|
|
- udp
|
|
default: tcp
|
|
comment:
|
|
help: A reason for the port to be open (like the app's name)
|
|
default: ""
|
|
--upnp:
|
|
help: Add forwarding of this port with UPnP
|
|
action: store_true
|
|
--no-reload:
|
|
help: Do not reload firewall rules
|
|
action: store_true
|
|
|
|
### firewall_close()
|
|
close:
|
|
action_help: Disallow connections on a port
|
|
api: PUT /firewall/<protocol>/close/<port>
|
|
arguments:
|
|
port:
|
|
help: Port or range of ports to close
|
|
extra:
|
|
pattern: *pattern_port_or_range
|
|
-p:
|
|
full: --protocol
|
|
help: "Protocol type (tcp/udp)"
|
|
choices:
|
|
- tcp
|
|
- udp
|
|
default: tcp
|
|
--upnp-only:
|
|
help: Only remove forwarding of this port with UPnP
|
|
action: store_true
|
|
--no-reload:
|
|
help: Do not reload firewall rules
|
|
action: store_true
|
|
|
|
### firewall_delete()
|
|
delete:
|
|
action_help: Unregister a port from YunoHost
|
|
api: PUT /firewall/<protocol>/delete/<port>
|
|
arguments:
|
|
port:
|
|
help: Port or range of ports to delete
|
|
extra:
|
|
pattern: *pattern_port_or_range
|
|
-p:
|
|
full: --protocol
|
|
help: "Protocol type (tcp/udp)"
|
|
choices:
|
|
- tcp
|
|
- udp
|
|
default: tcp
|
|
--no-reload:
|
|
help: Do not reload firewall rules
|
|
action: store_true
|
|
|
|
### firewall_allow()
|
|
allow:
|
|
action_help: Allow connections on a port
|
|
api: PUT /firewall/<protocol>/allow/<port>
|
|
arguments:
|
|
protocol:
|
|
help: "Protocol type to allow (TCP/UDP/Both)"
|
|
choices:
|
|
- TCP
|
|
- UDP
|
|
- Both
|
|
default: TCP
|
|
port:
|
|
help: Port or range of ports to open
|
|
extra:
|
|
pattern: *pattern_port_or_range
|
|
-4:
|
|
full: --ipv4-only
|
|
help: Only add a rule for IPv4 connections
|
|
action: store_true
|
|
-6:
|
|
full: --ipv6-only
|
|
help: Only add a rule for IPv6 connections
|
|
action: store_true
|
|
--no-upnp:
|
|
help: Do not add forwarding of this port with UPnP
|
|
action: store_true
|
|
--no-reload:
|
|
help: Do not reload firewall rules
|
|
action: store_true
|
|
|
|
### firewall_disallow()
|
|
disallow:
|
|
action_help: Disallow connections on a port
|
|
api: PUT /firewall/<protocol>/disallow/<port>
|
|
arguments:
|
|
protocol:
|
|
help: "Protocol type to allow (TCP/UDP/Both)"
|
|
choices:
|
|
- TCP
|
|
- UDP
|
|
- Both
|
|
default: TCP
|
|
port:
|
|
help: Port or range of ports to close
|
|
extra:
|
|
pattern: *pattern_port_or_range
|
|
-4:
|
|
full: --ipv4-only
|
|
help: Only remove the rule for IPv4 connections
|
|
action: store_true
|
|
-6:
|
|
full: --ipv6-only
|
|
help: Only remove the rule for IPv6 connections
|
|
action: store_true
|
|
--upnp-only:
|
|
help: Only remove forwarding of this port with UPnP
|
|
action: store_true
|
|
--no-reload:
|
|
help: Do not reload firewall rules
|
|
action: store_true
|
|
|
|
### firewall_upnp()
|
|
upnp:
|
|
action_help: Manage port forwarding using UPnP
|
|
api: PUT /firewall/upnp/<action>
|
|
arguments:
|
|
action:
|
|
choices:
|
|
- enable
|
|
- disable
|
|
- status
|
|
nargs: "?"
|
|
default: status
|
|
--no-refresh:
|
|
help: Do not refresh port forwarding
|
|
action: store_true
|
|
|
|
|
|
### firewall_reload()
|
|
reload:
|
|
action_help: Reload all firewall rules
|
|
arguments:
|
|
--skip-upnp:
|
|
help: Do not refresh port forwarding using UPnP
|
|
action: store_true
|
|
|
|
### firewall_stop()
|
|
stop:
|
|
action_help: Remove all the firewall rules
|
|
|
|
#############################
|
|
# DynDNS #
|
|
#############################
|
|
dyndns:
|
|
category_help: Subscribe and Update DynDNS Hosts ( deprecated, use 'yunohost domain dyndns' instead )
|
|
actions:
|
|
|
|
### dyndns_subscribe()
|
|
subscribe:
|
|
action_help: Subscribe to a DynDNS service
|
|
deprecated: true
|
|
arguments:
|
|
-d:
|
|
full: --domain
|
|
help: Full domain to subscribe with ( deprecated, use 'yunohost domain dyndns subscribe' instead )
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
-p:
|
|
full: --recovery-password
|
|
nargs: "?"
|
|
const: 0
|
|
help: Password used to later recover the domain if needed
|
|
extra:
|
|
pattern: *pattern_password
|
|
|
|
### dyndns_update()
|
|
update:
|
|
action_help: Update IP on DynDNS platform
|
|
arguments:
|
|
-d:
|
|
full: --domain
|
|
help: Full domain to update
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
-f:
|
|
full: --force
|
|
help: Force the update (for debugging only)
|
|
action: store_true
|
|
-D:
|
|
full: --dry-run
|
|
help: Only display the generated zone
|
|
action: store_true
|
|
|
|
#############################
|
|
# Tools #
|
|
#############################
|
|
tools:
|
|
category_help: Specific tools
|
|
actions:
|
|
|
|
### tools_rootpw()
|
|
rootpw:
|
|
action_help: Change root password
|
|
api: PUT /rootpw
|
|
arguments:
|
|
-n:
|
|
full: --new-password
|
|
extra:
|
|
password: ask_new_admin_password
|
|
pattern: *pattern_password
|
|
required: True
|
|
comment: good_practices_about_admin_password
|
|
|
|
### tools_maindomain()
|
|
maindomain:
|
|
action_help: Check the current main domain, or change it
|
|
arguments:
|
|
-n:
|
|
full: --new-main-domain
|
|
help: Change the current main domain
|
|
extra:
|
|
pattern: *pattern_domain
|
|
autocomplete: *domains_list
|
|
|
|
### tools_postinstall()
|
|
postinstall:
|
|
action_help: YunoHost post-install
|
|
api: POST /postinstall
|
|
authentication:
|
|
# We need to be able to run the postinstall without being authenticated, otherwise we can't run the postinstall
|
|
api: null
|
|
arguments:
|
|
-d:
|
|
full: --domain
|
|
help: YunoHost main domain
|
|
extra:
|
|
ask: ask_main_domain
|
|
pattern: *pattern_domain
|
|
required: True
|
|
autocomplete: *domains_list
|
|
-u:
|
|
full: --username
|
|
help: Username for the first (admin) user. For example 'camille'
|
|
extra:
|
|
ask: ask_admin_username
|
|
pattern: *pattern_username
|
|
required: True
|
|
autocomplete: *users_list
|
|
-F:
|
|
full: --fullname
|
|
help: The full name for the first (admin) user. For example 'Camille Dupont'
|
|
extra:
|
|
ask: ask_admin_fullname
|
|
required: True
|
|
pattern: *pattern_fullname
|
|
-p:
|
|
full: --password
|
|
help: YunoHost admin password
|
|
extra:
|
|
password: ask_new_admin_password
|
|
pattern: *pattern_password
|
|
required: True
|
|
comment: good_practices_about_admin_password
|
|
--ignore-dyndns:
|
|
help: If adding a DynDNS domain, only add the domain, without subscribing to the DynDNS service
|
|
action: store_true
|
|
--dyndns-recovery-password:
|
|
metavar: PASSWORD
|
|
nargs: "?"
|
|
const: 0
|
|
help: If adding a DynDNS domain, subscribe to the DynDNS service with a password, used to later recover the domain if needed
|
|
extra:
|
|
pattern: *pattern_password
|
|
--force-diskspace:
|
|
help: Use this if you really want to install YunoHost on a setup with less than 10 GB on the root filesystem
|
|
action: store_true
|
|
--i-have-read-terms-of-services:
|
|
help: Automatically reply to the terms of services prompt, for example for non-interactive installations
|
|
action: store_true
|
|
|
|
|
|
update_norefresh:
|
|
# This exists mainly for the API, such that there's an explicit read-only (GET) route
|
|
# vs the old/regular/legacy(?)/ambiguous PUT /update route ...
|
|
hide_in_help: True
|
|
action_help: List available system/apps updates (without refreshing caches)
|
|
api: GET /update
|
|
|
|
### tools_update()
|
|
update:
|
|
action_help: YunoHost update
|
|
api: PUT /update/<target>
|
|
arguments:
|
|
target:
|
|
help: What to update, "apps" (application catalog) or "system" (fetch available package upgrades, equivalent to apt update), "all" for both
|
|
choices:
|
|
- apps
|
|
- system
|
|
- all
|
|
nargs: "?"
|
|
metavar: TARGET
|
|
default: all
|
|
--no-refresh:
|
|
help: Does not run apt update or fetch the apps catalog, only list upgradable packages and apps
|
|
action: store_true
|
|
|
|
### tools_upgrade()
|
|
upgrade:
|
|
action_help: YunoHost upgrade
|
|
api: PUT /upgrade/<target>
|
|
arguments:
|
|
target:
|
|
help: What to upgrade, either "apps" (all apps) or "system" (all system packages)
|
|
choices:
|
|
- apps
|
|
- system
|
|
nargs: "?"
|
|
|
|
### tools_shell()
|
|
shell:
|
|
action_help: Launch a development shell
|
|
arguments:
|
|
-c:
|
|
help: python command to execute
|
|
full: --command
|
|
|
|
### tools_basic_space_cleanup()
|
|
basic-space-cleanup:
|
|
action_help: Basic space cleanup (apt, journalctl, system and YunoHost logs, ...)
|
|
|
|
### tools_shutdown()
|
|
shutdown:
|
|
action_help: Shutdown the server
|
|
api: PUT /shutdown
|
|
arguments:
|
|
-f:
|
|
help: skip the shutdown confirmation
|
|
full: --force
|
|
action: store_true
|
|
|
|
### tools_reboot()
|
|
reboot:
|
|
action_help: Reboot the server
|
|
api: PUT /reboot
|
|
arguments:
|
|
-f:
|
|
help: skip the reboot confirmation
|
|
full: --force
|
|
action: store_true
|
|
|
|
### tools_regen_conf()
|
|
regen-conf:
|
|
action_help: Regenerate the configuration file(s)
|
|
api:
|
|
- PUT /regenconf
|
|
- PUT /regenconf/<names>
|
|
arguments:
|
|
names:
|
|
help: Categories to regenerate configuration of (all by default)
|
|
nargs: "*"
|
|
metavar: NAME
|
|
-d:
|
|
full: --with-diff
|
|
help: Show differences in case of configuration changes
|
|
action: store_true
|
|
-f:
|
|
full: --force
|
|
help: Override all manual modifications in configuration files
|
|
action: store_true
|
|
-n:
|
|
full: --dry-run
|
|
help: Show what would have been regenerated
|
|
action: store_true
|
|
-p:
|
|
full: --list-pending
|
|
help: List pending configuration files and exit
|
|
action: store_true
|
|
|
|
### tools_versions()
|
|
versions:
|
|
action_help: Display YunoHost's packages versions
|
|
api: GET /versions
|
|
|
|
subcategories:
|
|
|
|
migrations:
|
|
subcategory_help: Manage migrations
|
|
actions:
|
|
|
|
### tools_migrations_list()
|
|
list:
|
|
action_help: List migrations
|
|
api: GET /migrations
|
|
arguments:
|
|
--pending:
|
|
help: list only pending migrations
|
|
action: store_true
|
|
--done:
|
|
help: list only migrations already performed
|
|
action: store_true
|
|
|
|
### tools_migrations_run()
|
|
run:
|
|
action_help: Run migrations
|
|
api:
|
|
- PUT /migrations
|
|
- PUT /migrations/<targets>
|
|
deprecated_alias:
|
|
- migrate
|
|
arguments:
|
|
targets:
|
|
help: Migrations to run (all pendings by default)
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: &migrations_list
|
|
ynh_selector: tools migrations list
|
|
jq_selector: '.migrations[].id'
|
|
use_cache: false
|
|
--skip:
|
|
help: Skip specified migrations (to be used only if you know what you are doing)
|
|
action: store_true
|
|
--force-rerun:
|
|
help: Re-run already-ran specified migration (to be used only if you know what you are doing)
|
|
action: store_true
|
|
--auto:
|
|
help: Automatic mode, won't run manual migrations (to be used only if you know what you are doing)
|
|
action: store_true
|
|
--accept-disclaimer:
|
|
help: Accept disclaimers of migrations (please read them before using this option)
|
|
action: store_true
|
|
|
|
### tools_migrations_state()
|
|
state:
|
|
action_help: Show current migrations state
|
|
|
|
#############################
|
|
# Hook #
|
|
#############################
|
|
hook:
|
|
category_help: Manage hooks
|
|
actions:
|
|
|
|
### hook_add()
|
|
add:
|
|
action_help: Store hook script to filesystem
|
|
arguments:
|
|
app:
|
|
help: App to link with
|
|
extra:
|
|
autocomplete: *apps_list
|
|
file:
|
|
help: Script to add
|
|
extra:
|
|
autocomplete:
|
|
zsh_completion: _files
|
|
|
|
### hook_remove()
|
|
remove:
|
|
action_help: Remove hook scripts from filesystem
|
|
arguments:
|
|
app:
|
|
help: Scripts related to app will be removed
|
|
extra:
|
|
autocomplete: *apps_list
|
|
|
|
### hook_info()
|
|
info:
|
|
hide_in_help: false
|
|
action_help: Get information about a given hook
|
|
arguments:
|
|
action:
|
|
help: Action name
|
|
choices: &hook_action_choices
|
|
- post_user_create
|
|
- post_user_delete
|
|
- post_user_update
|
|
- post_app_addaccess
|
|
- post_app_removeaccess
|
|
- post_domain_add
|
|
- post_domain_remove
|
|
- post_cert_update
|
|
- custom_dns_rules
|
|
- post_app_change_url
|
|
- post_app_upgrade
|
|
- post_app_install
|
|
- post_app_remove
|
|
- backup
|
|
- restore
|
|
- backup_method
|
|
- post_iptable_rules
|
|
- conf_regen
|
|
name:
|
|
help: Hook name
|
|
extra:
|
|
autocomplete: &hooks_list_case
|
|
ynh_selector: hook list
|
|
jq_selector: '.hooks[]'
|
|
depends: previous
|
|
use_cache: true
|
|
|
|
### hook_list()
|
|
list:
|
|
action_help: List available hooks for an action
|
|
api: GET /hooks/<action>
|
|
arguments:
|
|
action:
|
|
help: Action name
|
|
choices: *hook_action_choices
|
|
-l:
|
|
full: --list-by
|
|
help: Property to list hook by
|
|
choices:
|
|
- name
|
|
- priority
|
|
- folder
|
|
default: name
|
|
-i:
|
|
full: --show-info
|
|
help: Show hook information
|
|
action: store_true
|
|
|
|
### hook_callback()
|
|
callback:
|
|
hide_in_help: True
|
|
action_help: Execute all scripts binded to an action
|
|
arguments:
|
|
action:
|
|
help: Action name
|
|
choices: *hook_action_choices
|
|
-n:
|
|
full: --hooks
|
|
help: List of hooks names to execute
|
|
nargs: "*"
|
|
-a:
|
|
full: --args
|
|
help: Ordered list of arguments to pass to the scripts
|
|
nargs: "*"
|
|
-d:
|
|
full: --chdir
|
|
help: The directory from where the scripts will be executed
|
|
|
|
### hook_exec()
|
|
exec:
|
|
hide_in_help: True
|
|
action_help: Execute hook from a file with arguments
|
|
arguments:
|
|
path:
|
|
help: Path of the script to execute
|
|
extra:
|
|
autocomplete:
|
|
zsh_completion: _files
|
|
|
|
-a:
|
|
full: --args
|
|
help: Ordered list of arguments to pass to the script
|
|
nargs: "*"
|
|
--raise-on-error:
|
|
help: Raise if the script returns a non-zero exit code
|
|
action: store_true
|
|
-d:
|
|
full: --chdir
|
|
help: The directory from where the script will be executed
|
|
|
|
#############################
|
|
# Log #
|
|
#############################
|
|
log:
|
|
category_help: Manage debug logs
|
|
actions:
|
|
|
|
### log_list()
|
|
list:
|
|
action_help: List logs
|
|
api: GET /logs
|
|
arguments:
|
|
-l:
|
|
full: --limit
|
|
help: Maximum number of operations to list (default to 50)
|
|
type: int
|
|
default: 50
|
|
-d:
|
|
full: --with-details
|
|
help: Show additional infos (e.g. operation success) but may significantly increase command time. Consider using --limit in combination with this.
|
|
action: store_true
|
|
-s:
|
|
full: --with-suboperations
|
|
help: Include metadata about operations that are not the main operation but are sub-operations triggered by another ongoing operation... (e.g. initializing groups/permissions when installing an app)
|
|
action: store_true
|
|
|
|
### log_show()
|
|
show:
|
|
action_help: Display a log content
|
|
api: GET /logs/<path>
|
|
deprecated_alias:
|
|
- display
|
|
arguments:
|
|
path:
|
|
help: Log file which to display the content
|
|
extra:
|
|
autocomplete: &logs_list
|
|
ynh_selector: log list
|
|
jq_selector: '.operation[].name'
|
|
use_cache: false
|
|
-n:
|
|
full: --number
|
|
help: Number of lines to display
|
|
default: 50
|
|
type: int
|
|
--share:
|
|
help: (Deprecated, see yunohost log share) Share the full log using yunopaste
|
|
action: store_true
|
|
-i:
|
|
full: --filter-irrelevant
|
|
help: Do not show some lines deemed not relevant (like set +x or helper argument parsing)
|
|
action: store_true
|
|
-s:
|
|
full: --with-suboperations
|
|
help: Include metadata about sub-operations of this operation... (e.g. initializing groups/permissions when installing an app)
|
|
action: store_true
|
|
|
|
### log_share()
|
|
share:
|
|
action_help: Share the full log on yunopaste (alias to show --share)
|
|
api: GET /logs/<path>/share
|
|
arguments:
|
|
path:
|
|
help: Log file to share
|
|
extra:
|
|
autocomplete: *logs_list
|
|
|
|
#############################
|
|
# Diagnosis #
|
|
#############################
|
|
diagnosis:
|
|
category_help: Look for possible issues on the server
|
|
actions:
|
|
|
|
list:
|
|
action_help: List diagnosis categories
|
|
api: GET /diagnosis/categories
|
|
|
|
show:
|
|
action_help: Show most recents diagnosis results
|
|
api: GET /diagnosis
|
|
arguments:
|
|
categories:
|
|
help: Diagnosis categories to display (all by default)
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: &diagnosis_list
|
|
ynh_selector: diagnosis list
|
|
jq_selector: '.categories[]'
|
|
use_cache: false
|
|
--full:
|
|
help: Display additional information
|
|
action: store_true
|
|
--issues:
|
|
help: Only display issues
|
|
action: store_true
|
|
--share:
|
|
help: Share the logs using yunopaste
|
|
action: store_true
|
|
--human-readable:
|
|
help: Show a human-readable output
|
|
action: store_true
|
|
|
|
get:
|
|
action_help: Low-level command to fetch raw data and status about a specific diagnosis test
|
|
api: GET /diagnosis/<category>
|
|
arguments:
|
|
category:
|
|
help: Diagnosis category to fetch results from
|
|
extra:
|
|
autocomplete: *diagnosis_list
|
|
item:
|
|
help: "List of criteria describing the test. Must correspond exactly to the 'meta' infos in 'yunohost diagnosis show'"
|
|
metavar: CRITERIA
|
|
nargs: "*"
|
|
|
|
run:
|
|
action_help: Run diagnosis
|
|
api: PUT /diagnosis/run
|
|
arguments:
|
|
categories:
|
|
help: Diagnosis categories to run (all by default)
|
|
nargs: "*"
|
|
extra:
|
|
autocomplete: *diagnosis_list
|
|
--force:
|
|
help: Ignore the cached report even if it is still 'fresh'
|
|
action: store_true
|
|
--except-if-never-ran-yet:
|
|
help: Don't run anything if diagnosis never ran yet ... (this is meant to be used by the webadmin)
|
|
action: store_true
|
|
--email:
|
|
help: Send an email to root with issues found (this is meant to be used by cron job)
|
|
action: store_true
|
|
|
|
ignore:
|
|
action_help: Configure some diagnosis results to be ignored and therefore not considered as actual issues
|
|
api: PUT /diagnosis/ignore
|
|
arguments:
|
|
--filter:
|
|
help: "Add a filter. The first element should be a diagnosis category, and other criterias can be provided using the infos from the 'meta' sections in 'yunohost diagnosis show'. For example: 'dnsrecords domain=yolo.test category=mail'"
|
|
nargs: "*"
|
|
metavar: CRITERIA
|
|
--list:
|
|
help: List active ignore filters
|
|
action: store_true
|
|
|
|
unignore:
|
|
action_help: Configure some diagnosis results to be unignored and therefore considered as actual issues
|
|
api: PUT /diagnosis/unignore
|
|
arguments:
|
|
--filter:
|
|
help: Remove a filter (it should be an existing filter as listed with "ignore --list")
|
|
nargs: "*"
|
|
metavar: CRITERIA
|
|
|
|
|
|
#############################
|
|
# Storage #
|
|
#############################
|
|
storage:
|
|
category_help: Manage hard-drives, filesystem, pools
|
|
subcategories:
|
|
disk:
|
|
subcategory_help: Manage et get infos about hard-drives
|
|
actions:
|
|
# storage_disks_list
|
|
list:
|
|
action_help: List hard-drives currently attached to this system optionnaly with infos
|
|
api: GET /storage/disk/list
|
|
arguments:
|
|
-H:
|
|
full: --human-readable
|
|
help: Print informations in a human-readable format
|
|
action: store_true
|
|
--human-readable-size:
|
|
help: Print sizes in a human-readable format
|
|
action: store_true
|
|
-i:
|
|
full: --with-info
|
|
help: Get all informations for each archive
|
|
action: store_true
|
|
# storage_disks_info
|
|
info:
|
|
action_help: Get hard-drive information
|
|
api: GET /storage/disk/info/<name>
|
|
arguments:
|
|
-H:
|
|
full: --human-readable
|
|
help: Print informations in a human-readable format
|
|
action: store_true
|
|
--human-readable-size:
|
|
help: Print sizes in a human-readable format
|
|
action: store_true
|