Get Started Quickly With Karl
Karl requires PostgreSQL be installed on your system. 9.4 or higher is required.
Create the user and database for the PostgreSQL/Relstorge based instance of Karl:
$ createuser -P karltest (Enter 'test' for password. Repeat. Answer 'n' to next three questions.) $ createdb -O karltest karltest
Later, if you want to blow away the database and start over:
$ dropdb karltest; createdb -O karltest karltest
Check out the buildout from github:
$ git clone email@example.com:karlproject/karl.git $ cd karl
Create a virtual environment and run the buildout:
$ virtualenv -p python2.7 . $ bin/python bootstrap-buildout.py $ bin/buildout
Karl is now built and ready to run. To start Karl and some support processes:
You can see what's running with:
$ bin/supervisorctl status
At least the karl process should be running.
You'll need to apply some Postgres schema updates with:
$ bin/pgevolve -l
Visit the test instance of Karl at:
Default login and password are admin/admin.
To shutdown all of the processes, use:
$ bin/supervisorctl shutdown
Localization of date formats
To use gloablize, it's best to serve the date to the template in one of two formats: 'dd/mm/yyyy' for dates and 'dd/mm/yyyy hh:mm:ss' for dates with times. In the template, the date has to be by itself inside a tag and must use one of the globalize classes:
- globalize-short-date: MM/dd/yyyy (02/15/2012)
- globalize-long-date: MMMM dd yyyy (February 15 2012)
- globalize-full-date: dddd, MMMM dd yyyy HH:mm (Wednesday, February 15 2012 12:00)
- globalize-date-time: M/d/yyyy HH:mm (2/15/2012 12:00)
- globalize-calendar-full: dddd M/d (Wednesday 2/15)
- globalize-calendar-abbr: ddd M/d (Wed 2/15)
- globalize-calendar-long: dddd, MMMM d (Wednesday, February 15)
- globalize-calendar-list: ddd, MMM d (Wed, Feb 15)
Globalize will convert the date to the proper format for the current culture on page load. Default culture is en-US.
As an example:
Will display an h3 title with the date 'February 15 2012'. The same date will show up as '15 February 2012' if the user has 'europe' as date format default.
To hack on some source code:
$ bin/develop co osi $ bin/buildout -No
Source code will now be in src/osi.
When playing with the code it's usually very useful to have some sample content added to the site, so that it looks a bit closer to a real site. The karlserve command can be used for that:
$ bin/karlserve samplegen
Using this command 10 sample communities will be added to the site, each with their own wikis, blogs, calendars and files.
The samplegen command does not create intranets, so they need to be added manually if they are required. To do that visit your instance at:
Fill the form to add a community, making sure the 'intranets' checkbox is selected. An 'intranets' tab will be visible on the community pages after that, from which new intranets can be added.
If you need to work with versioning, you need to initialize the repository before the versioning UI will show up. This is done with:
$ bin/karlserve init_repozitory pg
If you are working on frontend static assets (JS, CSS) then you need to re-build the "compiled" JS and CSS:
- cd src/karl
- npm install
- node_modules/.bin/gulp install