From 3877738dc2b24ab7dfe5ffbe3e505fc6740dc85e Mon Sep 17 00:00:00 2001 From: Stefan Pejcic Date: Thu, 13 Jun 2024 20:10:48 +0200 Subject: [PATCH] Create docker-compose.yml --- docker/docker-compose.yml | 132 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 docker/docker-compose.yml diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 00000000..617c1df4 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,132 @@ +services: + # Database for OpenPanel users, plans, websites and domains + openpanel_mysql: + image: mysql/mysql-server + container_name: openpanel_mysql + restart: always + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + MYSQL_DATABASE: panel + MYSQL_USER: panel + MYSQL_PASSWORD: ${MYSQL_ROOT_PASSWORD} + ports: + - "3306:3306" + volumes: + - openadmin_mysql:/var/lib/mysql + - /etc/openpanel/:/etc/openpanel/ + - ./initialize.sql:/docker-entrypoint-initdb.d/initialize.sql + mem_limit: 1g + cpus: 1 + oom_kill_disable: true + + # OpenAdmin service running on port 2087 + openadmin: + image: openpanel/openadmin + container_name: openadmin + depends_on: + - openpanel_mysql + cap_add: + - NET_ADMIN + - SYS_MODULE + volumes: + - /lib/modules:/lib/modules:ro + - /proc:/host/proc:ro + - /sys:/host/sys:ro + - /:/hostfs:ro + - /home:/home + - /etc/ufw:/etc/ufw + - /usr/local/panel:/usr/local/panel + - /var/log:/var/log + - /etc/letsencrypt:/etc/letsencrypt + - /etc/my.cnf:/etc/my.cnf + - /etc/openpanel/:/etc/openpanel/ + - /var/run/docker.sock:/var/run/docker.sock + - openadmin_mysql:/var/lib/mysql + - /usr/bin/docker:/usr/bin/docker + network_mode: host + deploy: + resources: + limits: + memory: 1g + cpus: '1.0' + restart: always + privileged: true + + # OpenPanel service running on port 2083 + openpanel: + image: openpanel/openpanel + container_name: openpanel + depends_on: + - openpanel_mysql + cap_add: + - NET_ADMIN + - SYS_MODULE + volumes: + - /lib/modules:/lib/modules:ro + - /proc:/host/proc:ro + - /sys:/host/sys:ro + - /:/hostfs:ro + - /home:/home + - /etc/ufw:/etc/ufw + - /usr/local/admin:/usr/local/admin + - /var/log:/var/log + - /etc/letsencrypt:/etc/letsencrypt + - /etc/my.cnf:/etc/my.cnf + - /etc/openpanel/:/etc/openpanel/ + - /var/run/docker.sock:/var/run/docker.sock + - openadmin_mysql:/var/lib/mysql + - /usr/bin/docker:/usr/bin/docker + network_mode: host + deploy: + resources: + limits: + memory: 1g + cpus: '2.0' + restart: always + privileged: true + + # Nginx Reverse Proxy and WAF + nginx: + image: nginx + container_name: openpanel_nginx + cap_add: + - NET_ADMIN + - SYS_MODULE + ports: + - "80:80" + - "443:443" + volumes: + - /etc/openpanel/nginx/nginx.conf:/etc/nginx/nginx.conf + - /etc/openpanel/nginx/vhosts/default.conf:/etc/nginx/sites-available/default + - /etc/openpanel/nginx/vhosts/default.conf:/etc/nginx/sites-enabled/default + - /etc/openpanel/nginx/vhosts/openpanel_proxy.conf:/etc/openpanel/nginx/vhosts/openpanel_proxy.conf + - /etc/nginx/sites-available/:/etc/nginx/sites-available/ + - /etc/nginx/sites-enabled/:/etc/nginx/sites-enabled/ + - /etc/openpanel/nginx/error_pages/snippets/:/etc/nginx/snippets/ + - /etc/openpanel/nginx/error_pages/:/srv/http/default/ + - /var/log/nginx/stats/:/var/log/nginx/stats/ + - /var/log/nginx/domlogs/:/var/log/nginx/domlogs/ + - /etc/letsencrypt:/etc/letsencrypt + - /etc/openpanel/openpanel/core/users/:/etc/openpanel/openpanel/core/users/ + deploy: + resources: + limits: + memory: 1g + cpus: '1.0' + restart: always + privileged: true + oom_kill_disable: true + + # User images + openpanel_apache: + image: openpanel/apache:latest + entrypoint: /bin/true + + openpanel_nginx: + image: openpanel/nginx:latest + entrypoint: /bin/true + +# make the data persistent +volumes: + openadmin_mysql: +