The backend app of Project Amber, a task list app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Timur Demin b671c0ea59
Merge branch 'develop'
3 months ago
bin Add an example docker-compose config 5 months ago
doc Add an example docker-compose config 5 months ago
project_amber Bypass auth middleware for CORS checks 3 months ago
.dockerignore Make the app run with Docker 5 months ago
.drone.yml Update CI config 3 months ago
.gitignore Remove SQLite databases from Git 6 months ago
.pylintrc Make pylint aware that db.session is autogenerated 6 months ago
Dockerfile Add an example docker-compose config 5 months ago
LICENSE.txt Initial commit 6 months ago
README.md Update README 3 months ago
docker-compose.yml Add an example docker-compose config 5 months ago
requirements.txt Add CORS support 3 months ago
setup.cfg Initial commit 6 months ago
setup.py Add CORS support 3 months ago

README.md

Amber Backend

This is the backend app of Project Amber, a task list app.

This is a basic Flask/SQLAlchemy app that takes care of syncing tasks between devices.

Configuration

The config file is a JSON file that is loaded from either ./config.json or /etc/amber.json, whichever is found first.

Example config:

{
    "database": "sqlite:///file.db", // SQLAlchemy database URI
    // see https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls
    "allow_signup": false, // whether to allow /api/signup or not
    "loglevel": 0, // 0: errors, 1: warnings, 2: info
    "domain": "https://your.domain.tld" // full domain with HTTPS
    // needed for CORS
}

If there are environment variables AMBER_DATABASE / AMBER_ALLOW_SIGNUP / AMBER_LOGLEVEL, AMBER_DOMAIN set, the program will respect them and use over the values provided with the config file.

Dependencies

This app directly depends on flask, flask-sqlalchemy, flask-cors, and bcrypt.

Running in Docker

The Dockerfile included with the project assumes that:

  1. You’re going to use either PostgreSQL or SQLite.
  2. You’re going to run it behind a reverse proxy such as nginx (and running the app without a reverse proxy won’t work because of the current uwsgi configuration).

If you have to/prefer to use MariaDB, etc, you’ll have to add the necessary Python packages to the Docker image by hand.

Licenses

See LICENSE.txt.