{"id":23854900,"url":"https://github.com/aventer-ug/docker-ispconfig","last_synced_at":"2025-09-08T02:30:59.618Z","repository":{"id":45661567,"uuid":"406757172","full_name":"AVENTER-UG/docker-ispconfig","owner":"AVENTER-UG","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-06T14:09:49.000Z","size":120,"stargazers_count":7,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-29T15:18:49.865Z","etag":null,"topics":["docker","ispconfig"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AVENTER-UG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["AVENTER-UG"]}},"created_at":"2021-09-15T12:35:09.000Z","updated_at":"2025-03-08T10:51:45.000Z","dependencies_parsed_at":"2024-05-05T12:25:53.592Z","dependency_job_id":"671736b4-428b-4b06-ad55-e2f6633a46c3","html_url":"https://github.com/AVENTER-UG/docker-ispconfig","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/AVENTER-UG/docker-ispconfig","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVENTER-UG%2Fdocker-ispconfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVENTER-UG%2Fdocker-ispconfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVENTER-UG%2Fdocker-ispconfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVENTER-UG%2Fdocker-ispconfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AVENTER-UG","download_url":"https://codeload.github.com/AVENTER-UG/docker-ispconfig/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AVENTER-UG%2Fdocker-ispconfig/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274122927,"owners_count":25226018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","ispconfig"],"created_at":"2025-01-03T00:19:01.171Z","updated_at":"2025-09-08T02:30:59.603Z","avatar_url":"https://github.com/AVENTER-UG.png","language":"PHP","funding_links":["https://github.com/sponsors/AVENTER-UG","https://liberapay.com/AVENTER","https://www.paypal.com/donate/?hosted_button_id=H553XE4QJ9GJ8"],"categories":[],"sub_categories":[],"readme":"# ISPConfig3 in a docker container\n\n\n\u003ca href=\"https://riot.im/app/#/room/#support:matrix.aventer.biz\" target=\"_new\"\u003e\u003cimg src=\"https://img.shields.io/static/v1?label=Chat\u0026message=Matrix\u0026color=brightgreen\"\u003e\u003c/a\u003e\u003c/span\u003e\u003c/a\u003e\n\u003ca href=\"https://hub.docker.com/r/avhost/docker-ispconfig\" target=\"_new\"\u003e![Docker Pulls](https://img.shields.io/docker/pulls/avhost/docker-ispconfig)\u003c/a\u003e\n\u003ca href=\"https://liberapay.com/AVENTER\" target=\"_new\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/receives/AVENTER.svg?logo=liberapay\"\u003e\u003c/a\u003e\n\nThis docker image include a whole ISPConfig3 software stack. For details, I'm sorry have a look in the Dockerfile. Later I will write down all installed packages.\n\n## Funding\n\n[![](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=H553XE4QJ9GJ8)\n\n\n## How to use it\n\nFirst, have a look at the following docker-compose file to get an idea.\n\n```yaml\nversion: '3'\n\nservices:\n  master:\n    image: mariadb\n    command: --max_allowed_packet=32505856\n    restart: always\n    volumes:\n      - /data/db:/var/lib/mysql\n    networks:\n      - default\n    hostname: master.weave.local\n    environment:\n      MYSQL_ROOT_PASSWORD: \u003cPASSWORD\u003e\n\n  server1:\nimage: avhost/docker-ispconfig:latest\n    ports:\n      - \"443:443\"\n      - \"80:80\"\n    volumes: [\"/data/amavis:/var/lib/amavis\",\"/data/etc/amavis:/etc/amavis\", \"/data/letsencrypt:/etc/letsencrypt\", \"/data/etc/apache2/sites-available:/etc/apache2/sites-available\", \"/data/etc/apache2/sites-enabled:/etc/apache2/sites-enabled\", \"/data/www:/var/www/\", \"/data/backup:/var/backup/\", \"/data/usr:/usr/local/ispconfig\", \"/data/etc/cron.d:/etc/cron.d\", \"/data/kis/bind:/etc/bind\", \"/data/mail:/var/vmail/\"]\n    restart: always\n    depends_on:\n      - master\n    networks:\n      - default\n    hostname: server1.weave.local\n    cap_add:\n      - NET_ADMIN\n      - NET_RAW\n    environment:\n      isp_mysql_hostname: \"master.weave.local\"\n      isp_mysql_root_password: \"\u003cPASSWORD\u003e\"\n      isp_mysql_ispconfig_password: \"\u003cPASSWORD\u003e\"\n      isp_admin_password: \"\u003cPASSWORD\u003e\"\n      isp_mysql_master_root_password: \"\u003cPASSWORD\u003e\"\n      isp_mysql_master_hostname: \"master\"\n      isp_enable_mail: \"n\"\n      isp_enable_jailkit: \"n\"\n      isp_enable_ftp: \"n\"\n      isp_enable_dns: \"n\"\n      isp_enable_apache: \"y\"\n      isp_enable_nginx: \"y\"\n      isp_enable_firewall: \"y\"\n      isp_enable_webinterface: \"n\"\n      isp_enable_multiserver: \"n\"\n      isp_hostname: \"\u003c$HOSTNAME\u003e\"\n      isp_use_ssl: \"y\"\n      isp_phpmyadmin_blowfish_secret: \"advpDZ9wHZXkZSfV78DLRjzSPaTm5yBC\"\n      isp_change_mail_server: \"y\"\n      isp_change_web_server: \"y\"\n      isp_change_dns_server: \"y\"\n      isp_change_xmpp_server: \"y\"\n      isp_change_firewall_server: \"y\"\n      isp_change_vserver_server: \"y\"\n      isp_change_db_server: \"y\"\n\nnetworks:\n  default:\n    external:\n      name: weave\n```\n\nNext, some words to say. If you will deploy a docker container with this image for the first time, it will not work if you persist already all the data (like above). First, just mount /var/backup inside of the container, start the container and then copy all the needed files/directories ONE TIME into the backup directory. Then shutdown the container, and persist the data like above with all the files you copied into the backup directory. Thats just a one time job. :-) Why you have to do it! As example, bind, amavis, postfix, all these packages have default files. If you persist from the beginging, the default files will not be there and the services will crash.\n\n## Persist Data\n\nThere are some directories and files its easier if you don't persist them. As example:\n\n- /etc/passwd\n- /etc/shadow\n- /etc/group\n- /var/log/ispconfig\n\nSpecialy the system authentication files makes only problems if you try to persist them. Docker cannot handle a group/useradd on mounted auth files. To recreate the web/client users from ispconfig, you have to login into the webinterface, go to \"Configuration\", there on \"resync\" and then resync the \"Websites\" on the container you restarted. Thats it!\n\n## The idea behind\n\nThe idea behind this images is the flexibility to move the whole ISPConfig Container, with the data, with the config, as is, to a other server if you have to update or migrate the host system. Use this container as the \"Real Server\", and the Server where its running, just as a host system. This image should give you a posibility to maintain and fix your whole ISPConfig infrastructure very fast.\n\n## Multiuser Environment\n\nYes its working! We are using it with weave.works and docker-compose. At the host system is dnsmasq to seperate the weave dns resolution from the external one and the one inside of the container.\n\n## What it is not\n\nIt's definitly not a microservice. :-) So, you cannot recreate the running container like you want and to everytime. You need a downtime, and maybe you also have so cleanup a little bit after you restart the container.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faventer-ug%2Fdocker-ispconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faventer-ug%2Fdocker-ispconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faventer-ug%2Fdocker-ispconfig/lists"}