All Projects → niiknow → Vestacp

niiknow / Vestacp

Licence: mit
Dockerized Vesta Control Panel aka vestacp

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Vestacp

Ansible Bootstrap Ubuntu
Ansible scripts for bootstrapping and securing an Ubuntu server (locale, fail2ban, firewall, lock down sudo, prevent root and password login, ...)
Stars: ✭ 115 (-7.26%)
Mutual labels:  nginx
Symfony 4 Docker Env
Docker Environment for Symfony. PHP-FPM, NGINX SSL Proxy, MySQL, LEMP
Stars: ✭ 119 (-4.03%)
Mutual labels:  nginx
Library
A microservice project using .NET Core 2.0, DDD, CQRS, Event Sourcing, Redis and RabbitMQ
Stars: ✭ 122 (-1.61%)
Mutual labels:  nginx
Docker Nginx Gunicorn Flask Letsencrypt
Boilerplate code for setting up Nginx + Gunicorn + Flask + automated LetsEncrypt certificates (https) using docker-compose.
Stars: ✭ 117 (-5.65%)
Mutual labels:  nginx
Notebook
我的技术笔记本~
Stars: ✭ 118 (-4.84%)
Mutual labels:  nginx
Patch
Something could be public patches
Stars: ✭ 120 (-3.23%)
Mutual labels:  nginx
Knowledge
文档着重构建一个完整的「前端技术架构图谱」,方便 F2E(Front End Engineering又称FEE、F2E) 学习与进阶。
Stars: ✭ 1,620 (+1206.45%)
Mutual labels:  nginx
Magento 2 Server Installation
Magento 2 Server Installation - How to Install Magento 2
Stars: ✭ 123 (-0.81%)
Mutual labels:  nginx
Ngx cpp dev
Nginx cpp development kit
Stars: ✭ 118 (-4.84%)
Mutual labels:  nginx
Nginx Builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 123 (-0.81%)
Mutual labels:  nginx
Docker Matomo
Matomo (formerly Piwik) Docker image based on Alpine Linux
Stars: ✭ 117 (-5.65%)
Mutual labels:  nginx
Hydroshare
HydroShare is a collaborative website for better access to data and models in the hydrologic sciences.
Stars: ✭ 117 (-5.65%)
Mutual labels:  nginx
Nginx Vod Module Docker
Docker image for nginx with Kaltura's VoD module used by The New York Times
Stars: ✭ 121 (-2.42%)
Mutual labels:  nginx
Lua Resty Http
Lua HTTP client cosocket driver for OpenResty / ngx_lua.
Stars: ✭ 1,647 (+1228.23%)
Mutual labels:  nginx
Ansible Role Ssl Certs
Generate and/or deploy SSL certificate
Stars: ✭ 122 (-1.61%)
Mutual labels:  nginx
Pyblog
Pyblog 是一个简单易用的在线 Markdown 博客系统,它使用 Python 的 flask 架构,理论上支持所有 flask-sqlalchemy 所能支持的数据库。 编辑器使用的是 editor.md。当前版本(v2.0)支持且仅支持 python3! Python 的 Markdown to HTML 编译器使用的是 Mistune! Just so!
Stars: ✭ 113 (-8.87%)
Mutual labels:  nginx
Dockerized Flask
Dockerized web app using NGINX, Flask and PostgreSQL
Stars: ✭ 119 (-4.03%)
Mutual labels:  nginx
Django Microservices
UNMAINTAINED
Stars: ✭ 124 (+0%)
Mutual labels:  nginx
Docker Loadbalancer
Stars: ✭ 123 (-0.81%)
Mutual labels:  nginx
Nginx Php Fpm
Nginx + PHP-FPM 8.0.x / 7.4.x / 7.3.x / 7.2.x / 7.1.x / 7.0.x + Composer built on Debian 10 (Buster) image
Stars: ✭ 121 (-2.42%)
Mutual labels:  nginx

VestaCP

The ultimate control panel with docker (thanks lagun4ik for a great start)

What's included?

  • ubuntu 16.04 lts + Vesta 0.9.8-25
  • nginx (proxy) -> apache2 -> php-fcgi - high performance and flexible implementation
  • ssh/sftp, letsencrypt, memcached, redis, MariaDB 10.2, postgresql 9.6, nodejs 12.x, golang 1.15.x, openvpn, mongodb, couchdb, .net core 3.1
  • folder redirection for data persistence and automatic daily backup provided by VestaCP
  • DNS, named, dovecot/roundcube, spamassassin, clamav, etc... -- disabled by default
  • vesta panel SSL (LE-issued) for mail and control panel - provide $HOSTNAME environment variable
  • added ability to also run php-fpm

