mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2025-06-15 04:26:05 +00:00
Move and fix links for install guides.
This commit is contained in:
100
docs/wiki/install/Running-PowerDNS-Admin-on-Centos-7.md
Normal file
100
docs/wiki/install/Running-PowerDNS-Admin-on-Centos-7.md
Normal file
@ -0,0 +1,100 @@
|
||||
```
|
||||
NOTE: If you are logged in as User and not root, add "sudo", or get root by sudo -i.
|
||||
```
|
||||
<br>
|
||||
|
||||
**Remove old Python 3.4**<br>
|
||||
If you had it installed because of older instructions<br>
|
||||
```
|
||||
yum remove python34*
|
||||
yum autoremove
|
||||
```
|
||||
<br>
|
||||
|
||||
## Install required packages
|
||||
**Install needed repositories:**
|
||||
<br>
|
||||
```
|
||||
yum install epel-release
|
||||
yum install https://repo.ius.io/ius-release-el7.rpm https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
|
||||
```
|
||||
|
||||
**Install Python 3.6 and tools**
|
||||
```
|
||||
yum install python3 python3-devel python3-pip
|
||||
pip3.6 install -U pip
|
||||
pip install -U virtualenv
|
||||
```
|
||||
|
||||
**Install required packages for building python libraries from requirements.txt file**
|
||||
```
|
||||
--> NOTE: I am using MySQL Community server as the database backend.
|
||||
So `mysql-community-devel` is required. For MariaDB,
|
||||
and PostgreSQL the required package will be different.
|
||||
```
|
||||
|
||||
If you use MariaDB ( from [MariaDB repositories](https://mariadb.com/resources/blog/installing-mariadb-10-on-centos-7-rhel-7/) )
|
||||
|
||||
```
|
||||
yum install gcc MariaDB-devel MariaDB-shared openldap-devel xmlsec1-devel xmlsec1-openssl libtool-ltdl-devel
|
||||
```
|
||||
|
||||
If you use default Centos mariadb (5.5)
|
||||
```
|
||||
yum install gcc mariadb-devel openldap-devel xmlsec1-devel xmlsec1-openssl libtool-ltdl-devel
|
||||
```
|
||||
|
||||
|
||||
**Install yarn to build asset files + Nodejs 14**
|
||||
```
|
||||
curl -sL https://rpm.nodesource.com/setup_14.x | bash -
|
||||
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo -o /etc/yum.repos.d/yarn.repo
|
||||
yum install yarn
|
||||
```
|
||||
<br>
|
||||
|
||||
## Checkout source code and create virtualenv
|
||||
NOTE: Please adjust `/opt/web/powerdns-admin` to your local web application directory
|
||||
|
||||
```
|
||||
git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /opt/web/powerdns-admin
|
||||
cd /opt/web/powerdns-admin
|
||||
virtualenv -p python3 flask
|
||||
```
|
||||
|
||||
Activate your python3 environment and install libraries:
|
||||
```
|
||||
. ./flask/bin/activate
|
||||
pip install python-dotenv
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
<br>
|
||||
|
||||
## Running PowerDNS-Admin
|
||||
NOTE: The default config file is located at `./powerdnsadmin/default_config.py`. If you want to load another one, please set the `FLASK_CONF` environment variable. E.g.
|
||||
```bash
|
||||
export FLASK_CONF=../configs/development.py
|
||||
```
|
||||
|
||||
**Then create the database schema by running:**
|
||||
```
|
||||
export FLASK_APP=powerdnsadmin/__init__.py
|
||||
flask db upgrade
|
||||
```
|
||||
|
||||
**Also, we should generate asset files:**
|
||||
```
|
||||
yarn install --pure-lockfile
|
||||
flask assets build
|
||||
```
|
||||
|
||||
**Now you can run PowerDNS-Admin by command:**
|
||||
```
|
||||
./run.py
|
||||
```
|
||||
|
||||
Open your web browser and access to `http://localhost:9191` to visit PowerDNS-Admin web interface. Register an user. The first user will be in Administrator role.
|
||||
|
||||
At the first time you login into the PDA UI, you will be redirected to setting page to configure the PDNS API information.
|
||||
|
||||
_**Note:**_ For production environment, i would recommend you to run PowerDNS-Admin with gunicorn or uwsgi instead of flask's built-in web server, take a look at WIKI page to see how to configure them.
|
83
docs/wiki/install/Running-PowerDNS-Admin-on-Fedora-30.md
Normal file
83
docs/wiki/install/Running-PowerDNS-Admin-on-Fedora-30.md
Normal file
@ -0,0 +1,83 @@
|
||||
```
|
||||
NOTE: If you are logged in as User and not root, add "sudo", or get root by sudo -i.
|
||||
Normally under centos you are anyway mostly root.
|
||||
```
|
||||
<br>
|
||||
|
||||
## Install required packages
|
||||
|
||||
**Install Python and requirements**
|
||||
```bash
|
||||
dnf install python37 python3-devel python3-pip
|
||||
```
|
||||
**Install Backend and Environment prerequisites**
|
||||
```bash
|
||||
dnf install mariadb-devel mariadb-common openldap-devel xmlsec1-devel xmlsec1-openssl libtool-ltdl-devel
|
||||
```
|
||||
**Install Development tools**
|
||||
```bash
|
||||
dnf install gcc gc make
|
||||
```
|
||||
**Install PIP**
|
||||
```bash
|
||||
pip3.7 install -U pip
|
||||
```
|
||||
**Install Virtual Environment**
|
||||
```bash
|
||||
pip install -U virtualenv
|
||||
```
|
||||
|
||||
**Install Yarn for building NodeJS asset files:**
|
||||
```bash
|
||||
dnf install npm
|
||||
npm install yarn -g
|
||||
```
|
||||
|
||||
## Clone the PowerDNS-Admin repository to the installation path:
|
||||
```bash
|
||||
cd /opt/web/
|
||||
git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git powerdns-admin
|
||||
```
|
||||
|
||||
**Prepare the Virtual Environment:**
|
||||
```bash
|
||||
cd /opt/web/powerdns-admin
|
||||
virtualenv -p python3 flask
|
||||
```
|
||||
**Activate the Python Environment and install libraries**
|
||||
```bash
|
||||
. ./flask/bin/activate
|
||||
pip install python-dotenv
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Running PowerDNS-Admin
|
||||
|
||||
NOTE: The default config file is located at `./powerdnsadmin/default_config.py`. If you want to load another one, please set the `FLASK_CONF` environment variable. E.g.
|
||||
```bash
|
||||
export FLASK_CONF=../configs/development.py
|
||||
```
|
||||
|
||||
**Then create the database schema by running:**
|
||||
```
|
||||
(flask) [khanh@localhost powerdns-admin] export FLASK_APP=powerdnsadmin/__init__.py
|
||||
(flask) [khanh@localhost powerdns-admin] flask db upgrade
|
||||
```
|
||||
|
||||
**Also, we should generate asset files:**
|
||||
```
|
||||
(flask) [khanh@localhost powerdns-admin] yarn install --pure-lockfile
|
||||
(flask) [khanh@localhost powerdns-admin] flask assets build
|
||||
```
|
||||
|
||||
**Now you can run PowerDNS-Admin by command:**
|
||||
```
|
||||
(flask) [khanh@localhost powerdns-admin] ./run.py
|
||||
```
|
||||
|
||||
Open your web browser and access to `http://localhost:9191` to visit PowerDNS-Admin web interface. Register an user. The first user will be in Administrator role.
|
||||
|
||||
At the first time you login into the PDA UI, you will be redirected to setting page to configure the PDNS API information.
|
||||
|
||||
_**Note:**_ For production environment, i recommend to run PowerDNS-Admin with WSGI over Apache instead of flask's built-in web server...
|
||||
Take a look at [WSGI Apache Example](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/WSGI-Apache-example#fedora) WIKI page to see how to configure it.
|
@ -0,0 +1,94 @@
|
||||
## Install required packages
|
||||
|
||||
**Install Python 3 development package**
|
||||
|
||||
```bash
|
||||
sudo apt install python3-dev
|
||||
```
|
||||
|
||||
**Install required packages for building python libraries from requirements.txt file**
|
||||
|
||||
```bash
|
||||
sudo apt install -y git libmysqlclient-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https virtualenv build-essential curl
|
||||
```
|
||||
|
||||
_**Note:**_ I am using MySQL Community server as the database backend. So `libmysqlclient-dev` is required. For MariaDB, and PostgreSQL the required package will be difference.
|
||||
|
||||
** Install Maria or MySQL (ONLY if not ALREADY installed)**
|
||||
```bash
|
||||
sudo apt install mariadb-server mariadb-client
|
||||
```
|
||||
Create database and user using mysql command and entering
|
||||
```bash
|
||||
>create database pda;
|
||||
>grant all privileges on pda.* TO 'pda'@'localhost' identified by 'YOUR_PASSWORD_HERE';
|
||||
>flush privileges;
|
||||
```
|
||||
**Install NodeJs**
|
||||
|
||||
```bash
|
||||
curl -sL https://deb.nodesource.com/setup_14.x | bash -
|
||||
apt install -y nodejs
|
||||
```
|
||||
|
||||
**Install yarn to build asset files**
|
||||
|
||||
```bash
|
||||
sudo curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
|
||||
sudo apt update -y
|
||||
sudo apt install -y yarn
|
||||
```
|
||||
|
||||
## Checkout source code and create virtualenv
|
||||
_**Note:**_ Please adjust `/opt/web/powerdns-admin` to your local web application directory
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /opt/web/powerdns-admin
|
||||
cd /opt/web/powerdns-admin
|
||||
python3 -mvenv ./venv
|
||||
```
|
||||
|
||||
Activate your python3 environment and install libraries:
|
||||
|
||||
```bash
|
||||
source ./venv/bin/activate
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Running PowerDNS-Admin
|
||||
|
||||
Create PowerDNS-Admin config file and make the changes necessary for your use case. Make sure to change `SECRET_KEY` to a long random string that you generated yourself ([see Flask docs](https://flask.palletsprojects.com/en/1.1.x/config/#SECRET_KEY)), do not use the pre-defined one. E.g.:
|
||||
|
||||
```bash
|
||||
cp /opt/web/powerdns-admin/configs/development.py /opt/web/powerdns-admin/configs/production.py
|
||||
vim /opt/web/powerdns-admin/configs/production.py
|
||||
export FLASK_CONF=../configs/production.py
|
||||
```
|
||||
|
||||
Do the DB migration
|
||||
|
||||
```bash
|
||||
export FLASK_APP=powerdnsadmin/__init__.py
|
||||
flask db upgrade
|
||||
```
|
||||
|
||||
Then generate asset files
|
||||
|
||||
```bash
|
||||
yarn install --pure-lockfile
|
||||
flask assets build
|
||||
```
|
||||
|
||||
Now you can run PowerDNS-Admin by command
|
||||
|
||||
```bash
|
||||
./run.py
|
||||
```
|
||||
|
||||
Open your web browser and go to `http://localhost:9191` to visit PowerDNS-Admin web interface. Register a user. The first user will be in the Administrator role.
|
||||
|
||||
This is good for testing, but for production usage, you should use gunicorn or uwsgi. See [Running PowerDNS Admin with Systemd, Gunicorn and Nginx](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/Running-PowerDNS-Admin-with-Systemd,-Gunicorn--and--Nginx) for instructions.
|
102
docs/wiki/install/Running-on-FreeBSD.md
Normal file
102
docs/wiki/install/Running-on-FreeBSD.md
Normal file
@ -0,0 +1,102 @@
|
||||
On [FreeBSD](https://www.freebsd.org/), most software is installed using `pkg`. You can always build from source with the Ports system. This method uses as many binary ports as possible, and builds some python packages from source. It installs all the required runtimes in the global system (e.g., python, node, yarn) and then builds a virtual python environment in `/opt/python`. Likewise, it installs powerdns-admin in `/opt/powerdns-admin`.
|
||||
|
||||
### Build an area to host files
|
||||
|
||||
```bash
|
||||
mkdir -p /opt/python
|
||||
```
|
||||
|
||||
### Install prerequisite runtimes: python, node, yarn
|
||||
|
||||
```bash
|
||||
sudo pkg install git python3 curl node12 yarn-node12
|
||||
sudo pkg install libxml2 libxslt pkgconf py37-xmlsec py37-cffi py37-ldap
|
||||
```
|
||||
|
||||
## Check Out Source Code
|
||||
_**Note:**_ Please adjust `/opt/powerdns-admin` to your local web application directory
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ngoduykhanh/PowerDNS-Admin.git /opt/powerdns-admin
|
||||
cd /opt/powerdns-admin
|
||||
```
|
||||
|
||||
## Make Virtual Python Environment
|
||||
|
||||
Make a virtual environment for python. Activate your python3 environment and install libraries. It's easier to install some python libraries as system packages, so we add the `--system-site-packages` option to pull those in.
|
||||
|
||||
> Note: I couldn't get `python-ldap` to install correctly, and I don't need it. I commented out the `python-ldap` line in `requirements.txt` and it all built and installed correctly. If you don't intend to use LDAP authentication, you'll be fine. If you need LDAP authentication, it probably won't work.
|
||||
|
||||
```bash
|
||||
python3 -m venv /web/python --system-site-packages
|
||||
source /web/python/bin/activate
|
||||
/web/python/bin/python3 -m pip install --upgrade pip wheel
|
||||
# this command comments out python-ldap
|
||||
perl -pi -e 's,^python-ldap,\# python-ldap,' requirements.txt
|
||||
pip3 install -r requirements.txt
|
||||
```
|
||||
|
||||
## Configuring PowerDNS-Admin
|
||||
|
||||
NOTE: The default config file is located at `./powerdnsadmin/default_config.py`. If you want to load another one, please set the `FLASK_CONF` environment variable. E.g.
|
||||
```bash
|
||||
cp configs/development.py /opt/powerdns-admin/production.py
|
||||
export FLASK_CONF=/opt/powerdns-admin/production.py
|
||||
```
|
||||
|
||||
### Update the Flask config
|
||||
|
||||
Edit your flask python configuration. Insert values for the database server, user name, password, etc.
|
||||
|
||||
```bash
|
||||
vim $FLASK_CONF
|
||||
```
|
||||
|
||||
Edit the values below to something sensible
|
||||
```python
|
||||
### BASIC APP CONFIG
|
||||
SALT = '[something]'
|
||||
SECRET_KEY = '[something]'
|
||||
BIND_ADDRESS = '0.0.0.0'
|
||||
PORT = 9191
|
||||
OFFLINE_MODE = False
|
||||
|
||||
### DATABASE CONFIG
|
||||
SQLA_DB_USER = 'pda'
|
||||
SQLA_DB_PASSWORD = 'changeme'
|
||||
SQLA_DB_HOST = '127.0.0.1'
|
||||
SQLA_DB_NAME = 'pda'
|
||||
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
||||
```
|
||||
|
||||
Be sure to uncomment one of the lines like `SQLALCHEMY_DATABASE_URI`.
|
||||
|
||||
### Initialise the database
|
||||
|
||||
```bash
|
||||
export FLASK_APP=powerdnsadmin/__init__.py
|
||||
flask db upgrade
|
||||
```
|
||||
|
||||
### Build web assets
|
||||
|
||||
```bash
|
||||
yarn install --pure-lockfile
|
||||
flask assets build
|
||||
```
|
||||
|
||||
## Running PowerDNS-Admin
|
||||
|
||||
Now you can run PowerDNS-Admin by command
|
||||
|
||||
```bash
|
||||
./run.py
|
||||
```
|
||||
|
||||
Open your web browser and go to `http://localhost:9191` to visit PowerDNS-Admin web interface. Register a user. The first user will be in the Administrator role.
|
||||
|
||||
### Running at startup
|
||||
|
||||
This is good for testing, but for production usage, you should use gunicorn or uwsgi. See [Running PowerDNS Admin with Systemd, Gunicorn and Nginx](https://github.com/ngoduykhanh/PowerDNS-Admin/wiki/Running-PowerDNS-Admin-with-Systemd,-Gunicorn--and--Nginx) for instructions.
|
||||
|
||||
The right approach long-term is to create a startup script in `/usr/local/etc/rc.d` and enable it through `/etc/rc.conf`.
|
Reference in New Issue
Block a user