yunohost/data/actionsmap/yunohost.yml
Laurent Peuch c992085009
Merge pull request #404 from YunoHost/authorized_keys
[enh] add commands to manage authorized-keys of users
2018-02-15 05:51:57 +01:00

1695 lines
56 KiB
YAML

##########################################################################
# 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:
configuration:
authenticate:
- api
authenticator:
default:
vendor: ldap
help: admin_password
parameters:
uri: ldap://localhost:389
base_dn: dc=yunohost,dc=org
user_rdn: cn=admin
ldap-anonymous:
vendor: ldap
parameters:
uri: ldap://localhost:389
base_dn: dc=yunohost,dc=org
argument_auth: true
arguments:
-v:
full: --version
help: Display YunoHost packages versions
action: callback
callback:
method: yunohost.utils.packages.ynh_packages_version
return: true
#############################
# User #
#############################
user:
category_help: Manage users
actions:
### user_list()
list:
action_help: List users
api: GET /users
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
--fields:
help: fields to fetch
nargs: "+"
### user_create()
create:
action_help: Create user
api: POST /users
configuration:
authenticate: all
arguments:
username:
help: The unique username to create
extra:
pattern: &pattern_username
- !!str ^[a-z0-9_]+$
- "pattern_username"
-f:
full: --firstname
extra:
ask: ask_firstname
required: True
pattern: &pattern_firstname
- !!str ^([^\W\d_]{2,30}[ ,.'-]{0,3})+$
- "pattern_firstname"
-l:
full: --lastname
extra:
ask: ask_lastname
required: True
pattern: &pattern_lastname
- !!str ^([^\W\d_]{2,30}[ ,.']{0,3})+$
- "pattern_lastname"
-m:
full: --mail
help: Main unique email address
extra:
ask: ask_email
required: True
pattern: &pattern_email
- !!str ^[\w.-]+@([^\W_A-Z]+([-]*[^\W_A-Z]+)*\.)+([^\W\d_]{2,})$
- "pattern_email"
-p:
full: --password
help: User password
extra:
password: ask_password
required: True
pattern: &pattern_password
- !!str ^.{3,}$
- "pattern_password"
-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"
### user_delete()
delete:
action_help: Delete user
api: DELETE /users/<username>
configuration:
authenticate: all
arguments:
username:
help: Username to delete
extra:
pattern: *pattern_username
--purge:
action: store_true
### user_update()
update:
action_help: Update user informations
api: PUT /users/<username>
configuration:
authenticate: all
arguments:
username:
help: Username to update
-f:
full: --firstname
extra:
pattern: *pattern_firstname
-l:
full: --lastname
extra:
pattern: *pattern_lastname
-m:
full: --mail
extra:
pattern: *pattern_email
-p:
full: --change-password
help: New password to set
metavar: PASSWORD
extra:
pattern: *pattern_password
--add-mailforward:
help: Mailforward addresses to add
nargs: "*"
metavar: MAIL
extra:
pattern: *pattern_email
--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
### ssh_user_enable_ssh()
allow-ssh:
action_help: Allow the user to uses ssh
api: POST /ssh/user/enable-ssh
configuration:
authenticate: all
arguments:
username:
help: Username of the user
extra:
pattern: *pattern_username
### ssh_user_disable_ssh()
disallow-ssh:
action_help: Disallow the user to uses ssh
api: POST /ssh/user/disable-ssh
configuration:
authenticate: all
arguments:
username:
help: Username of the user
extra:
pattern: *pattern_username
### user_info()
info:
action_help: Get user information
api: GET /users/<username>
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
username:
help: Username or email to get information
#############################
# Domain #
#############################
domain:
category_help: Manage domains
actions:
### domain_list()
list:
action_help: List domains
api: GET /domains
configuration:
authenticate: all
authenticator: ldap-anonymous
### domain_add()
add:
action_help: Create a custom domain
api: POST /domains
configuration:
authenticate: all
arguments:
domain:
help: Domain name to add
extra:
pattern: &pattern_domain
- !!str ^([^\W_A-Z]+([-]*[^\W_A-Z]+)*\.)+([^\W\d_]{2,})$
- "pattern_domain"
-d:
full: --dyndns
help: Subscribe to the DynDNS service
action: store_true
### domain_remove()
remove:
action_help: Delete domains
api: DELETE /domains/<domain>
configuration:
authenticate: all
arguments:
domain:
help: Domain to delete
extra:
pattern: *pattern_domain
### domain_dns_conf()
dns-conf:
action_help: Generate DNS configuration for a domain
api: GET /domains/<domain>/dns
configuration:
authenticate:
- api
arguments:
domain:
help: Target domain
-t:
full: --ttl
help: Time To Live (TTL) in second before DNS servers update. Default is 3600 seconds (i.e. 1 hour).
extra:
pattern:
- !!str ^[0-9]+$
- "pattern_positive_number"
### certificate_status()
cert-status:
action_help: List status of current certificates (all by default).
api: GET /domains/cert-status/<domain_list>
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
domain_list:
help: Domains to check
nargs: "*"
--full:
help: Show more details
action: store_true
### certificate_install()
cert-install:
action_help: Install Let's Encrypt certificates for given domains (all by default).
api: POST /domains/cert-install/<domain_list>
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
domain_list:
help: Domains for which to install the certificates
nargs: "*"
--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
--staging:
help: Use the fake/staging Let's Encrypt certification authority. The new certificate won't actually be enabled - it is only intended to test the main steps of the procedure.
action: store_true
### certificate_renew()
cert-renew:
action_help: Renew the Let's Encrypt certificates for given domains (all by default).
api: POST /domains/cert-renew/<domain_list>
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
domain_list:
help: Domains for which to renew the certificates
nargs: "*"
--force:
help: Ignore the validity threshold (30 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
--staging:
help: Use the fake/staging Let's Encrypt certification authority. The new certificate won't actually be enabled - it is only intended to test the main steps of the procedure.
action: store_true
### domain_url_available()
url-available:
action_help: Check availability of a web path
api: GET /domain/urlavailable
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
domain:
help: The domain for the web path (e.g. your.domain.tld)
extra:
pattern: *pattern_domain
path:
help: The path to check (e.g. /coffee)
### domain_info()
# info:
# action_help: Get domain informations
# api: GET /domains/<domain>
# arguments:
# domain:
# help: ""
# extra:
# pattern:
# - '^([a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)(\.[a-zA-Z0-9]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)*(\.[a-zA-Z]{1}([a-zA-Z0-9\-]*[a-zA-Z0-9])*)$'
# - "Must be a valid domain name (e.g. my-domain.org)"
#############################
# App #
#############################
app:
category_help: Manage apps
actions:
### app_fetchlist()
fetchlist:
action_help: Fetch application lists from app servers, or register a new one.
api: PUT /appslists
arguments:
-n:
full: --name
help: Name of the list to fetch (fetches all registered lists if empty)
extra:
pattern: &pattern_listname
- !!str ^[a-z0-9_]+$
- "pattern_listname"
-u:
full: --url
help: URL of a new application list to register. To be specified with -n.
### app_listlists()
listlists:
action_help: List registered application lists
api: GET /appslists
### app_removelist()
removelist:
action_help: Remove and forget about a given application list
api: DELETE /appslists
arguments:
name:
help: Name of the list to remove
extra:
ask: ask_list_to_remove
pattern: *pattern_listname
### app_list()
list:
action_help: List apps
api: GET /apps
arguments:
-f:
full: --filter
help: Name filter of app_id or app_name
-r:
full: --raw
help: Return the full app_dict
action: store_true
-i:
full: --installed
help: Return only installed apps
action: store_true
-b:
full: --with-backup
help: Return only apps with backup feature (force --installed filter)
action: store_true
### app_info()
info:
action_help: Get information about an installed app
api: GET /apps/<app>
arguments:
app:
help: Specific app ID
-s:
full: --show-status
help: Show app installation status
action: store_true
-r:
full: --raw
help: Return the full app_dict
action: store_true
### app_map()
map:
action_help: List apps by domain
api: GET /appsmap
arguments:
-a:
full: --app
help: Specific app to map
-r:
full: --raw
help: Return complete dict
action: store_true
-u:
full: --user
help: Allowed app map for a user
extra:
pattern: *pattern_username
### app_install()
install:
action_help: Install apps
api: POST /apps
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
app:
help: Name, local path or git URL of the app to install
-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")
-n:
full: --no-remove-on-failure
help: Debug option to avoid removing the app on a failed installation
action: store_true
### app_remove() TODO: Write help
remove:
action_help: Remove app
api: DELETE /apps/<app>
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
app:
help: App(s) to delete
### app_upgrade()
upgrade:
action_help: Upgrade app
api: PUT /upgrade/apps
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
app:
help: App(s) to upgrade (default all)
nargs: "*"
-u:
full: --url
help: Git url to fetch for upgrade
-f:
full: --file
help: Folder or tarball for upgrade
### app_change_url()
change-url:
action_help: Change app's URL
api: PUT /apps/<app>/changeurl
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
app:
help: Target app instance name
-d:
full: --domain
help: New app domain on which the application will be moved
extra:
ask: ask_main_domain
pattern: *pattern_domain
required: True
-p:
full: --path
help: New path at which the application will be moved
extra:
ask: ask_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
key:
help: Key to get/set
-v:
full: --value
help: Value to set
-d:
full: --delete
help: Delete the key
action: store_true
### app_checkport()
checkport:
action_help: Check availability of a local port
api: GET /tools/checkport
deprecated: true
arguments:
port:
help: Port to check
extra:
pattern: &pattern_port
- !!str ^([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])$
- "pattern_port"
### app_checkurl()
checkurl:
action_help: Check availability of a web path
api: GET /tools/checkurl
deprecated: True
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
url:
help: Url to check
-a:
full: --app
help: Write domain & path to app settings for further checks
### app_register_url()
register-url:
action_help: Book/register a web path for a given app
api: PUT /tools/registerurl
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
app:
help: App which will use the web path
domain:
help: The domain on which the app should be registered (e.g. your.domain.tld)
path:
help: The path to be registered (e.g. /coffee)
### app_initdb()
initdb:
action_help: Create database and initialize it with optionnal attached script
api: POST /tools/initdb
deprecated: true
arguments:
user:
help: Name of the DB user
-p:
full: --password
help: Password of the DB (generated unless set)
-d:
full: --db
help: DB name (user unless set)
-s:
full: --sql
help: Initial SQL file
### app_debug()
debug:
action_help: Display all debug informations for an application
api: GET /apps/<app>/debug
arguments:
app:
help: App name
### app_makedefault()
makedefault:
action_help: Redirect domain root to an app
api: PUT /apps/<app>/default
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
app:
help: App name to put on domain root
-d:
full: --domain
help: Specific domain to put app on (the app domain by default)
### app_ssowatconf()
ssowatconf:
action_help: Regenerate SSOwat configuration file
api: PUT /ssowatconf
configuration:
authenticate: all
authenticator: ldap-anonymous
### app_change_label()
change-label:
action_help: Change app label
api: PUT /apps/<app>/label
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
app:
help: App ID
new_label:
help: New app label
### app_addaccess() TODO: Write help
addaccess:
action_help: Grant access right to users (everyone by default)
api: PUT /access
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
apps:
nargs: "+"
-u:
full: --users
nargs: "*"
### app_removeaccess() TODO: Write help
removeaccess:
action_help: Revoke access right to users (everyone by default)
api: DELETE /access
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
apps:
nargs: "+"
-u:
full: --users
nargs: "*"
### app_clearaccess()
clearaccess:
action_help: Reset access rights for the app
api: POST /access
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
apps:
nargs: "+"
#############################
# Backup #
#############################
backup:
category_help: Manage backups
actions:
### backup_create()
create:
action_help: Create a backup local archive
api: POST /backup
arguments:
-n:
full: --name
help: Name of the backup archive
extra:
pattern: &pattern_backup_archive_name
- !!str ^[\w\-\._]{1,30}(?<!\.)$
- "pattern_backup_archive_name"
-d:
full: --description
help: Short description of the backup
-o:
full: --output-directory
help: Output directory for the backup
-r:
full: --no-compress
help: Do not create an archive file
action: store_true
--methods:
help: List of backup methods to apply (copy or tar by default)
nargs: "*"
--system:
help: List of system parts to backup (all by default)
nargs: "*"
--apps:
help: List of application names to backup (all by default)
nargs: "*"
--hooks:
help: (Deprecated) See --system
nargs: "*"
--ignore-system:
help: Do not backup system
action: store_true
--ignore-apps:
help: Do not backup apps
action: store_true
--ignore-hooks:
help: (Deprecated) See --ignore-system
action: store_true
### backup_restore()
restore:
action_help: Restore from a local backup archive
api: POST /backup/restore/<name>
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
name:
help: Name of the local backup archive
--system:
help: List of system parts to restore (all by default)
nargs: "*"
--apps:
help: List of application names to restore (all by default)
nargs: "*"
--hooks:
help: (Deprecated) See --system
nargs: "*"
--ignore-system:
help: Do not restore system parts
action: store_true
--ignore-apps:
help: Do not restore apps
action: store_true
--ignore-hooks:
help: (Deprecated) See --ignore-system
action: store_true
--force:
help: Force restauration on an already installed system
action: store_true
### backup_list()
list:
action_help: List available local backup archives
api: GET /backup/archives
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 /backup/archives/<name>
arguments:
name:
help: Name of the local backup archive
-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_delete()
delete:
action_help: Delete a backup archive
api: DELETE /backup/archives/<name>
arguments:
name:
help: Name of the archive to delete
extra:
pattern: *pattern_backup_archive_name
#############################
# Monitor #
#############################
monitor:
category_help: Monitor the server
actions:
### monitor_disk()
disk:
action_help: Monitor disk space and usage
api: GET /monitor/disk
arguments:
-f:
full: --filesystem
help: Show filesystem disk space
action: append_const
const: filesystem
dest: units
-t:
full: --io
help: Show I/O throughput
action: append_const
const: io
dest: units
-m:
full: --mountpoint
help: Monitor only the device mounted on MOUNTPOINT
action: store
-H:
full: --human-readable
help: Print sizes in human readable format
action: store_true
### monitor_network()
network:
action_help: Monitor network interfaces
api: GET /monitor/network
arguments:
-u:
full: --usage
help: Show interfaces bit rates
action: append_const
const: usage
dest: units
-i:
full: --infos
help: Show network informations
action: append_const
const: infos
dest: units
-c:
full: --check
help: Check network configuration
action: append_const
const: check
dest: units
-H:
full: --human-readable
help: Print sizes in human readable format
action: store_true
### monitor_system()
system:
action_help: Monitor system informations and usage
api: GET /monitor/system
arguments:
-m:
full: --memory
help: Show memory usage
action: append_const
const: memory
dest: units
-c:
full: --cpu
help: Show CPU usage and load
action: append_const
const: cpu
dest: units
-p:
full: --process
help: Show processes summary
action: append_const
const: process
dest: units
-u:
full: --uptime
help: Show the system uptime
action: append_const
const: uptime
dest: units
-i:
full: --infos
help: Show system informations
action: append_const
const: infos
dest: units
-H:
full: --human-readable
help: Print sizes in human readable format
action: store_true
### monitor_updatestats()
update-stats:
action_help: Update monitoring statistics
api: POST /monitor/stats
arguments:
period:
help: Time period to update
choices:
- day
- week
- month
### monitor_showstats()
show-stats:
action_help: Show monitoring statistics
api: GET /monitor/stats
arguments:
period:
help: Time period to show
choices:
- day
- week
- month
### monitor_enable()
enable:
action_help: Enable server monitoring
api: PUT /monitor
arguments:
-s:
full: --with-stats
help: Enable monitoring statistics
action: store_true
### monitor_disable()
disable:
api: DELETE /monitor
action_help: Disable server monitoring
#############################
# Settings #
#############################
settings:
category_help: Manage YunoHost global settings
actions:
### settings_list()
list:
action_help: list all entries of the settings
api: GET /settings
### settings_get()
get:
action_help: get an entry value in the settings
api: GET /settings/<key>
arguments:
key:
help: Settings key
--full:
help: Show more details
action: store_true
### settings_set()
set:
action_help: set an entry value in the settings
api: POST /settings/<key>
arguments:
key:
help: Settings key
-v:
full: --value
help: new value
extra:
required: True
### 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
#############################
# Service #
#############################
service:
category_help: Manage services
actions:
### service_add()
add:
action_help: Add a service
# api: POST /services
arguments:
name:
help: Service name to add
-s:
full: --status
help: Custom status command
-l:
full: --log
help: Absolute path to log file to display
nargs: "+"
-r:
full: --runlevel
help: Runlevel priority of the service
type: int
### service_remove()
remove:
action_help: Remove a service
# api: DELETE /services
arguments:
name:
help: Service name to remove
### service_start()
start:
action_help: Start one or more services
api: PUT /services/<names>
arguments:
names:
help: Service name to start
nargs: "+"
metavar: NAME
### service_stop()
stop:
action_help: Stop one or more services
api: DELETE /services/<names>
arguments:
names:
help: Service name to stop
nargs: "+"
metavar: NAME
### 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
### service_disable()
disable:
action_help: Disable one or more services
api: DELETE /services/<names>/enable
arguments:
names:
help: Service name to disable
nargs: "+"
metavar: NAME
### 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
### service_log()
log:
action_help: Log every log files of a service
api: GET /services/<name>/log
arguments:
name:
help: Service name to log
-n:
full: --number
help: Number of lines to display
default: 50
type: int
### service_regen_conf()
regen-conf:
action_help: Regenerate the configuration file(s) for a service
api: PUT /services/regenconf
deprecated_alias:
- regenconf
arguments:
names:
help: Services name to regenerate configuration of
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
#############################
# 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
-i:
full: --by-ip-version
help: List rules by IP version
action: store_true
-f:
full: --list-forwarded
help: List forwarded ports with UPnP
action: store_true
### firewall_reload()
reload:
action_help: Reload all firewall rules
api: PUT /firewall
arguments:
--skip-upnp:
help: Do not refresh port forwarding using UPnP
action: store_true
### firewall_allow()
allow:
action_help: Allow connections on a port
api: POST /firewall/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
- !!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"
-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: DELETE /firewall/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: GET /firewall/upnp
arguments:
action:
choices:
- enable
- disable
- status
- reload
nargs: "?"
default: status
--no-refresh:
help: Do not refresh port forwarding
action: store_true
### firewall_stop()
stop:
action_help: Stop iptables and ip6tables
api: DELETE /firewall
#############################
# DynDNS #
#############################
dyndns:
category_help: Subscribe and Update DynDNS Hosts
actions:
### dyndns_subscribe()
subscribe:
action_help: Subscribe to a DynDNS service
api: POST /dyndns
arguments:
--subscribe-host:
help: Dynette HTTP API to subscribe to
default: "dyndns.yunohost.org"
-d:
full: --domain
help: Full domain to subscribe with
extra:
pattern: *pattern_domain
-k:
full: --key
help: Public DNS key
### dyndns_update()
update:
action_help: Update IP on DynDNS platform
api: PUT /dyndns
arguments:
--dyn-host:
help: Dynette DNS server to inform
default: "dyndns.yunohost.org"
-d:
full: --domain
help: Full domain to update
extra:
pattern: *pattern_domain
-k:
full: --key
help: Public DNS key
-i:
full: --ipv4
help: IP address to send
-6:
full: --ipv6
help: IPv6 address to send
### dyndns_installcron()
installcron:
action_help: Install IP update cron
api: POST /dyndns/cron
### dyndns_removecron()
removecron:
action_help: Remove IP update cron
api: DELETE /dyndns/cron
#############################
# SSH #
#############################
ssh:
category_help: Manage ssh keys and access
actions: {}
subcategories:
authorized-keys:
subcategory_help: Manage user's authorized ssh keys
actions:
### ssh_authorized_keys_list()
list:
action_help: Show user's authorized ssh keys
api: GET /ssh/authorized-keys
configuration:
authenticate: all
arguments:
username:
help: Username of the user
extra:
pattern: *pattern_username
### ssh_authorized_keys_add()
add:
action_help: Add a new authorized ssh key for this user
api: POST /ssh/authorized-keys
configuration:
authenticate: all
arguments:
username:
help: Username of the user
extra:
pattern: *pattern_username
-u:
full: --public
help: Public key
extra:
required: True
-i:
full: --private
help: Private key
extra:
required: True
-n:
full: --name
help: Key name
extra:
required: True
### ssh_authorized_keys_remove()
remove:
action_help: Remove an authorized ssh key for this user
api: DELETE /ssh/authorized-keys
configuration:
authenticate: all
arguments:
username:
help: Username of the user
extra:
pattern: *pattern_username
-k:
full: --key
help: Key as a string
extra:
required: True
#############################
# Tools #
#############################
tools:
category_help: Specific tools
actions:
### tools_ldapinit()
ldapinit:
action_help: YunoHost LDAP initialization
api: POST /ldap
configuration:
authenticate: all
### tools_adminpw()
adminpw:
action_help: Change admin password
api: PUT /adminpw
configuration:
authenticate: all
arguments:
-n:
full: --new-password
extra:
password: ask_new_admin_password
pattern: *pattern_password
required: True
### tools_maindomain()
maindomain:
action_help: Check the current main domain, or change it
api:
- GET /domains/main
- PUT /domains/main
configuration:
authenticate: all
arguments:
-n:
full: --new-domain
help: Change the current main domain
extra:
pattern: *pattern_domain
### tools_postinstall()
postinstall:
action_help: YunoHost post-install
api: POST /postinstall
configuration:
authenticate: false
arguments:
-d:
full: --domain
help: YunoHost main domain
extra:
ask: ask_main_domain
pattern: *pattern_domain
required: True
-p:
full: --password
help: YunoHost admin password
extra:
password: ask_new_admin_password
pattern: *pattern_password
required: True
--ignore-dyndns:
help: Do not subscribe domain to a DynDNS service
action: store_true
### tools_update()
update:
action_help: YunoHost update
api: PUT /update
arguments:
--ignore-apps:
help: Ignore apps cache update and changelog
action: store_true
--ignore-packages:
help: Ignore APT cache update and changelog
action: store_true
### tools_upgrade()
upgrade:
action_help: YunoHost upgrade
api: PUT /upgrade
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
--ignore-apps:
help: Ignore apps upgrade
action: store_true
--ignore-packages:
help: Ignore APT packages upgrade
action: store_true
### tools_diagnosis()
diagnosis:
action_help: YunoHost diagnosis
api: GET /diagnosis
configuration:
authenticate: all
authenticator: ldap-anonymous
arguments:
-p:
full: --private
help: Show private data (domain, IP)
action: store_true
### tools_port_available()
port-available:
action_help: Check availability of a local port
api: GET /tools/portavailable
arguments:
port:
help: Port to check
extra:
pattern: *pattern_port
### tools_shell()
shell:
configuration:
authenticate: all
action_help: Launch a development shell
arguments:
-c:
help: python command to execute
full: --command
### 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
subcategories:
migrations:
subcategory_help: Manage migrations
actions:
### tools_migrations_list()
list:
action_help: List migrations
api: GET /migrations
### tools_migrations_migrate()
migrate:
action_help: Perform migrations
api: POST /migrations/migrate
arguments:
-t:
help: target migration number (or 0), latest one by default
type: int
full: --target
-s:
help: skip the migration(s), use it only if you know what you are doing
full: --skip
action: store_true
### tools_migrations_state()
state:
action_help: Show current migrations state
api: GET /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
file:
help: Script to add
### hook_remove()
remove:
action_help: Remove hook scripts from filesystem
arguments:
app:
help: Scripts related to app will be removed
### hook_info()
info:
action_help: Get information about a given hook
api: GET /hooks/<action>/<name>
arguments:
action:
help: Action name
name:
help: Hook name
### hook_list()
list:
action_help: List available hooks for an action
api: GET /hooks/<action>
arguments:
action:
help: Action name
-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:
action_help: Execute all scripts binded to an action
api: POST /hooks/<action>
arguments:
action:
help: Action name
-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: "*"
-q:
full: --no-trace
help: Do not print each command that will be executed
action: store_true
-d:
full: --chdir
help: The directory from where the scripts will be executed
### hook_exec()
exec:
action_help: Execute hook from a file with arguments
arguments:
path:
help: Path of the script to execute
-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
-q:
full: --no-trace
help: Do not print each command that will be executed
action: store_true
-d:
full: --chdir
help: The directory from where the script will be executed