/ahc

Package with extensions for Developers on Python(+Django), Ruby(+RoR) and PHP.

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

--------------------------------------------------------------
                            ABOUT
--------------------------------------------------------------
Package for control apache/nginx virtual hosts, mysql/ftp/openvpn/git/mail
users, bind zones, apache clients certificates on
developer/production web-hosts. Tested on
Ubuntu/Debian Linux.
Published under GNU GPL v.2.
--------------------------------------------------------------

##############################################################

--------------------------------------------------------------
                        INSTALLATION
--------------------------------------------------------------
Apache Host Control:
--------------------------------------------------------------
$ sudo -i
# apt-get update && apt-get upgrade -y
# apt-get install -y python-pip python-mysqldb python-flup git-core make python-pycurl gcc python-dev
# cd /usr/src/ && git clone --depth 1 https://github.com/gotlium/ahc.git
# cd ahc/ && pip install -r requirements.txt && make install
# cd && ahc -m install -s lamp && ahc -m install -s firewall
--------------------------------------------------------------

##############################################################

--------------------------------------------------------------
                            USAGE
--------------------------------------------------------------
Apache hosts:
--------------------------------------------------------------
# ahc -m install -s apache2_ssl
# ahc -m test -s apache
# ahc -m apache -t php -a example.com
--------------------------------------------------------------

--------------------------------------------------------------
Nginx hosts:
--------------------------------------------------------------
# ahc -m install -s nginx_ssl
# ahc -m test -s nginx
# ahc -m nginx -t php -a example.com
--------------------------------------------------------------

--------------------------------------------------------------
FTP accounts:
--------------------------------------------------------------
# ahc -m install -s ftp
# ahc -m test -s ftp
# ahc -m ftp -a example.com -u User -p Password
--------------------------------------------------------------

--------------------------------------------------------------
MySQL accounts:
--------------------------------------------------------------
# ahc -m install -s mysql
# ahc -m test -s mysql
# ahc -m mysql -a example.com -u User -p Password
--------------------------------------------------------------

--------------------------------------------------------------
Bind zone:
--------------------------------------------------------------
# ahc -m install -s bind
# ahc -m test -s bind
# ahc -m bind -a example.com -i 127.0.0.1
--------------------------------------------------------------

--------------------------------------------------------------
Git deployment:
--------------------------------------------------------------
# ahc -m test -s git
# ahc -m git -a example.com
# ahc -m git -d example.com
--------------------------------------------------------------

--------------------------------------------------------------
Git jail:
--------------------------------------------------------------
ahc -m test -s git_jail
ahc -m git_jail -a mail@example.com -p 'TYPE KEY-STRING COMMENT'
ahc -m git_jail -d mail@example.com
ahc -m git_jail -l
ahc -m git_jail -i example.com -e templates -u mail@example.com
ahc -m git_jail -i example.com -f templates -u mail@example.com
--------------------------------------------------------------

--------------------------------------------------------------
Project Protection
--------------------------------------------------------------
# ahc -m test -s crypt
# ahc -m crypt -a mount
# ahc -m crypt -a umount
--------------------------------------------------------------

--------------------------------------------------------------
iRedMail
--------------------------------------------------------------
# ahc -m install -s mail
--------------------------------------------------------------

--------------------------------------------------------------
Firewall:
--------------------------------------------------------------
# ahc -m install -s firewall
# iptables -L -n
    or
# cat /etc/init.d/rc.fw
--------------------------------------------------------------

##############################################################

--------------------------------------------------------------
                         EXAMPLES
--------------------------------------------------------------

--------------------------------------------------------------
Apache2
--------------------------------------------------------------
# ahc -m apache -t php -a hostname -o -x
# ahc -m apache -t php -d hostname
# ahc -m apache -t php -e hostname
# ahc -m apache -t php -f hostname
# ahc -m apache -t php -l
--------------------------------------------------------------

--------------------------------------------------------------
Nginx
--------------------------------------------------------------
# ahc -m nginx -t php -a hostname
# ahc -m nginx -t php -d hostname
# ahc -m nginx -t php -e hostname
# ahc -m nginx -t php -f hostname
--------------------------------------------------------------

