Simple and fast databaseless PHP blogging platform, and Flat-File CMS
HTMLy is an open source Databaseless Blogging Platform or Flat-File Blog prioritizes simplicity and speed written in PHP. HTMLy can be referred to as Flat-File CMS either since it will also manage your content.
You do not need to use a VPS to run HTMLy, shared hosting or even free hosting should work as long as the host supports at least PHP 5.3.
Demo
Visit HTMLy demo as blog.
Features
Requirements
HTMLy requires PHP 5.3 or greater, PHP-XML package, PHP-INTL package, and PHP-ZIP package for backup feature.
Installations
Install HTMLy using the source code:
htmly
.https://www.example.com/install.php
and if in subdirectory visit https://www.example.com/htmly/install.php
.install.php
still exist.Online install
Install HTMLy without downloading the source code and use the online installer:
online-installer.php
from the latest release
https://www.example.com/online-installer.php
or if in subdirectory visit https://www.example.com/subdirectory/online-installer.php
.online-installer.php
and install.php
still exist.Configurations
Set written permission for the cache
and content
directories.
In addition, HTMLy support admin user role. To do so, simply add the following line to your choosen user:
role = admin
Users assigned with the admin role can edit/delete all users posts.
To access the admin panel, add /login
to the end of your site's URL.
e.g. www.yoursite.com/login
Lighttpd
The following is an example configuration for lighttpd:
$HTTP["url"] =~ "^/config" { url.access-deny = ( "" ) } $HTTP["url"] =~ "^/system/includes" { url.access-deny = ( "" ) } $HTTP["url"] =~ "^/system/admin/views" { url.access-deny = ( "" ) }Nginxurl.rewrite-once = ( "^/(themes|system|vendor)/(.)" => "$0", "^/(..php)" => "$0",
# Everything else is handles by htmly "^/(.*)$" => "/index.php/$1" )
The following is a basic configuration for Nginx:
server { listen 80;Making a secure passwordserver_name example.com www.example.com; root /usr/share/nginx/html;
access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log error;
index index.php;
location ~ /config/ { deny all; }
location / { try_files $uri $uri/ /index.php?$args; }
location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Passwords can be stored in username.ini
(where "username" is the user's username) in either plaintext, encryption algorithms supported by php hash
or bcrypt (recommended). To generate a bcrypt encrypted password:
$ php -a
> echo password_hash('desiredpassword', PASSWORD_BCRYPT);
This will produce a hash which is to be placed in the password
field in username.ini
. Ensure that the encryption
field is set to password_hash
.
Contribute
Contributors
Copyright / License
For copyright notice please read COPYRIGHT.txt. HTMLy is licensed under the GNU General Public License Version 2.0 (or later).
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.