Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
message board prototype... see link for live demo http://hike.qdb.us/
- Perl 99.5%
- Other 0.5%
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
hike ==== a prototype message board system Testing Locally =============== clean-build purges cache/ removes html/*.html removes config/template/* calls build.pl open-database opens index.sqlite3 in sqlitebrowser for browsing indexed data build.pl rebuilds website, first looking for new messages in access log access.pl index.pl generate.pl access.pl reads access log from the web server and parses actions submitted by clients. common log format should be symlinked to log/access.log -or- change the path in in config/admin/access_log_path index.pl generates sqlite database called index.sqlite3 contains data from html/txt/, log/, and config/ generate.pl generates static website using the sqlite database, and config/ also generates some non-static elements such as .htaccess, PHP files lighttpd.pl starts a local instance of lighttpd to serve the website http://localhost:3000/ lighttpd.conf, included gitflow.pl runs access.pl looks for any changes in html/txt/ if any changes, "fills in" sqlite db-index and then html/ validate.pl (in the future will) compare the results of index.pl+generate.pl vs gitflow.pl installation on GNU platforms ============================= for devs to check out/play around ================================= 1. install pre-requisites 2. clone repository 3. ./build.sh 4. ./lighttpd.sh 5. ./build.sh as necessary to update the site for local testing ================= 1. install lighttpd 2. use included lighttpd.conf or run ./lighttpd.pl for deployment using apache or lighttpd ======================================= 1. symlink log/access.log to wherever your access log lives 2. symlink html root to html/ 3. add ./cron.sh to your crontab, set to run as often as you like requirements ============ * Perl 5.010+ * zip * gpg * git * URI::Encode * URI::Escape * HTML::Parser * Digest::MD5 * Digest::SHA1 * DBI * SQLite Debian, Ubuntu, and other apt-based syst ======================================== sudo apt-get install uri-encode-perl libany-uri-escape-perl libhtml-parser-perl libdbd-sqlite3-perl libdigest-sha-perl sqlite3 lighttpd gnupg gnupg2 Redhat, Centos, Fedora, and other yum-based =========================================== sudo yum install perl-Digest-MD5 perl-Digest-SHA perl-HTML-Parser perl-DBD-SQLite perl-URI-Encode perl-Digest-SHA1 sqlite3 lighttpd gnupg gnupg2 known issues ============ sometimes new entries stop being picked up from access.log and/or written to the access log by web server the solution is to rm or cycle the access log and restart the web server the cause is still unknown to me, probably file is too big just a basic prototype, not optimized to scale, and still a work in progress all 40-character-long hex-looking strings are assumed to be existing items linked in the html-ized posts, even if they do not exist voter id should (debatable) be generated once per page, but is currently generated once per item. when an encrypted message has multiple recipients, only the first is used. terminology =========== author = anyone with a private key who has posted at least one item item = a text file with some text in it tag = a string which can be applied to items as an indicator of its properties vote = an application of a tag to an item config ====== config is handled using one file per setting default/ provides the defaults as part of the repository config/ overrides defaults with local settings to change a setting, put the file in config/ For list of settings, see doc/config.txt #todo in the future, config will be updatable by the admin via signed messages to be continued...