Carnivora

https://readthedocs.org/projects/carnivora/badge/?version=stable https://readthedocs.org/projects/carnivora/badge/?version=latest

A powerfull backend for web-service management. Written in YamSql.

The documentation can be found online at carnivora.readthedocs.io or as sphinx source in docs/.

Client Software

Canini
Full privileged superadmin CLI. Supports adding additional modules via config. Written in Python 3.
Edentata
An unprivileged webinterface without superadmin capabilities. Targeting end-users and focused on usability. Supports adding additional modules via config. Written in PHP 7.
Genconfig
A generic config producer which can use carnivora as backend. Written in Python 3.
PgListend
Daemon that executes tasks on PostgreSQL push signals. Designed to call genconfig on database updates. Written in Python 3.
LibInternetX
PHP library for connecting to the InterNetX domain reseller XML API. Includes CLI coupling to Carnivora.

Installing Carnivora

Perequisites

The setup is performed via HamSql. It should be callable as hamsql in your shell.

Install PostgreSQL on Debian

apt install postgresql postgresql-contrib postgresql-plpython3

Configuration

You can configure accounts that can connect to the database via /etc/carnivora/_postgresql_user/module.yaml. The accounts generated via this config have the names carnivora_edentata and carnivora_machine_example.

name: _postgresql_user
description: PostgreSQL users and their priviledges

roles:
 -
  name: edentata
  login: true
  description: Account for edentata web frontend
  member_in:
   - userlogin

 -
  name: machine_example
  description: Account for machine example
  login: true
  member_in:
   - backend

Running the Setup

Simplest way to execute the setup on a system with a default PostgreSQL configuration is to run

su postgres -c "hamsql install -s examples/setup.yml -c postgres://postgres@/carnivora"

Supplying the database name (here carnivora) via the -c option is mandatory. The database will be create if it is not present. Additional or deviating connection options can be provided.