Optimization of District Heating Networks
Project description
Optimization of District Heating Networks
This package provides the solver server.
Installation
Install redis
It should be available from the package manager in most Linux distributions.
aptitude install redis
Install ipopt
Install dependencies:
aptitude install make g++ gfortran pkgconf liblapack-dev
Use coinbrew to fetch and compile Ipopt and dependencies:
# Run as unprivileged user git clone --depth=1 https://github.com/coin-or/coinbrew cd coinbrew ./coinbrew Ipopt:releases/3.13.2 fetch ./coinbrew build Ipopt
Copy files to project directory:
cp -r ./coinbrew/dist /path/to/project/ipopt
Install pyodhean
Use pip:
pip install pyodhean-server
pyodhean-server supports Python >= 3.6.
Development configuration
Launch solver server
Add path to ipopt to the PATH (should be added to .bashrc):
export PATH=$PATH:/path/to/project/ipopt/bin/
Check ipopt is correctly installed:
ldd `which ipopt` ipopt -v
Launch worker:
celery -A pyodhean_server worker
Configure and launch web API server
# Set FLASK_ENV variable export FLASK_ENV=development # Alternatively, use a .env file echo "FLASK_ENV=development" > .env # Run application flask run
Production configuration
Configure and launch web API server
The following lines explain hwo to run pyodhean server with apache. They do not cover creating and using an SSL certificate.
Copy apache2 directory from docs/deployment/etc into /etc.
Create a pyodhean directory to hold the application files.
Create a Pyhton 3 virtual environment in the pyodhean directory:
virtualenv -p /usr/bin/python3 venv-pyodhean
Pull code from pyodhean and pyodhean-server repositories and install them in the virtual environment:
source venv-pyodhean/bin/activate pip install ./pyodhean pip install ./pyodhean-server
Copy files from docs/deployment/pyodhean into the pyodhean directory.
Customize them if needed. At least the path to the virtual environment must be specified.
Make sure settings.conf can be read by apache user:
chown root:www-data application/settings.conf chmod 640 application/settings.conf
The pyodhean directory should look like this::
pyodhean/ application/ application.wsgi settings.conf venv-pyodhean pyodhean pyodhean-server
Note: The pyodhean and pyodhean-server repositories can be stored anywhere. They do not have to be in the pyodhean directory.
Edit /etc/apache2/sites-available/pyodhean.conf.
Reload apache2.
The API should be available as https://domain.tld/api/v0/.
Create directories to store log files:
mkdir /var/log/pyodhean chmod pyodhean:pyodhean /var/log/pyodhean
Configure and launch solver service
Create pyodhean user:
adduser --system --no-create-home --group pyodhean
Create log directory:
mkdir -m 755 /var/log/pyodhean-celery chown pyodhean:pyodhean /var/log/pyodhean-celery
Copy systemd directory from docs/deployment/etc into /etc.
Edit pyodhean-celery configuration file to specify the paths.
/etc/systemd/system/pyodhean-celery.service.d/pyodhean-celery.conf
Start the service and enable it for automatic start on system startup:
systemctrl enable pyodhean-celery systemctrl start pyodhean-celery
Configure log files rotation
Copy logrotate.d directory from docs/deployment/etc into /etc.
Configure authentication
Create a users DB file the apache user can read:
touch /path/to/project/users.db chown root:www-data /path/to/project/users.db chmod 640 /path/to/project/users.db
Add users to the DB file:
source venv-pyodhean/bin/activate flask add-user /path/to/project/users.db user password
Edit application configuration to enable authorization and pass users BD file:
AUTH_ENABLED=True AUTH_USERS=/path/to/project/users.db
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyodhean-server-1.0.0b1.tar.gz
.
File metadata
- Download URL: pyodhean-server-1.0.0b1.tar.gz
- Upload date:
- Size: 17.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f56a6a8c89131643c77a42a62d2b082e0cc4964ce1dfd94ff40ccc7d79ad8237 |
|
MD5 | f45344618789bbc5aaeabd394b3a56ff |
|
BLAKE2b-256 | 32ce0b8c115597486737915ee67992de3a59c753de7a00927f20c12e0dd1f94b |
File details
Details for the file pyodhean_server-1.0.0b1-py3-none-any.whl
.
File metadata
- Download URL: pyodhean_server-1.0.0b1-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83419acafaf847ff8c4c23327faec30206768e1b642aab3d43d97564fea233af |
|
MD5 | 7b1652390840e2749e688d956ebb38a1 |
|
BLAKE2b-256 | 0a5ba7204a1a1be89ea13b1b56dcd4ec3fdb28827fc61dffe1b32f8aef4896cd |