Username Password : Remember?

Sharedlog CMS project

Official page of the Sharedlog.com - an open source content management (CMS) project

Blog Post
Wed Jan 21 2009

It should work by email now

Sat Nov 8 2008

There are 2 blogs that we maintain:

  1. Developer blog posts related to development of this project
     
  2. Webmaster's blog posts about this project and programming tips and tricks
Tue Oct 28 2008

[Discussion] takes place on mailing lists


Users list (questions about how to install, setup, configure)


Developers list(for developers and anyone who is interested in developing or contributing the code)


Feature requests (for submitting feature requests and ideas for new features as well as discussing these topics)



The mailing lists can also be accessed via nntp news reader like Outlook Express or Mozilla Thunderbird. Messages posted in mailing list will appear in these newsgroups and vise versa.


You must be a registered member on sharedlog.com (register for free) and then use your username and password in your newsreader settings in order to be able to post via newsgroups. You don't have to login to just read the newsgroups.


The nntp news server is nntp://sharedlog.com


Tue Oct 28 2008

The latest source code is available on our anonymous SVN server

 

http://dev.sharedlog.com/svn/

 

You can checkout with svn client or use web-based svn access

Please note: the svn contains many files that are NOT even used in the distribution like varios test files, experimental files and files used for creation of pear packages.

If you want to get ONLY the necessary files, then the best way to get them is to download the releases from our pear server. Just add our pear server to your pear program. Our pear server is located at pear.sharedlog.com

 

 

Tue Oct 28 2008

The latest development version is always accessible here:

http://www.sharedlog.com

You are encouraged to register and just use the site for blogging, image sharing, etc.

Wed Oct 29 2008

Sharedlog CMS Features


It"s written in php and makes use of several (many) PEAR classes and some a few external command line programs. Some features rely on Apache modules and some even require that Apache is a version 2.2.X (currently only for webdav). If you want to incorporate the Instant messenger, we currently have instructions for using OpenFire XMPP server, which in turn requires Java.

Java is also required if you want to use document converter feature — to convert from MS word document, for example.



