This is the SilverStripe add-ons listing site project. It aggregates SilverStripe packages from Packagist.
cd public && composer install --no-dev
- Install and run dependencies (see below)
- Configure elastic search in
mysite/_config/injector.yml
- Run all tasks to populate database (see below)
While you can set up your dev environment as usual, its likely differing from the production configuration. In order to stay as close as possible to the
IMPORTANT: These instructions currently assume that you have access to resources internal to SilverStripe Ltd. We're working on opening those up.
First off, download and install some dependencies:
- Puppet, as well as
- VirtualBox
- Vagrant
Then run through the following shell script:
vagrant box add squeeze http://tools.silverstripe.com/vagrant/squeeze.box
sudo chown whoami
/Users/whoami
/.vagrant.d/insecure_private_key
git clone ssh://git@gitlab.silverstripe.com:2222/silverstripe-infrastructure/puppet-modules.git puppet (cd puppet && ./checkout)
vagrant up
Now you should be able to browse the website under http://localhost:3000
,
and access the VM on SSH via vagrant ssh
. To shut down the VM again, use vagrant halt
.
Elastic search is used to provide add-on package indexing and searching. If a
local installation of elastic search is used, the following configuration can be used
in mysite/_config/injector.yml
:
Injector:
SilverStripe\Elastica\ElasticaService:
constructor:
- %$Elastica\Client
- addons
You should run the elastic search reindex task to create the mappings after installation.
A PHP implementation of resque
is used to provide background building of add-ons
details. As such an installation of redis must be present. If you wish to use a
remote server, you can configure the ResqueService
constructor parameters to
specify the backend using the injector system (see mysite/_config/injector.yml
).
To actually run the background tasks you need to spawn worker processes. On a production server this should be set up using a process monitor such as god. A new worker process can be spawned using the following command in the webroot:
./framework/sake dev/resque/run queue=first_build,update
sake dev/tasks/UpdateAddonsTask
: Runs the add-on updater.sake dev/tasks/UpdateSilverStripeVersionsTask
: Updates the available SilverStripe versions.sake dev/tasks/SilverStripe-Elastica-ReindexTask
: Defines and refreshes the elastic search index.sake dev/tasks/BuildAddonsTask
: Manually build addons, downloading screenshots and a README for display through the website. There's no need to set up a cron job for this task if you're using the resque queue.sake dev/tasks/DeleteRedundantAddonsTask
: Deletes addons which haven't been updated from packagist in a specified amount of time, which implies they're no longer available there.
The site uses LESS for compiling CSS. One way to compile it is through Grunt, which requires you to install NodeJS first.
npm install -g grunt grunt-cli npm install --save-dev
To compile, run:
grunt less
To watch for file changes, run:
grunt watch