{"id":19134467,"url":"https://github.com/azerothcore/acore-cms","last_synced_at":"2025-05-01T09:54:42.965Z","repository":{"id":37847763,"uuid":"268056654","full_name":"azerothcore/acore-cms","owner":"azerothcore","description":"ACore CMS based on Wordpress","archived":false,"fork":false,"pushed_at":"2025-03-14T10:48:37.000Z","size":84116,"stargazers_count":55,"open_issues_count":21,"forks_count":36,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-01T09:54:31.728Z","etag":null,"topics":["azerothcore-tools"],"latest_commit_sha":null,"homepage":"https://www.azerothcore.org/acore-cms/","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/azerothcore.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2020-05-30T10:24:05.000Z","updated_at":"2025-04-24T23:40:17.000Z","dependencies_parsed_at":"2024-11-07T17:48:47.186Z","dependency_job_id":null,"html_url":"https://github.com/azerothcore/acore-cms","commit_stats":{"total_commits":153,"total_committers":16,"mean_commits":9.5625,"dds":0.6405228758169934,"last_synced_commit":"cd65467aa2617531938ef6c40670f22ea9fb9082"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Facore-cms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Facore-cms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Facore-cms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Facore-cms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azerothcore","download_url":"https://codeload.github.com/azerothcore/acore-cms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251856993,"owners_count":21655119,"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","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":["azerothcore-tools"],"created_at":"2024-11-09T06:26:40.481Z","updated_at":"2025-05-01T09:54:42.934Z","avatar_url":"https://github.com/azerothcore.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ACore CMS\r\n\r\nACore CMS is a content management system based on WordPress, designed to provide a robust and flexible platform for managing your website content. \r\n**ACore CMS has been built to be integrated with AzerothCore**, allowing features such as account registration, WooCommerce integration (to sell items and services), etc.\r\nIt leverages the power of Docker for easy setup and deployment, and includes a variety of plugins to extend its functionality. \r\n\r\n## Features\r\n\r\n- **Easy Setup**: Quickly get started with Docker and docker-compose.\r\n- **Extensible**: Includes a variety of plugins such as WooCommerce, and you can add or create more. Extend it with any WordPress plugins, themes, and consume the REST/GraphQL APIs available.\r\n- **AzerothCore Integration**: Integrated with AzerothCore to provide account registration, item selling, and more.\r\n\r\nWhether you're building a simple website or a complex e-commerce site, ACore CMS provides the tools you need to create and manage your content effectively.\r\n\r\n![Dashboard](dashboard.png)\r\n\r\n## Requirements\r\n\r\n- Docker \u0026 docker-compose\r\n- Nodejs \u0026 npm\r\n\r\nIf you do not have **docker**, [install it](https://docs.docker.com/compose/install/).\r\n\r\nAbout **Nodejs \u0026 npm**, you can install it from [here](https://nodejs.org/en/).\r\n\r\n\r\n## Installation \u0026 Usage\r\n\r\n### 1. Configure your .env file\r\n\r\nCreate an `.env` file and copy the `.env.docker` content file to `.env`, configuring the variables as you prefer.\r\n\r\nThe most important variables are:\r\n```bash\r\nDOCKER_WORDPRESS_URL=http://localhost # the url of the website\r\nDOCKER_WORDPRESS_TITLE=ACoreCMS # the title of the website\r\nDOCKER_WORDPRESS_ADMIN_USER=admin # the wordpress admin username\r\nDOCKER_WORDPRESS_ADMIN_PASSWORD=admin # the wordpress admin password\r\nDOCKER_WORDPRESS_ADMIN_EMAIL=admin@example.com # the wordpress admin email\r\n```\r\n\r\n### 2. Build and start the docker containers\r\n\r\n```\r\nnpm run docker:install\r\n```\r\n\r\nThis process will take some time, once everything is done you should get a message like this in your console:\r\n\r\n```\r\nphp-1        | [31-Dec-2024 13:13:27] NOTICE: fpm is running, pid 1\r\nphp-1        | [31-Dec-2024 13:13:27] NOTICE: ready to handle connections\r\n```\r\n\r\nNow you can see the website in [http://localhost:80/](http://localhost:80/).\r\n\r\nMake sure that your port 80 is not already used by another service like Apache2, nginx etc.\r\n\r\nIf you want to change the port, you can change it from `.env` through the parameter `DOCKER_HTTP_PORTS` and `DOCKER_HTTPS_PORTS`.\r\n\r\nExample:\r\n```\r\nDOCKER_HTTP_PORTS=8080:80\r\nDOCKER_HTTPS_PORTS=443:443\r\n```\r\n\r\nThe env variables above are used to configure the ports within the docker-compose file. To understand how port configurations work in docker-compose, please take a look at the [official documentation](https://github.com/compose-spec/compose-spec/blob/master/spec.md#ports)\r\n\r\n**Note**: if you change this after the wordpress installation remember to change also the siteurl and related wordpress parameters in `wp_options` table.\r\n\r\nFinally, you can stop your containers with `Ctrl+C`\r\n\r\n### 3. Run WordPress in background\r\n\r\nYou probably don't want to have your terminal busy with the docker-compose logs, so you can run the containers in background mode:\r\n\r\n```bash\r\nnpm run docker:start:d\r\n```\r\n\r\n\r\n### 4. Update the containers\r\n\r\nIf you want to update the containers, you can run the following command:\r\n\r\n```bash\r\nnpm run docker:update\r\n```\r\n\r\nNOTE: wordpress files and database will be preserved. To update the wordpress version, you need install it manually through the admin panel.\r\n\r\n## Guides\r\n\r\n- [Connect the CMS to AzerothCore server and enable the shop](configure-cms.md)\r\n- [Connect the CMS to AcoreDocker and enable the shop](configure-acore-docker.md)\r\n- [How to install a theme](themes.md)\r\n\r\nUseful tutorials:\r\n- [How to restrict the access with credentials of a specific web page](https://ubiq.co/tech-blog/how-to-password-protect-directory-in-nginx/)\r\n\r\n### Work with local source files\r\n\r\nBy default, the source files of the wordpress installation are stored in a named volume. This is useful for production environments, but if you want to work with the source files locally, you can use a host folder instead of the named volume.\r\nYou can set the `DOCKER_WORDPRESS_SRC_PATH` variable in the `.env` file to the path of the host folder you want to use.\r\n\r\n```bash\r\nDOCKER_WORDPRESS_SRC_PATH=./srv\r\n```\r\n\r\n### Export and import source files from the named volume\r\n\r\n#### Export source files\r\n\r\nYou can export the source files of the current wordpress installation inside the /srv folder (backup) with the following command:\r\n\r\n```bash\r\nnpm run docker:src:export\r\n```\r\n\r\n#### Import source files\r\n\r\nYou can import the source files under /srv folder inside the /var/www/html container folder(restore backup) with the following command:\r\n\r\n```bash\r\nnpm run docker:src:import\r\n```\r\n\r\nIMPORTANT: this command needs to be executed with a bash-compatible shell and it will stop the php running container. After the import is done, you can start the container again.\r\n\r\n\r\n### AzerothCore integration\r\n\r\nACore CMS is designed to work with AzerothCore. The ac-network included in our docker-compose file is a network that connects the AzerothCore server with the CMS. This network can be flagged as external which means that you need an azerothcore server spinned up using its own docker-compose file to make it work. \r\nIf you are using azerothcore with the docker-compose file provided by us, you can running acore-cms with docker by setting DOCKER_AC_NETWORK_EXTERNAL to true in the .env file.\r\n\r\nPlease check this guide: [Connect the CMS to AcoreDocker and enable the shop](https://github.com/azerothcore/acore-cms/blob/master/docs/configure-acore-docker.md)\r\n\r\n### Multirealm support\r\n\r\nACoreCMS is designed to support multiple AzerothCore realms by creating new WordPress sites. Multi-site support is enabled by default, but it can be switched off before the installation if desired. This allows you to create multiple websites within a single WordPress installation. You can manage multiple AzerothCore realms by creating a new WordPress site for each realm.\r\n\r\nNOTE: AzerothCore plugin supports a single connection with a single character database, which is why it's important to create multiple sites such that each site has different character connections.\r\n\r\n#### Subdomain vs. Subpath\r\n\r\nYou can choose to create new websites either in a subdomain or a subpath. This is controlled by the `DOCKER_MULTISITE_USE_SUBDOMAIN` environment variable.\r\n\r\n- **Subdomain**: If you set `DOCKER_MULTISITE_USE_SUBDOMAIN` to `true`, new websites will be created in a subdomain (e.g., `site1.example.com`, `site2.example.com`).\r\n- **Subpath**: If you set `DOCKER_MULTISITE_USE_SUBDOMAIN` to `false`, new websites will be created in a subpath (e.g., `example.com/site1`, `example.com/site2`).\r\n\r\n## Nginx Configuration for Subdomain Support\r\n\r\nIf you choose to use subdomains, you need to create an Nginx configuration to support the subdomains. This can be done by setting the `DOCKER_CONF_NGINX_PATH` environment variable and creating your own Nginx configuration file.\r\n\r\nPlease follow this guide to configure Nginx for subdomain support: [Nginx Configuration for Multisite Support](nginx-for-multisite.md)\r\n\r\nBy following these steps, you can configure your WordPress installation to support multiple AzerothCore realms using either subdomains or subpaths.\r\n\r\n### CLI commands available\r\n\r\n```bash\r\nnpm run docker:install # install the docker containers\r\n\r\nnpm run docker:update # update the docker containers\r\n\r\nnpm run docker:start # start the docker containers in foreground\r\n\r\nnpm run docker:start:d # start the docker containers in background (deamon)\r\n\r\nnpm run docker:shell # open a bash shell inside the php container\r\n\r\nnpm run docker:remove # Remove all created containers\r\n\r\nnpm run docker:stop # Stop all running containers\r\n\r\nnpm run docker:logs # Show the logs of the running containers\r\n\r\nnpm run docker:db:export # Export the mysql database of the current wordpress installation inside the /data/sql folder (backup)\r\n\r\nnpm run docker:db:import # Import the sql files under /data/sql folder inside the mysql database of the current wordpress installation (restore backup)\r\n\r\nnpm run docker:src:export # Export the source files of the current wordpress installation inside the /srv folder (backup)\r\n\r\nnpm run docker:src:import # Import the source files under /srv folder inside the /var/www/html container folder(restore backup)\r\n\r\n```\r\n\r\n\r\n### Using docker-compose.override.yml to extend the default one\r\n\r\nIf the .env variables that we provide are not enough for your configuration needs, you can always use the official [\"docker-compose override\" strategy](https://docs.docker.com/compose/extends/).\r\n\r\nWe've provided a sample `docker-compose.override.yml` file within the `/data/` directory that includes a phpmyadmin container. You can copy/paste that file\r\nwithin the root directory of this project (it is git-ignored) and configure it as you prefer. Make sure to read the official docker-compose documentation first\r\nto exactly understand how to use it.\r\n\r\n\r\n## How to export/import database with the integrated tool\r\n\r\nAcore-cms integrates a script under `/apps/db_exporter` folder that helps you to export the entire database in a SQL dump format.\r\nThis script uses the /conf/dist/conf.sh file to configure the db credentials. If you need to change those configurations, you can just\r\ncopy/paste that file inside the /conf/ folder to override default values (the files in that directory are git-ignored).\r\n\r\nNOTE: by default sql files will be exported inside the /data/sql folder\r\n\r\n### database export\r\n\r\n`npm run docker:db:export`\r\n\r\n### database import\r\n\r\n`npm run docker:db:import`\r\n\r\n\r\n### Install acore-wp-plugin as standalone\r\n\r\nIf you want to install the acore-wp-plugin as a standalone plugin, you can follow the instructions in the [acore-wp-plugin repository](https://github.com/azerothcore/acore-cms-wp-plugin).\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazerothcore%2Facore-cms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazerothcore%2Facore-cms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazerothcore%2Facore-cms/lists"}