Run this image:

mkdir -p /opt/vestacp/{vesta,home,backup}

docker run -d --restart=always \
-p 3322:22 -p 80:80 -p 443:443 -p 9088:8083 \
-v /opt/vestacp/vesta:/vesta -v /opt/vestacp/home:/home -v /opt/vestacp/backup:/backup \
niiknow/vestacp

Volumes

/vesta -- configurations

/home -- users data

/backup -- users backup

Authorization

Login: admin

To get the password, run

sudo docker exec $CONTAINER_ID cat /vesta-start/root/password.txt

Alternatively, you can change the password with:

sudo docker exec $CONTAINER_ID /usr/local/vesta/bin/v-change-user-password admin YOURNEWPASSWORD

SSH for FTP

FTP was not installed on purpose because it's not secure. Use SFTP instead on the 3322 port. Disable ssh if you don't really need it and use the Vesta FileManager plugin. Also, make sure you change the user shell in the Vesta panel in order to use ssh.

todo/done

  • [x] redirected customizable config folders to /vesta, exclude /home. Home has been setup to be it's own volume. Do not try to redirect the home folder. It's like opening a big can of worms. There are all kind of breaking issues with having home as a symbolic link: Vesta FileManager breaking, Apache and Nginx breaking, SSL breaking, and so on...
  • [x] Use incrond to watch /etc/{passwd,shadow,gshadow,group} and sync to /backup/.etc so remember to attach the backup volume if you want to save password across restart.
  • [x] AWS CLI has been installed to simplify your backup lifestyle. You just need to setup a cron on VestaCP.
  • [x] Update index.html to remove reference to VestaCP from default site for security.
  • [x] Dovecot/roundcube email, and DNS services are disabled by default. Look at /home/admin/bin/my-startup.sh for instruction on how to re-enable these services. Remember to restart your container after updating my-startup.sh.
  • [x] Replace phpmyadmin and phppgadmin with adminer.

misc/tested/verified

  • [x] ssh/sftp, nginx, apache2, php7.3+ & v8js
  • [x] log viewing in Vesta
  • [x] backup and restore
  • [x] Vesta FileManager
  • [x] Letsencrypt
  • [x] Sending/outgoing email, dovecot
  • [x] adminer
  • [x] Redis, Memcached
  • [x] nodejs, golang
  • [x] MariaDB/MySQL, PostgreSql, Mongodb
  • [x] add incron to monitor and immediately backup /etc/{passwd,shadow,gshadow,group}
  • [x] nginx pagespeed module
  • [x] redirect awstats
  • [x] multiple php{7.3,7.4,8.0} fcgi and fpm templates

your todo

  • [ ] I recommend the following:
  1. Since this is Docker, you can run as many services as you want but only expose request port.
  2. Change the default/initial admin password for security purpose.
  3. Instead of using the admin acccount, consider creating a different/separate credentials for different website/service. This will make it easier for backup and recovery; especially, when you need to move the user to a different installation.

extra

If you use this Docker for hosting and allow your user to login, I also recommend installing maldetect on the docker host to scan the /home volume.

Enjoy!!!

GeoIP Blocking

http {
    ...
    geoip2 /etc/nginx/geoip2/GeoLite2-Country.mmdb {
        auto_reload 5m;
        $geoip2_country_code default=US source=$remote_addr country iso_code;
    }
    ...
    map $geoip2_country_code $allowed_country {
        default yes;
        FK no;
        FM no;
        EH no;
    }
}

server {
    ...
    if ($allowed_country = no) {
        return 444;
    }
    ...
}

Release Notes

1.10.0 - add php8.0, remove php7.2, default php7.4. It is suggest that you start this like migrating server: backup and restore individual user.

1.9.3 - fix build and prep for php8.0

1.9.1 - build update for nginx 1.18.0, GoLang 1.14.3, nodejs 12, and phpv8js for php7.4

1.9.0 - remove php7.1 and add php7.4, update to GoLang 1.13.5 and dotnet 3.1

1.8.5 - build update for Vesta 0.9.8-25 and nginx 1.16.1

1.8.0 - replace phpmyadmin and phppgadmin with adminer.

1.6.0 - Add wordpress support. Fix MongoDB weird build issue. Python 3.7, DotNetCore 2.2, GoLang 1.12.5, and update postgis-2.4 to postgis-2.5

1.5.2 - with php7.3 support.

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].