{"id":19583830,"url":"https://github.com/bodsch/coremedia-environment","last_synced_at":"2026-05-17T04:34:31.719Z","repository":{"id":87294600,"uuid":"216236333","full_name":"bodsch/coremedia-environment","owner":"bodsch","description":"create an simple, local coremedia infrastructure with terraform and ansible","archived":false,"fork":false,"pushed_at":"2020-03-09T06:48:46.000Z","size":30513,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-09T05:38:30.118Z","etag":null,"topics":["ansible","coremedia","infrastructure","infrastructure-as-code","terraform"],"latest_commit_sha":null,"homepage":"","language":null,"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/bodsch.png","metadata":{"files":{"readme":"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":"2019-10-19T16:28:01.000Z","updated_at":"2020-03-09T06:48:48.000Z","dependencies_parsed_at":"2023-03-13T19:30:49.543Z","dependency_job_id":null,"html_url":"https://github.com/bodsch/coremedia-environment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodsch%2Fcoremedia-environment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodsch%2Fcoremedia-environment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodsch%2Fcoremedia-environment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bodsch%2Fcoremedia-environment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bodsch","download_url":"https://codeload.github.com/bodsch/coremedia-environment/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240850751,"owners_count":19867922,"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":["ansible","coremedia","infrastructure","infrastructure-as-code","terraform"],"created_at":"2024-11-11T07:45:01.567Z","updated_at":"2026-05-17T04:34:26.699Z","avatar_url":"https://github.com/bodsch.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Infrastructure for an CoreMedia Setup\n\n**The repository is not offered by [CoreMedia](https://www.coremedia.com/de/) or my employer ([Tallence AG](https://www.tallence.com))!**\n\n**The information or code found here is created by me in my spare time!**\n\n---\n\nThis repository is intended to serve as a demonstrator for the automated provision of a CoreMedia system.\n\nStarting with the development of the infrastructure via Terraform, to the roll-out of the CoreMedia software via Ansible and the implementation of a monitoring system.\n\nThe demonstrator and the infrastructure used here is based on my past experience with CoreMedia systems (among others for stern.de) and my personal recommendation.\n\nIt will therefore differ from development systems and possibly also from an already existing infrastructure.\n\nIf you have any questions, please do not hesitate to contact me if you have a suitable timeframe.\n\nFor further information or problem analyses, both CoreMedia and my employer - or other specialized companies - are at your disposal.\n\n---\n\n**I reserve the right to block or delete this repository at any time.**\n\n---\n\n## setup\n\nMy recommendation for a staging CoreMedia setup is as follows\n\n\n| Virtual Machine         | Resources                    | Services    |\n| :------                 | :-----------                 | :---------- |\n| **database backend**    | 1 vCPU, 1 GiB RAM, 8 GiB HDD | mysql, mongodb |\n| **database frontend**   | 1 vCPU, 2 GiB RAM, 8 GiB HDD | mysql |\n| **backend**             | 2 vCPU, 4 GiB RAM, 8 GiB HDD | content-management-server, content-feeder, user-changes, elastic-worker, cae-preview,\u003cbr\u003e studio, caefeeder-preview, workflow-server, solr |\n| **frontend**            | 2 vCPU, 4 GiB RAM, 8 GiB HDD | master-live-server, caefeeder-live, solr-master |\n| **delivery**            | 1 vCPU, 2 GiB RAM, 8 GiB HDD | replication-live-server, cae-live-1, cae-live-2, cae-live-3, solr-slave |\n\n![setup](setup.png)\n\n## security\n\nFor security reasons, the connections between the different environments and the VMs have been reduced to a minimum.\n\nIn addition, communication between the VMs on the VMs is restricted using iptables.\n\nMy recommendation is also to equip all VMs with an additional network card. This should be used for communication between the CoreMedia Services.\n\n## scalability\n\nThe only application that can sensibly handle more traffic is an additional CAE.\n\nHowever, for performance reasons, an RLS can only serve a limited number of CAEs.\n\nIn the case of excessive and high-frequency traffic, an additional VM with an RLS and additional CAEs can be included in the setup.\n\nWith high-frequency websites, you should consider whether including an external CDN in the architecture could be a worthwhile investment.\n\n\n## repositories\n\nI separated the repositories a bit and put them together in a GitLab group.\n\n### infrastructure\n\n[build an local infrastructur](https://gitlab.com/coremedia-as-code/infrastructure)\n\n### deployment\n\n[deployment of CoreMedia components](https://gitlab.com/coremedia-as-code/deployment)\n\n### monitoring\n\n[deployment of an Monitoring system](https://gitlab.com/coremedia-as-code/monitoring)\n\n\n## quick start\n\n**For more detailed information, please read the documentation for the individual subrepositories!**\n\n**It is still assumed that all dependencies are resolved!**\n\nHow the dependencies are resolved can be read in the corresponding repositories.\n\n### infrastructure\n\n```\n$ mkdir ~/coremedia-automation/{infrastructure,deployment,monitoring}\n$ cd ~/coremedia-automation/infrastructure\n# git clone https://gitlab.com/coremedia-as-code/infrastructure/terraform.git\n# git checkout provider/kvm\n# terraform init\n# terraform apply\n\n```\n\n### CoreMedia deployment\n\n```\n# cd ~/coremedia-automation/deployment\n# git clone https://gitlab.com/coremedia-as-code/deployment/ansible-deployment.git\n# ansible-galaxy install -r requirements.yml\n# ansible-playbook --inventory hosts --extra-vars @coremedia-config.yml --vault-password-file vault/ansible-vault.pass prepare.yml\n# ansible-playbook --inventory hosts --extra-vars @coremedia-config.yml --vault-password-file vault/ansible-vault.pass deployment.yml\n# ansible-playbook --inventory hosts --extra-vars @coremedia-config.yml --vault-password-file vault/ansible-vault.pass content-import.yml\n```\n\n### Monitoring\n\n```\n# cd ~/coremedia-automation/monitoring\n# git clone https://gitlab.com/coremedia-as-code/monitoring/ansible-deployment.git\n# ansible-galaxy install -r requirements.yml\n# ansible-playbook --inventory hosts --vault-password-file host_vars/monitoring.cm.local/ansible-vault.pass monitoring.yml\n```\n\nAfter this, we can use the standard CoreMedia [Overview](https://overview.cm.local) with shortlinks.\n\nOr for the Monitoring with [Grafana](https://monitoring.cm.local/grafana/) and [Icinga2](https://monitoring.cm.local/icinga).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodsch%2Fcoremedia-environment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbodsch%2Fcoremedia-environment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbodsch%2Fcoremedia-environment/lists"}