# Uncloud Cloud management platform, the ungleich way. [![pipeline status](https://code.ungleich.ch/uncloud/uncloud/badges/master/pipeline.svg)](https://code.ungleich.ch/uncloud/uncloud/commits/master) [![coverage report](https://code.ungleich.ch/uncloud/uncloud/badges/master/coverage.svg)](https://code.ungleich.ch/uncloud/uncloud/commits/master) ## Useful commands * `./manage.py import-vat-rates path/to/csv` * `./manage.py createsuperuser` ## Development setup Install system dependencies: * On Fedora, you will need the following packages: `python3-virtualenv python3-devel openldap-devel gcc chromium` * sudo apt-get install libpq-dev python-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libffi-dev * On Archlinux, [libldap24](https://aur.archlinux.org/packages/libldap24) is needed NOTE: you will need to configure a LDAP server and credentials for authentication. See `uncloud/settings.py`. ``` # Initialize virtualenv. » virtualenv .venv Using base prefix '/usr' New python executable in /home/fnux/Workspace/ungleich/uncloud/uncloud/.venv/bin/python3 Also creating executable in /home/fnux/Workspace/ungleich/uncloud/uncloud/.venv/bin/python Installing setuptools, pip, wheel... done. # Enter virtualenv. » source .venv/bin/activate # Install dependencies. » pip install -r requirements.txt [...] # Run migrations. » ./manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, opennebula, sessions, uncloud_auth, uncloud_net, uncloud_pay, uncloud_service, uncloud_vm Running migrations: [...] # Run webserver. » ./manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). May 07, 2020 - 10:17:08 Django version 3.0.6, using settings 'uncloud.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. ``` ### Run Background Job Queue We use Django Q to handle the asynchronous code and Background Cron jobs To start the workers make sure first that Redis or the Django Q broker is working and you can edit it's settings in the settings file. ``` ./manage.py qcluster ``` ### Note on PGSQL If you want to use Postgres: * Install on configure PGSQL on your base system. * OR use a container! `podman run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust -it postgres:latest`