Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rsms/gitblog
Git-based blog/cms for PHP, meant as a replacement for Wordpress
https://github.com/rsms/gitblog
Last synced: 16 days ago
JSON representation
Git-based blog/cms for PHP, meant as a replacement for Wordpress
- Host: GitHub
- URL: https://github.com/rsms/gitblog
- Owner: rsms
- License: mit
- Created: 2009-06-22T22:01:13.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2010-09-07T19:32:10.000Z (about 14 years ago)
- Last Synced: 2024-10-14T18:42:55.784Z (29 days ago)
- Language: PHP
- Homepage:
- Size: 1.7 MB
- Stars: 163
- Watchers: 10
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gitblog
A git-based blog/cms platform for PHP, meant as a replacement for Wordpress.
Post-action hooks in git are used to manage an intermediate cache which consist only of structured data (no formatting), allowing dynamic presentation. This is one of the biggest differences tech-wise in comparison to Jekyll and similar tools.
Licensed under MIT means free to use for everyone. See [LICENSE](http://github.com/rsms/gitblog/blob/master/LICENSE) for more information.
## Features
- Fully git-based -- no mysql or similar involved
- Everything is versioned
- Themes
- No custom file formats for content (only [JSON](http://json.org/), [Markdown](http://daringfireball.net/projects/markdown/) (with [Markdown extra](http://michelf.com/projects/php-markdown/extra/)) and HTML)
- High performance
- Hierarchical comments with optional spam filtering based on [Akismet](http://akismet.com/)
- Remote editing (git push/pull)
- Wordpress import
- [Plugins](http://github.com/rsms/gitblog/blob/master/docs/plugins.md)(See section "Future features" for a list of possible future features)
## Installing & Getting started
Clone a copy of gitblog:
$ cd /path/to/my-blog
$ git clone git://github.com/rsms/gitblog.gitIf your web server is not running as yourself, your group, or the root user, you need to change owner. In this example `www-data` is the web server user. (You will still be able to edit the blog.)
$ chmod -R g+w .
$ sudo chown -R www-data .Open a web browser and point it to your `/my-blog/gitblog`. Enter email and your real name -- these will be used for commit messages. Also choose a good pass phrase which in combination with your email will grant you administration privileges in the web administration interface.
When you're done you should see a single "Hello world" post. Okay, all good.
> **What did just happen?** Gitblog initialized a git repository in `/path/to/my-blog` and added a few standard files and directories. If you ever would like to start over, just delete everything except the gitblog directory and visit `/my-blog/gitblog` in a browser again.
Let's try editing the hello world post:
$ $EDITOR content/posts/*/*-*-hello-world.html
Make some changes, be creative!
To demonstrate that the "working tree" is indeed a working area and not the live stage, reload your web browser and see that the "Hello world" post is still not modified.
> **Tip:** You can view your work in progress by being signed in and appending `?preview` to the url.
Now, let's commit the changes, pusing them live:
$ git commit -m 'Updated my awesome hello-world post' content
Reload your web browser and... voila!
> **Warnings when committing?** If you see `error: Could not access 'HEAD@{1}'` on stderr when committing, do not worry. This is an issue that currently do not affect gitblog, but we're looking into what causes it.
### Importing a Wordpress blog
If you have a Wordpress blog you would like to import, there is a built-in tool which does it for you! Just visit `/my-blog/gitblog/admin/import-wordpress.php` and follow the simple instructions.
## Documentation
The [docs directory](http://github.com/rsms/gitblog/tree/master/docs) contains a number of documents covering different parts of Gitblog.
## Requirements
- PHP 5.2 or newer (only standard modules are needed though)
- Git 1.6 or newer
- POSIX system## Further play
The gb-config.php file (present in your site root) contains site-specific configuration. A default gb-config.php file, as it looks just after a blog has been setup, contains only the minimum set of paramters. There are a bunch of other paramters which might do something you whish.
Have a look in the file `gitblog/gitblog.php` -- scroll down a few lines and you'll find a class called `gb` which houses documentation and a list of all available configuration parameters, as well as their default values.
## Known bugs and issues
- Post-hook system is a bit shaky because of the nature of itself. Running scripts directly instead of POSTing to a URL would be better but many systems does not have CLI PHP or have another version than the web PHP.
## Future features
### Work in progress
- Web administration
### Planned
- Pingback
- Search### Under consideration
- Configure what parts are versioned (e.g. disable versioning of comments)
- Alternate storage
- Caching (memcached, redis, etc)## Authors
- Rasmus Andersson <rasmus notion.se>
## History
A strangely cold morning in june 2009 Mattias Arrelid pressed the "Yeah, upgrade Wordpress". What happened seconds later still brings me down sometimes... *Every file* on our server--removable by the web server--was deleted in an instant. Many years worth of photos, audio recordings and not to mention the 30+ web sites which disappeared into the void of an unrecoverable ext3 file system.
We swore to never again use Wordpress and to do backups.
As we all like Git--this pretty little creation of the open source community--the blog tool of our future was of course based on Git. But after giving a few days of research we had not found any tool that suited our taste. (The closest match was [Jekyll](http://github.com/mojombo/jekyll/), however we wanted something more flexible, like Word...euhm). So what the heck, after all we are software engineers so why not write something ourselves?
Gitblog was born.