Current features:


  • Templates for everything. Site admin can edit html templates without touching the php code.

  • Wysiwyg ajax-based template/style editor (demo here). Each user can style his own blog. Basically user edits appearance of his blog using a visual web-based style editor which will create and save user"s css file. This is a very virsatile way to create a unique appearance of a blog.

  • Wysiwyg blog post editor.

  • Very scalable — as your site grows it will be easy to add additional servers to host more images or to add separate server for video streaming, a separate for email hosting, a separate (can be multiple) servers for database hosting. Also hosting thumbnails, web-sized images and original images can be done on separate servers and even sread over multiple servers.
    A search/indexing can also be done on a separate server.
    Each of these modules can also be spread over multiple servers. For example you can use 2 servers for serving web pages, 2 (or more) servers for database, 2 (or more) servers for video streaming, up 2 64 servers to store search index and to run site search.

  • Multi-Language support. Easily add new language sets. In theory every text string you see on the site can be stored in Language database and can be translated into other languages. Even emails that we send like registration, password change etc... can be sent in different languages.

  • Upload up to 10 images/videos via web form

  • Users can also upload sets of images in zip, rar, tar, gz, bz2 formats. Archives are unpacked and processed. If archives have a folder with images, then an album will be created with the name of the folder. If album with this title already exists, the images will be added to existing archive, otherwise album title will be the same as archive"s title

  • The appearance of album can be set in user preferences, currently 3 different templates: image of a folder, a stack of photos and a stack of polaroids.

  • Images are automatically resized and thumbnails are created. Also a user can select and option to add a watermark (like user"s own copyright notice) to the bottom of every image

  • The originals are saved to special folder /originals/

  • Many image formats are supported and if the image is not in a "web-friendly" format like in .bmp or .tiff, then it will be converted to the jpg format for displaying on web page.

  • EXIF data is extracted from jpegs and tiff and stored in the database and can be displayed

  • Some image editing is possible online

  • Support for video files. User can upload video file in most of the popular video format like .mp4, .mov, .mpeg, .avi Video file will be automatically encoded for streaming and will be available for streaming from the server. The open source streaming server is required for this.

  • Spell checker for blog posts and comments

  • BBCode parser for adding blog posts and comments.

  • User can move images from album to album, rotate image or delete it

  • User can edit title of album and its description

  • User can add blog post to personal page

  • Personal pages can be setup to appear like username.mainsite.com or mainsite.com/user1234/
    it"s up to admin of the site if he wants to use sub-domains or directory to point to user blogs.

  • User can upload documents in MS Word, OpenOffice, WordPerfect, AbiWord, HTML or text format and it will be converted into html and added to user"s personal page (blog). If document contains images, they will also be extracted and saved on the server (except for WordPerfect, for which we don"t have image extractor)

  • NNTP newsgroups support. NNTP-to-Web interface with support for binary attachments.

  • Images, files in zip and other archives can also be uploaded via FTP (pureftp must be installed and configured on the server)

  • Images and archives can be sent to the server by email. Each user can get special email address for submitting emails, so no user does not have to supply username/password anywhere in the email. No special email setup is required. It can even be on a different server. The script checks emails via pop3 protocol using php"s imap features.

  • Uploads can also be made via webdav – just map a url as a internet folder on your Windows XP or Vista and just drag-drop images, zips, docs there and they will be added to your blog/album
    For this feature to work Apache must be 2.2.X with mod_dav_svn and optionally with ssl support for secure webdav over ssl.

  • Instant messenger with video chat can be easily setup to use exising user accounts, so users can chat with each-other in real time and can chat with external IM systems like Yahoo, Google, AOL, MSN
    This requires a setup of OpenFire XMPP server, which is also an open source and easy to setup.

  • Blog posts can also be sent to users other blogs like on blogger.

  • Trackback enabled comments.

  • Users can rate/comment on images.

  • User can upload personal avatar. It will also be resized to correct size.

  • Support for swf flash uploads. This can be useful for uploading instructional flash clips like tutorials for software or whatever you want like cool animations or catroons. An HTML file will be automatically created for uploaded flash file.

  • User"s location is determined by IP address and recorded into the database during registration and also used when sending error messages to admin.

  • Admin interface for site administration.

  • Web-based installation of updates, and web-based installation of optional modules (demo here). This is a very powerfull feature — no knowledge of php is required, no downloading of php scripts at all! Just click "upgrade" link in admin interface and your server will download, install and configure the latest version.




