3.9 KiB
Installation
Prerequisites
Python 3.x + virtualenv
CentOS/RHEL 7.x (with EPEL enabled!)
yum install python34-virtualenv.noarch
Debian 11
sudo apt-get update
sudo apt-get install git python3-virtualenv libmariadb-dev libldap2-dev libsasl2-dev
Checkout
git clone https://git.linux-kernel.at/oliver/ivatar.git
cd ivatar
Virtual environment
virtualenv -p python3 .virtualenv
source .virtualenv/bin/activate
pip install pillow
pip install -r requirements.txt
(SQL) Migrations
./manage.py migrate
Collect static files
./manage.py collectstatic -l --no-input
Run local (development) server
./manage.py runserver 0:8080 # or any other free port
Create superuser (optional)
./manage.py createsuperuser # Follow the instructions
Running the testsuite
./manage.py test -v3 # Or any other verbosity level you like
Configuration
Gravatar Proxy and Redirect Settings
By default, ivatar is configured to work well for public instances like libravatar.org. However, for local or private instances, you may want to disable external requests to Gravatar. You can configure the default behavior by adding these settings to your config_local.py:
# Default settings for Gravatar proxy and redirect behavior
# These can be overridden by URL parameters (?gravatarproxy=n&gravatarredirect=n)
# Whether to proxy requests to Gravatar when no local avatar is found (default: True)
DEFAULT_GRAVATARPROXY = False
# Whether to redirect directly to Gravatar when no local avatar is found (default: False)
DEFAULT_GRAVATARREDIRECT = False
# Whether to force default behavior even when a user avatar exists (default: False)
FORCEDEFAULT = False
Use cases:
- Private/Local instances: Set
DEFAULT_GRAVATARPROXY = FalseandDEFAULT_GRAVATARREDIRECT = Falseto prevent external requests - Gravatar-first instances: Set
DEFAULT_GRAVATARREDIRECT = Trueto redirect to Gravatar instead of proxying - Testing/Development: Set
FORCEDEFAULT = Trueto always use default avatars
Note: URL parameters (?gravatarproxy=n, ?gravatarredirect=y, ?forcedefault=y) will always override these configuration defaults.
OpenID Connect authentication with Fedora
To enable OpenID Connect (OIDC) authentication with Fedora, you must have obtained a client_id and client_secret pair from the Fedora Infrastructure.
Then you must set these values in config_local.py:
SOCIAL_AUTH_FEDORA_KEY = "the-client-id"
SOCIAL_AUTH_FEDORA_SECRET = "the-client-secret"
You can override the location of the OIDC provider with the SOCIAL_AUTH_FEDORA_OIDC_ENDPOINT setting. For example, to authenticate with Fedora's staging environment, set this in config_local.py:
SOCIAL_AUTH_FEDORA_OIDC_ENDPOINT = "https://id.stg.fedoraproject.org"
Production deployment Webserver (non-cloudy)
To deploy this Django application with WSGI on Apache, NGINX or any other web server, please refer to the the webserver documentation; There are also plenty of howtos on the net (I'll not LMGTFY...)
Production deloyment (cloudy)
Red Hat OpenShift (Online)
There is already a file called create.sh, which can be reused to create an OpenShift online instance of ivatar. However, you need to have the correct environment variables set, as well as a working oc installation.
Amazon AWS
Pretty sure this work as well; As OpenShift (Online).
I once wrote an Django (1.x) application in 2016, that used AWS. It can be found here: Gewusel from ofalk @ GitHub There is a file called ebcreate.txt as well as a directory called .ebextensions, which you need to check out in order to get an idea of how to deploy the application on AWS.
Database
It should work with SQLite (do not use in production!), MySQL/MariaDB, as well as PostgreSQL.