Metadata-Version: 1.2
Name: sysdweb
Version: 1.1.2
Summary: Control systemd services through Web or REST API
Home-page: https://github.com/ogarcia/sysdweb
Author: Óscar García Amor
Author-email: ogarcia@connectical.com
License: GPLv3
Project-URL: Bug Reports, https://github.com/ogarcia/sysdweb/issues
Project-URL: Source, https://github.com/ogarcia/sysdweb
Description-Content-Type: UNKNOWN
Description: # sysdweb
        Control systemd services through Web or REST API
        
        ## Installation
        
        ### From source
        
        ```sh
        git clone https://github.com/ogarcia/sysdweb.git
        virtualenv3 ./sysdweb-venv
        source ./sysdweb-venv/bin/activate
        cd sysdweb
        pip install -r requirements.txt
        python setup.py install
        ```
        
        ### From pypi
        
        ```sh
        virtualenv3 ./sysdweb-venv
        source ./sysdweb-venv/bin/activate
        pip install sysdweb
        ```
        
        ### For Arch Linux users
        
        Arch Linux users can install sysdweb from [AUR][1].
        
        ## Run
        
        First take a look to `sysdweb.conf` file to configure sysdweb. Is self
        explanatory.
        
        You can place `sysdweb.conf` in `/etc` for system, in user home
        `~/.config/sysdweb/sysdweb.conf` or in same directory where you run sysdweb.
        
        Once you have configured sysdweb, simply run.
        
        ```
        sysdweb
        ```
        
        By default sysdweb listen in 10080 port to 127.0.0.1, you can change listen
        port and address with `-p` and `-l` or via environment variables.
        
        ```sh
        sysdweb -p 9080 -l 0.0.0.0
        ```
        
        Current config environment variables are the following.
        
        | Variable | Description |
        | --- | --- |
        | `SYSDWEB_CONFIG` | Config file location |
        | `SYSDWEB_HOST` | Listen address |
        | `SYSDWEB_PORT` | Listen port |
        | `SYSDWEB_LOGLEVEL` | Log level, effective values are `WARNING`, `INFO` and `DEBUG` |
        
        ## API
        
        You can control configured services via REST API, for example, with curl.
        
        The API endpoint is `/api/v1/<service>/<action>`, always `GET` and response
        a json with following format.
        
        ```json
        {
          "<action>": "<result>"
        }
        ```
        
        The `<service>` tag is defined in config file and match with section label.
        For example, in following config, the service would be `ngx`.
        
        ```ini
        [ngx]
        title = Nginx
        unit = nginx.service
        ```
        
        The posible `<actions>` are.
        
        * start
        * stop
        * restart
        * reload
        * reloadorrestart
        * status
        * journal
        
        All actions (except `status` and `journal`) return as result `OK` if can
        communicate with DBUS or `Fail` if any error occurs.
        
        For `status` action, the posible responses are.
        
        * active (started unit)
        * reloading
        * inactive (stopped unit)
        * failed (stopped unit)
        * activating
        * deactivating
        * not-found (for inexistent unit)
        
        By default `/api/v1/<service>/journal` returns 100 tail lines of journal
        file of `<service>` unit. You can specify the number of lines by this way.
        
        ```
        /api/v1/<service>/journal/200
        ```
        
        In the example defined above all valid enpoins are.
        
        ```
        http://127.0.0.1:10080/api/v1/ngx/start
        http://127.0.0.1:10080/api/v1/ngx/stop
        http://127.0.0.1:10080/api/v1/ngx/restart
        http://127.0.0.1:10080/api/v1/ngx/reload
        http://127.0.0.1:10080/api/v1/ngx/reloadorrestart
        http://127.0.0.1:10080/api/v1/ngx/status
        http://127.0.0.1:10080/api/v1/ngx/journal
        http://127.0.0.1:10080/api/v1/ngx/journal/<number>
        ```
        
        [1]: https://aur.archlinux.org/packages/sysdweb/
        
Keywords: systemd web api easy
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Bottle
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: System
Classifier: Topic :: Utilities
