Skip to content

webpp-studio/hostmanager

Repository files navigation

Hostmanager

Минималистичная система управления виртуальными хостами. Написана на Django.

HostManager Interface

Установка

Нужно создать пользователя, из-под которого будет запускаться WSGI-процесс. Этому пользователю нужно дать права на перезагрузку apache и nginx, создание пользователей, и еще несколько операций (через /etc/sudoers):

Пример выдачи прав в /etc/sudoers:

web ALL=(root, web) NOPASSWD:/etc/init.d/apache2 reload, /etc/init.d/nginx reload, /usr/sbin/useradd, /usr/sbin/userdel, /bin/ln, /bin/mkdir, /bin/chmod, /bin/chown, /usr/bin/unlink

Важно, чтобы при выполнении этих действий из-под sudo не выполнялся запрос пароля.

Пример конфигурации Apache для запуска HostManager:

VirtualHost *:81>
    ServerName manager.myhosting.ru

    WSGIScriptAlias / /path/to/wsgi.py
    WSGIDaemonProcess hostmanager user=web group=web\
                      processes=2 threads=4 maximum-requests=100 display-name=apache-user-wsgi
    WSGIProcessGroup hostmanager

    ErrorLog /var/logs/hostmanager.error.log
    CustomLog /var/logs/hostmanager.access.log combined
</VirtualHost>

Пример конфигурации Nginx:

server {
    listen 80;
    server_name manager.myhosting.ru;

    access_log  /var/log/nginx/hostmanager.access.log;
    error_log  /var/log/nginxhostmanager.error.log;
    
    location /static {
        root /path/to/project/dir;
        access_log off;
        expires max;
        break;
    }

    location /media {
        root /path/to/project/dir;
        access_log off;
        expires 5d;
        break;
    }

    location = /favicon.ico {
        root /path/to/static;
        access_log off;
        expires max;
        break;

    }

    location = /robots.txt {
        root /path/to/static;
        access_log off;
        break;
    }

    location / {
        proxy_pass http://127.0.0.1:81;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-for $remote_addr;
        proxy_set_header Host $host;
        proxy_connect_timeout 60;
        proxy_send_timeout 90;
        proxy_read_timeout 90;
        proxy_redirect off;
        proxy_set_header Connection close;
        proxy_pass_header Content-Type;
        proxy_pass_header Content-Disposition;
        proxy_pass_header Content-Length;
    }
}

About

Virtual hosting panel written on Django

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published