Content server with Apache Jackrabbit (backend) and Nginx proxy (frontend)
- git
- Composer Dependency Manager
- [Docker][docker] (1.12+)
- [Docker-composer][docker-compose] (1.10+)
- Content Repository with Apache Jackrabbit
- Webpage server with Image resize
git clone [email protected]:gpupo/content-butler.git;
cd content-butler;
make setup;
Set passwords: default user is admin with admin password. You must edit htpasswd file with new values and that generator is a usefull tool.
Install dependencies
make install
Copy files to machines (optional)
docker cp config/empty.gif "$(docker-compose ps -q nginx)":/usr/share/nginx/html/empty.gif;
If previous repository exists (see backup):
docker cp var/opt/jackrabbit/repository "$(docker-compose ps -q content-server)":/opt/jackrabbit/;
docker cp var/opt/jackrabbit/workspaces "$(docker-compose ps -q content-server)":/opt/jackrabbit/;
docker cp var/opt/jackrabbit/version "$(docker-compose ps -q content-server)":/opt/jackrabbit/;
Up services
make start
Register node types
docker-compose run php bin/console doctrine:phpcr:register-system-node-types;
docker cp "$(docker-compose ps -q content-server)":/opt/jackrabbit var/jackrabbit;
add volume to docker file:
- $PWD/var/jackrabbit:/opt/jackrabbit
Export repository with Filesystem Copy:
docker cp "$(docker-compose ps -q content-server)":/opt/jackrabbit var/opt/;
Clone (SVN style)
docker-compose run java bin/clone var/dest_directory;
Example, load fixture:
docker-compose run php ./bin/console butler:import:directory Resources/fixture/ --splitter=Resources;
or
docker-compose run php bin/fixture
Load SVN style
docker-compose run php bin/console butler:import:directory var/clone;
Content Repository
- First, import fixtures;
- Check Jackrabbit dashboard
- Browse files and see some Sheeps
Nginx frontend
- Check if you keep seen sheeps
- Check if you can seen litle sheeps
- Browse default repository
composer require gpupo/content-butler
Versionable, Overshadow and Millenial Tree:
//...
use Gpupo\ContentButler\Helpers\DocumentHelper;
$documentHelper = new DocumentHelper($this->documentManager, $spliter = 'Resources', $versionable = true);
$document = $documentHelper->factoryDocument('var/file/path.jpg', 8068, true);
if ($this->documentManager->find(null, $document->getEndpoint())) {
throw new \Exception(sprintf('Node %s already exists', $document->getEndpoint()));
}
$output->writeln(sprintf('Saving node <info>%s</>', $document->getEndpoint()));
$this->documentManager->persist($document);
$this->documentManager->flush();
See