Features under development (in the order of sooner to later)

  • Replace current wysiwyg post editor with YUI-based wysiwyg editor.

  • Replace web-based progress bar for uploads with YUI-based upload manager

  • Replace almost all currnt javascripts with YUI-based scripts. Basically we plan to use YUI library for all our javascript needs. Yes, YUI is very good.

  • Add more ajax-based features like inline post editing, EXIF data view

  • Add keyboard shortcuts for some pages like "next" "previous" "album"

  • Writing of search module with support of the per-blog search

  • Switch account feature so that a user can have more than one account and once logged-in, can switch between accounts.

  • Better administration of comments so a blog user can allow/disallow comments per blog entry or image/video, can close comments and delete existing comment.

  • Better admin features for site admins.

  • Registrationless settings. What this means is that it will be possible for any user, even non-registered to set some settings like adding a blog-article to "my favorites" or personalize a home page. This will be based on cookies of cause.

  • Screen capture module so we can automatically create "site preview" for any link found in the post. User can also add a link to his favorite site and our server will automatically make a screenshot of the website.

  • Support for "tags" — tag images, tag videos, tag posts

  • Per-user categories — each user will be able to create his/her own category that will not be visible on other users" pages. There will still be several default categories.

  • Automatic keyword extraction (for english only text for now). When user submits a new post a program will automatically extract important keywords and records them as "tags" for that post.

  • Creation of slide shows from uploaded album. Totally in Ajax with drag/drop method of selecting and sorting of images.

    Slide show will be saved in SMIL language file. SMIL can be accessed with RealPlayer. No special server is required to serving slide shows, but more features will be available if you have streaming server. We plan to use HelixDNA server to streaming. Slide shows can also have background music and audio comments for each image. Of cause transitional effects are also selectable by user. <- this was already done, but needs some changes. Also this feature currently requires a php-perl module. This module lets programmer use PERL from inside php.
    This module requires a Helix server to stream the SMIL files.

  • Upload of blog posts by Instant messenger. Suppose you chat online and have some thought that you want to quickly add to your blog. Just type a message and send it to "special" user account, which will actuall will be a program that will post the message to your blog.

  • Users can create nntp newsgroup for their own blog. Basically blogs will be accessable as nntp newsgroup but ONLY replies will be allowed to be posted via nntp client. So users can read blog entries as top-level posts and the reply to them just like it was a regular NNTP post.



  • Similar to NNTP newsgroup a blog can be turned into an email list where subscribers will be able to post comments to blog entry as a regular reply.

  • Users can have their blog posts also sent to some public newsgroups and have replies posted to those groups also appear on their blog as replies (full synchronization)

  • Support for flickr feeds and also upload user"s images and alboms to flickr account.

  • Support for openID — both openID server and openID consumer will be implemented.

  • Creation of "interest groups"

  • Support for some popular "microformats" that are popular with social media.

  • Support for "friends" management

  • Feature to allow user to change his/her username. This one is a bit tricky because the username is also a part of blog"s url, so if a user changes name from mike to nick then the website mike.ourdomain.com will no longer exist. We will have to come up with a smart way to deal with this situation and "remember" all the renamed usernames so we can redirect visitors to the new url.

  • Feature to allow user to change email address — we will have to go through the email verification again.

  • Feature to add "weight" to blog posts or albums or to any other resource like image or video.
    With a "weight" the older post with higher "weight" will still appear above the more recent post.
    With this feature a user can set the custom order of posts on the page, regardless of the date/time of post. This is similar to making a thread "sticky" on some forums but more flexible.

  • Support for more blogging APIs.

  • RSS feed creation

  • RSS feed parsing

  • WebCam recording. Users will be able to add video clips that they make with their webcam.

  • Audio recording. Users can add audio commentary for thier images or just add an audio post to their blog by using computer mic or by uploading an audio file in .wav or .mp3 format.

  • Support for XML+XSLT based templates. Is this important?

  • Special support for trimmed-down version of the site for mobile devices (less html)

  • Support for IP telephony like post by phone and phone call notifications. (way later)


Requirements and optional programs

  • Database backend – MySQL. We are using MySQL 5.0.27 but it will probably work even with version 3.2

  • php 5.2.X is preffered. Must have imap, libxml2, zip, and magickwand support (--with-imagemagick). We don"t have support for GD because we decided from the start to use ImageMagick for image processing. It supports more image formats and php magickwand functions are very easy to use, plus some external commands from ImageMagick can also be used like to check the image to see if image file is corrupted.

  • php 5.2.X compiled as cgi for backend scripts.

  • Pecl extensions: perl, zip, uploadprogress, rar, php-libclamav (if you want to check for viruses in uploaded files)

External programs (none are 100% required but some extra features will not work without them):

  • Pureftp for ftp upload backend.

  • Postfix with mysql support for supporting email aliases table. Another mail transport is also file as long as it has mysql support. (for upload by email function)

  • Any pop3 server. (for upload by email function)

  • AbiWord for converting documents to html, also can convert docs to pdf really well, can also be used for converting OpenOffice files to html, but we preffer odf2html for that; can also convert WordPerfect docs to html but we preffer wpd2html for that.

  • jpegtran tool is also helpful to have but not necessary. With jpegtran you can rotate and resize jpegs lossless mode, unline with ImageMagick where jpeg rotation is not lossless.

  • Swftools for generating html code for swf files (not 100% necessary, as html can also be generated by hand)

  • Clamav antivirus for scanning uploads for viruses. Not 100% necessary but helpful. If clamav is installed it is also recommended to install php-libclamav so that virus checks can be made directly from php.

  • Apache 2.2.X (2.2.4 is recommended as of now) as it has the proper support for webdav for most webdav clients.

  • Subversion 1.4.X (Berkeley support is not necessafy) This is only if you want webdav upload feature.

  • mod_dav_svn for apache (for upload via webdav)

  • mod_authnz_external for apache to authenticate logins agains mysql database. There are many different mysql authentication modules for Apache, but we like mod_authnz_external since it"s very easy to implement. (for upload via webdav but can also be used to allow access to some directory for registered users only)

  • For encoding video files we will most like be using tools from ffmpeg and possibly helix producer from real networks.

  • For DNS server we will probably use myDNS server, but not sure yet.

  • For virtual hosting we will use some type of mysql enabled virtual hosting module, not sure yet.

  • Memcached is very helpful to have and will possibly be a requirement in the future versions. Php should be compiled with –enable-memcache and then pecl memcache module must be installed.

  • Java 1.4 or better in you want to install instant messaging server. It"s also possible that we will have some other java programs in the future, so having Java installed is a good idea.

  • Xvfb for Linux server (for doing screen capture and thumbnail shots of websites, not yet implemented)




