Commit 657ee72e authored by 132ikl's avatar 132ikl
Browse files

Add basic Flask/Jinja setup and basic YAML config

parent c2d8d5af
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -102,3 +102,6 @@ venv.bak/

# mypy
.mypy_cache/

# PyCharm
.idea

config.yml

0 → 100644
+9 −0
Original line number Diff line number Diff line
# Username to make admin API requests
admin_username: 'admin'

# Plaintext password to make admin API requests
# Safe to remove if admin_hashed_password is set
#admin_password: 'password'

# Hashed password (bcrypt) to make admin API requests - Preferred over plaintext, use securepass.sh to generate
admin_hashed_password: 'test'

liteshort.py

0 → 100644
+28 −0
Original line number Diff line number Diff line
from flask import Flask
import yaml


def load_config():
    new_config = yaml.load(open("config.yml"))
    if "admin_hashed_password" in new_config.keys():
        new_config["password"] = new_config["admin_hashed_password"]
    elif "admin_password" in new_config.keys():
        new_config["password"] = new_config["admin_password"]
    else:
        raise Exception("admin_password or admin_hashed_password must be set in config.yml")
    return new_config


config = load_config()
print(config["password"])

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

securepass.sh

0 → 100755
+24 −0
Original line number Diff line number Diff line
#!/bin/sh

## bcrypt passwd generator ##
#############################
CMD=$(which htpasswd 2>/dev/null)
OPTS="-nBC 15"

read -p "Username: " USERNAME

check_config() {
    if [ -z $CMD ]; then
        printf "Exiting: htpasswd is missing.\n"
        exit 1
    fi

    if [ -z "$USERNAME" ]; then
            usage
    fi
}

check_config $USERNAME
printf "Generating Bcrypt hash for username: $USERNAME\n\n"
$CMD $OPTS $USERNAME
exit $?