{"id":13475954,"url":"https://github.com/rsms/gitblog","last_synced_at":"2025-03-17T07:30:39.823Z","repository":{"id":66105777,"uuid":"233782","full_name":"rsms/gitblog","owner":"rsms","description":"Git-based blog/cms for PHP, meant as a replacement for Wordpress","archived":false,"fork":false,"pushed_at":"2010-09-07T19:32:10.000Z","size":1781,"stargazers_count":163,"open_issues_count":3,"forks_count":12,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-10-14T18:42:55.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rsms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-06-22T22:01:13.000Z","updated_at":"2024-06-24T18:08:59.000Z","dependencies_parsed_at":"2023-02-19T22:45:31.383Z","dependency_job_id":null,"html_url":"https://github.com/rsms/gitblog","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsms%2Fgitblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsms%2Fgitblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsms%2Fgitblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rsms%2Fgitblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rsms","download_url":"https://codeload.github.com/rsms/gitblog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221673719,"owners_count":16861692,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T16:01:25.074Z","updated_at":"2024-10-27T12:12:11.353Z","avatar_url":"https://github.com/rsms.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"# gitblog\n\nA git-based blog/cms platform for PHP, meant as a replacement for Wordpress.\n\nPost-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.\n\nLicensed under MIT means free to use for everyone. See [LICENSE](http://github.com/rsms/gitblog/blob/master/LICENSE) for more information.\n\n\n## Features\n\n- Fully git-based -- no mysql or similar involved\n- Everything is versioned\n- Themes\n- 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)\n- High performance\n- Hierarchical comments with optional spam filtering based on [Akismet](http://akismet.com/)\n- Remote editing (git push/pull)\n- Wordpress import\n- [Plugins](http://github.com/rsms/gitblog/blob/master/docs/plugins.md)\n\n(See section \"Future features\" for a list of possible future features)\n\n## Installing \u0026 Getting started\n\nClone a copy of gitblog:\n\n\t$ cd /path/to/my-blog\n\t$ git clone git://github.com/rsms/gitblog.git\n\nIf 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.)\n\n\t$ chmod -R g+w .\n\t$ sudo chown -R www-data .\n\nOpen 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.\n\nWhen you're done you should see a single \"Hello world\" post. Okay, all good.\n\n\u003e **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.\n\nLet's try editing the hello world post:\n\n\t$ $EDITOR content/posts/*/*-*-hello-world.html\n\nMake some changes, be creative!\n\nTo 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.\n\n\u003e **Tip:** You can view your work in progress by being signed in and appending `?preview` to the url.\n\nNow, let's commit the changes, pusing them live:\n\n\t$ git commit -m 'Updated my awesome hello-world post' content\n\nReload your web browser and... voila!\n\n\u003e **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.\n\n\n### Importing a Wordpress blog\n\nIf 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.\n\n\n## Documentation\n\nThe [docs directory](http://github.com/rsms/gitblog/tree/master/docs) contains a number of documents covering different parts of Gitblog.\n\n\n## Requirements\n\n- PHP 5.2 or newer (only standard modules are needed though)\n- Git 1.6 or newer\n- POSIX system\n\n\n## Further play\n\nThe 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.\n\nHave 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.\n\n\n## Known bugs and issues\n\n- 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.\n\n## Future features\n\n### Work in progress\n\n- Web administration\n\n### Planned\n\n- Pingback\n- Search\n\n### Under consideration\n\n- Configure what parts are versioned (e.g. disable versioning of comments)\n- Alternate storage\n- Caching (memcached, redis, etc)\n\n\n## Authors\n\n- Rasmus Andersson \u0026lt;rasmus notion.se\u0026gt;\n\n\n## History\n\nA 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.\n\nWe swore to never again use Wordpress and to do backups.\n\nAs 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?\n\nGitblog was born.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsms%2Fgitblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frsms%2Fgitblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frsms%2Fgitblog/lists"}