Packaging a C5 site with packages
Permalink
Hi,
We have a site that is created in Concrete5. It has its own theme and packages.
Our next project is to make/convert this site into a single package so that we can just simply install this site as a package. (representation below)
We are fairly new in Concrete5 that is why we are not certain the best approach on how to achieve this.
Any inputs/advice on how we can accomplish this task is highly appreciated.
Thanks.
We have a site that is created in Concrete5. It has its own theme and packages.
Our next project is to make/convert this site into a single package so that we can just simply install this site as a package. (representation below)
concrete5_main_site/site1 (package with its own theme) /site2 (package with its own theme) /site3 (package with its own theme)
We are fairly new in Concrete5 that is why we are not certain the best approach on how to achieve this.
Any inputs/advice on how we can accomplish this task is highly appreciated.
Thanks.
Hi tincanIT,
Thank you for posting your reply. It is really appreciated.
You have a point there, however, we need to have 1 single database so that we can easily manage the user and the main site is just a single concrete5 install.
Thanks
Thank you for posting your reply. It is really appreciated.
You have a point there, however, we need to have 1 single database so that we can easily manage the user and the main site is just a single concrete5 install.
Thanks
The missing information is 'Why do you want to install the site as a package?'
Do you just want to move it from a development system to a production server?
Do you want to use it as a starting point for a range of further development projects?
Do you want to replicate it into many different production systems?
All of the above have differences.
Do you just want to move it from a development system to a production server?
Do you want to use it as a starting point for a range of further development projects?
Do you want to replicate it into many different production systems?
All of the above have differences.
Hi JohntheFish,
Thank you for taking the time to respond to my post.
Below are the answers to your comments:
'Why do you want to install the site as a package?'
> The reason why we wanted to install the site as a package is because, the other business partners might install it locally. like if they only want the site1, then they can just install the package to their existing concrete5 site.
'Do you just want to move it from a development system to a production server?'
> It is already on production, but it is created as a normal concrete5 site with packages in it, blocks, single pages, etc..., just like any other normal concrete5 site. We wanted to convert this into just a package so that we can easily port it to other partners with concrete5 site.
'Do you want to use it as a starting point for a range of further development projects?'
> It is a starting point (for a site in a package). So basically, once we convert the first site ( which is a normal concrete5 site with packages in it, etc... ), we will then create the other 2 sites into a concrete5 package, instead of converting it into a normal concrete5 site.
'Do you want to replicate it into many different production systems?'
> yes
Hope I was able to provide further info to your comments.
Thanks.
Thank you for taking the time to respond to my post.
Below are the answers to your comments:
'Why do you want to install the site as a package?'
> The reason why we wanted to install the site as a package is because, the other business partners might install it locally. like if they only want the site1, then they can just install the package to their existing concrete5 site.
'Do you just want to move it from a development system to a production server?'
> It is already on production, but it is created as a normal concrete5 site with packages in it, blocks, single pages, etc..., just like any other normal concrete5 site. We wanted to convert this into just a package so that we can easily port it to other partners with concrete5 site.
'Do you want to use it as a starting point for a range of further development projects?'
> It is a starting point (for a site in a package). So basically, once we convert the first site ( which is a normal concrete5 site with packages in it, etc... ), we will then create the other 2 sites into a concrete5 package, instead of converting it into a normal concrete5 site.
'Do you want to replicate it into many different production systems?'
> yes
Hope I was able to provide further info to your comments.
Thanks.
First consideration when replicating anything containing marketplace packages is licensing. If you are using a paid addon, you need one license for each site on which it is used.
With that out of the way, there are several things you can do, depending on which of the above cases you are working to.
1. Create a complete zip of the entire site, all directories, files and database. Then use that to unzip and clone a new site. There are a few important considerations for both creating the zip and turning it into a clone, with plenty of info in the forums and howtos. You could also have a look at my Backup Voodoo addon. This is technically quite easy.
http://www.concrete5.org/marketplace/addons/backup-voodoo/...
2. Create a custom concrete5 installation with a 'staring point'. This would then install just like an initial c5 install, but with different content and some packages already bundled. This is technically complex to create and maintain, but entirely feasible once you have the expertise. There are some forum threads and howtos on this.
3. Create an installer package that you can add to any site to install a whole set of packages. You would probably want to wrap the contents into a queable job to prevent it running out of resources. You could also code this to create pages etc. This requires technical expertise and is very application specific. You won't find much on the forums or howtos about doing this.
4. If you are looking for a way to install and update bespoke packages, have a look at 'upload and install packages'. This is not a marketplace package, but can be downloaded from github at:
https://github.com/miguelgilmartinez/upload-and-install-packages-in-...
With that out of the way, there are several things you can do, depending on which of the above cases you are working to.
1. Create a complete zip of the entire site, all directories, files and database. Then use that to unzip and clone a new site. There are a few important considerations for both creating the zip and turning it into a clone, with plenty of info in the forums and howtos. You could also have a look at my Backup Voodoo addon. This is technically quite easy.
http://www.concrete5.org/marketplace/addons/backup-voodoo/...
2. Create a custom concrete5 installation with a 'staring point'. This would then install just like an initial c5 install, but with different content and some packages already bundled. This is technically complex to create and maintain, but entirely feasible once you have the expertise. There are some forum threads and howtos on this.
3. Create an installer package that you can add to any site to install a whole set of packages. You would probably want to wrap the contents into a queable job to prevent it running out of resources. You could also code this to create pages etc. This requires technical expertise and is very application specific. You won't find much on the forums or howtos about doing this.
4. If you are looking for a way to install and update bespoke packages, have a look at 'upload and install packages'. This is not a marketplace package, but can be downloaded from github at:
https://github.com/miguelgilmartinez/upload-and-install-packages-in-...
I am not 100% sure, but I will try to answer that.
To recreate a concrete5 site you'll need the file datas (concrete5-core / packages / themes etc.) and a Database.
So if you want to have more then one site or you want to swap fast between sites, the easiest solution would be useing multiple databases. So the content and the active theme can be changed fast by change the active datatabase used (DB infos are safed in "/config/site.php").
So if you have now your 3 sites "site1","site2" and "site3".
You could create three Databases called "site1", "site2" and "site3". now install concrete5 choose let's say the database "site1". After the installation finished, export all tables in the "site1" database and import/ copy them to the other databases "site2", "site3".
Install now a theme you like, it will only affect the Database "site1". Changing the active Database in "/config/site.php" to "site2" will show you a page where the theme is not installed. Now install an other theme, change some content. Now changing the active Database again, now to "site3" will show you again an empty page. Choose your third theme and add some content.
So anytime you change now the active Database in the "/config/site.php" will show you only the content and installed theme you have installed and created while the database was active:
Database "site1" showing content, theme of "site1"
Database "site2" showing content, theme of "site2"
Database "site3" showing content, theme of "site3"
Changing the information in the "/config/site.php" could be also made programmatically and could fasten up the changing of pages.
Hope this helps somehow.
Regards