--------------------------------------------------------------
FTP
--------------------------------------------------------------
# ahc -m ftp -a hostname -u user -p password
# ahc -m ftp -a hostname -u user -p random
# ahc -m ftp -a hostname -u user -p password -f folder
# ahc -m ftp -a hostname
# ahc -m ftp -d hostname
--------------------------------------------------------------

--------------------------------------------------------------
MySQL
--------------------------------------------------------------
# ahc -m mysql -a hostname -u user -p password
# ahc -m mysql -a hostname -u user -p random
# ahc -m mysql -a hostname
# ahc -m mysql -d hostname -u user
--------------------------------------------------------------

--------------------------------------------------------------
Bind9
--------------------------------------------------------------
# ahc -m bind -a hostname -i ip-address
# ahc -m bind -d hostname
--------------------------------------------------------------

--------------------------------------------------------------
Backups
--------------------------------------------------------------
# ahc -m backup -b mysql
# ahc -m backup -b site
--------------------------------------------------------------

--------------------------------------------------------------
Tests
--------------------------------------------------------------
# ahc -m test -s apache
# ahc -m test -s nginx
# ahc -m test -s ftp
# ahc -m test -s mysql
# ahc -m test -s bind
# ahc -m test -s crypt
# ahc -m test -s git
# ahc -m test -s git_jail
# ahc -m test -s sendmail
# ahc -m test -s all
--------------------------------------------------------------

--------------------------------------------------------------
Certificates
--------------------------------------------------------------
# ahc -m certs -i example.com -a email-address
# ahc -m certs -i example.com -d email-address
# ahc -m certs -i example.com -l
--------------------------------------------------------------

--------------------------------------------------------------
OpenVPN
--------------------------------------------------------------
# ahc -m vpn -a client1
# ahc -m vpn -d client1
--------------------------------------------------------------

--------------------------------------------------------------
Projects protection
--------------------------------------------------------------
# ahc -m crypt -a encrypt
# ahc -m crypt -a mount
# ahc -m crypt -a umount
# ahc -m crypt -a decrypt
    OR
# ahc -m crypt -a e
# ahc -m crypt -a m
# ahc -m crypt -a u
# ahc -m crypt -a d
--------------------------------------------------------------

--------------------------------------------------------------
Service Installing
--------------------------------------------------------------
# ahc -m install -s apache2_ssl
# ahc -m install -s nginx_ssl
# ahc -m install -s ftp
# ahc -m install -s bind
# ahc -m install -s mysql
# ahc -m install -s firewall
# ahc -m install -s nginx_proxy
# ahc -m install -s certs -i example.com
# ahc -m install -s lighttpd
# ahc -m install -s sendmail
# ahc -m install -s mail
# ahc -m install -s shell
# ahc -m install -s jira
# ahc -m install -s confluence
# ahc -m install -s web
# ahc -m install -s vpn
# ahc -m install -s dropbox
# ahc -m install -s all
--------------------------------------------------------------

Ahc flags:
    --version - current version
    -h or --help - help section

Bind flags:
    -a = add zone
    -d = remove zone
    -i = ip-address for a specified zone


Certs flags:
    -a = add user
    -d = remove user
    -l = List of users


MySQL flags:
    -a = add [database] or [hostname]
    -d = remove database
    -u = username(optional)
    -p = password(optional)


FTP flags:
    -a = add ftp account for hostname
    -d = remove ftp account(still working, when hostname is removed)
    -u = username (optional)
    -p = password (optional)
    -f = manual specified folder (optional)

    Note:
        Default "username" & "password" is equal to hostname


Git jail flags:
    -a - add user
    -p - ssh public key
    -d - delete user
    -l - user list
    -i - project name (domain name)
    -e - add access for directory in project
    -u - email address
    -f - remove access for directory


Apache/Nginx flags:
    -t = type [php,python,django,ruby,ror]
    -a = add host
    -d = remove host
    -e = enable host
    -f = disable host
    -o = static optimization(optional)
    -x = enable host protection(optional)
    -l = list available websites
    -w = wsgi config for python OR django (nginx/uwsgi)
    -b = basic auth. params=user:password
    -v = VirtualEnv (available for python & django)


.. image:: https://d2weczhvl823v0.cloudfront.net/gotlium/ahc/trend.png
    :alt: Bitdeli badge
    :target: https://bitdeli.com/free