Wed Oct 29 2008

About this project


Sharedlog.com is a blogging, image gallery, and video streaming project, all in one.

It"s a content management but with features that are not very common to other content management systems.


The main phylosophy behind this project:

1) Support as many formats as possible. This includes allowing users to upload MS Word, WordPerfect, OpenOffice, Kword, AbiWord, html, text, LaTex, PDF, DocBook file, also allowing to save any blog post into most of these formats. For image uploads support as many formats as possible including png, jpeg, tiff, flashpix (dead format, but some fossils still known to exist on some user"s computers), gif, svg, and a few more. For video uploads support at least these video formats: mpeg1, mpeg2, mpeg4, .mov, .avi, .flv, .qt, .3pg


2) Support as many access and upload methods as possible. This includes uploads via web form, via ftp, via email, via webdav (called network folder in Windows), send posts from Instant Messenger, post by phone, post by fax (maybe), post be webcam, post from nntp newsreader. Also access blogs and images and videos from different browsers, including mobile browsers, maybe also be webfolders, how about reading new posts and images by email, various encoding of videos for different audience (mobile, low bandwidth, high bandwidth)


It can also be used for offering ready-to-use blog to users, where users will be able to create their own accounts and even have their own domains line username.sharedlog.com or even their own top level domains. This means that we will have own own DNS server and our database-based virtual hosting.


Make sure to check out the current features and planned features


We are also looking for developers to work on further development of this project.




Tue Oct 28 2008

 

Installation of sharedlog package is done with pear installer.

 

This means that downloading and installing sharedlog cms is done from the command line in 3 steps.

Make sure you have pear installed and configured already.

 

If you new to pear, read the instuctions here

 

It's easy to install pear as a root user but ff you don't have a root account on the server you can still install local copy of pear as a regular user, as long as you have a shell access. Here are the instructions

One important thing: the sharedlog package uses the pear MDB2 package for database connections and MDB2 needs a database-specific driver to be installed. This means that since we don't know which database you are using (sharedlog will work with any database supported by MDB2, including mysql, postgresql, orable, ibase, sqlite) you will have to install the appropriate driver yourself. But this is easy with pear installer, just type

 

From command line type

# pear channel-discover pear.sharedlog.com  (flash demo here)

Next install the SHAREDLOG package with all dependencies like this:

# pear install sharedlog -o sharedlog/SHAREDLOG (flash demo here)

If you get error while pear installs the required pecl packages you may have to install them yourself. Sharedlog requires pecl packages: rar and optionally uploadprogress and pecl_http

You install pecl extensions by typing: (for example)

# pecl install rar

# pear install MDB2#mysql (this is in case you using mysql database)

This will install SHAREDLOG package, which includes core classes

Next, install the SHAREDLOG_WWW package, which is a front-end for the sharedlog. The reason we've made it a different package is because it will be easier to upgrade the front-end when the new versions is available.

To install the SHAREDLOG_WWW just type:

# pear install sharedlog/SHAREDLOG_WWW (flash demo here)

 

After the installation has finished you are ready to setup a database connection and create an initial admin account.

For this you need to make sure you have already created a database (new empty database) and know the database name and username and password for this database.

In your browser you should be able to open a newly installed file /dbsetup.php  (flash demo here)

Just enter some basic info in the form, and it will create all the necessary tables and populate the database with necessary data. Your new admin account will also be created and password will be emailed to you.

You can then start using the new website by creating new accounts, uploading images, adding new blog posts, etc.

Afterwards you can just delete the dbsetup.php file or you can leave it. It's not a security threat to leave dbsetup.php on the server. It cannot be used after the database has already been setup.