Skip to content
This repository has been archived by the owner on Nov 18, 2024. It is now read-only.

personal backend - self-hosted backend to manage multiple OVOS devices

License

Notifications You must be signed in to change notification settings

OpenVoiceOS/ovos-personal-backend

Repository files navigation

OVOS Personal Backend

Personal backend for OpenVoiceOS, written in flask

This allows you to manage multiple devices from a single location

⚠️ there are no user accounts ⚠️

Documentation can be found at https://openvoiceos.github.io/community-docs/personal_backend

NOTES:

  • this backend moved to SQL databases on release 0.2.0, json databases from older version are not compatible
  • at the time of writing, backend manager does not yet work with this backend version
  • backend-client now includes a CRUD api to interact with databases OpenVoiceOS/ovos-backend-client#30

Install

from pip

pip install ovos-local-backend

Companion projects

You can use this backend as a STT server proxy via ovos-stt-plugin-server, eg https://your_backend.org/stt

Configuration

configure backend by editing/creating ~/.config/ovos_backend/ovos_backend.conf

{
  "lang": "en-us",
  "date_format": "DMY",
  "system_unit": "metric",
  "time_format": "full",
  "location": {
    "city": {"...": "..."},
    "coordinate": {"...": "..."},
    "timezone": {"...": "..."}
  },

  "stt_servers": ["https://stt.openvoiceos.org/stt"],

  "server": {
    "admin_key": "leave empty to DISABLE admin api",
    "port": 6712,
    "database": "sqlite:////home/user/.local/share/ovos_backend.db",
    "skip_auth": false,
    "geolocate": true,
    "override_location": false,
    "version": "v1"
  },

  "listener": {
     "record_utterances": false,
     "record_wakewords": false
  },

  "microservices": {
    "wolfram_key": "$KEY",
    "owm_key": "$KEY",
    "email": {
       "recipient": "",
       "smtp": {
            "username": "",
            "password": "",
            "host": "smtp.mailprovider.com",
            "port": 465
       }
    }
  }

}

database can be sqlite or mysql eg. mysql+mysqldb://scott:tiger@192.168.0.134/test?ssl_ca=/path/to/ca.pem&ssl_cert=/path/to/client-cert.pem&ssl_key=/path/to/client-key.pem

Docker

There is also a docker container you can use

docker run -p 8086:6712 -d --restart always --name local_backend ghcr.io/openvoiceos/local-backend:dev