diff options
author | 2011-08-03 11:01:06 +0200 | |
---|---|---|
committer | 2011-08-03 17:29:37 +0200 | |
commit | 030bf52531710c1e70401fbd1328a2df30a07686 (patch) | |
tree | bf49b978f229d550b9daedb587365a1ae2d1d9a7 | |
parent | Custom doodle-like feature (diff) | |
download | council-webapp-master.tar.gz council-webapp-master.tar.bz2 council-webapp-master.zip |
-rw-r--r-- | README.md | 164 | ||||
-rw-r--r-- | site/doc/sample_configs/deploy.rb | 18 | ||||
-rw-r--r-- | site/doc/sample_configs/sample_apache_vhost.conf | 18 |
3 files changed, 200 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..e8b79e5 --- /dev/null +++ b/README.md @@ -0,0 +1,164 @@ +# About the project +This project has three parts: + + * Website written in Ruby (using Rails and Hobo). This site helps to prepare + meetings, collect ideas and feedback from community. + * Modified MeetBot (MeetBot is supybot plugin). This plugin handles meetings. + You can use + + #commands + + to list available commands and + + #command <command> + + to view help for each command. + + * Reminder plugin. This supybot plugin pulls reminder information from + the website and sends messages to all council members to remind them about + upcoming meeting. + +## Copyright + +### Website +Website is distributed under terms of AGPL3 or later. + +### Modified MeetBot plugin +The plugin is distributed on the same terms as original MeetBot. + +### Reminder plugin +Reminder plugin is distributed under BSD-style license (you can do with it +anything you want but you must use the same license and don't use my name for +advertising). + +# Usage +What you can do depends on your role. You can be guest or a registered user. +Once you register administrators can give you administrator and council member +roles. + +### Guest +As guest you can only view: + + * Current and past agendas + * Items for agendas + * Voting results + * Meeting summaries approved by council + * Council attendance + +### Registered user +Once you register you can do everything a guest can and: + + * Suggest items for council + * Participate in community vote + +### Council member +When administrator will give you a council member role you will be able to do +everything a regular registered user can and: + + * Change agendas states (available states are open, submissions closed, meeting\_ongoing, old) + * Add suggested items to agenda + * Reject suggested items + * Vote during meetings (IRC bot handles voting) + +### Administrator +As administrator you can manage users - give them new roles and take away old roles. + +## Configuration +The application users following (untracked) configuration files: + + * site/config/bot.yml + * site/config/council\_term.yml + * site/config/database.yml + * site/config/reminders.yml + +database.yml is regular rails database configuration file. Samples for other +configuration files are available in + + site/doc/sample_configs/ + +directory. + +# Installation +## Manual +1. Install bundler, rails, git and database you want to use. +2. Obtain sources + + git clone git://github.com/ahenobarbi/Gentoo-Council.git + +3. Go to directory with webapp (site/ subdirectory inside directory created in + the previous step) sources and install required gems + + bundle install + +4. Configure application +5. Start server by running the following command + + bundle exec rails server + +## With passenger +1. Clone git repository +2. Configure install and configure MySQL, Apache, passenger (sample vhost config +in site/doc/sample\_configs/ ). Remember that the web app is in + + $(repo\_directory)/site + +3. In + + $(repo\_directory)/site + +run + + bundle install + bundle exec rails g hobo:rapid + touch tmp/restart.txt + +4. Check if everything works fine. + +If you want to use capistrano I can write instructions for that. + +## Use capistrano +1. Install capistrano and git on your machine +2. Clone repository +2. Run + + cd /path/to/your/clone/site && capify . + +3. Customise + + config/deploy.rb + +see site/doc/sample\_configs/deploy.rb for reference. + +use attached file as base. + +4. Install git and bundler on host on which you will deploy +5. Configure passenger on target host +6. Run (on you development machine) + + cap deploy:setup + cap deploy + +7. (reason why you might like to go through previous steps) When you want to +update application just run + + cap deploy + +#How to use supybot plugins +1. Install supybot +2. Get those sources +3. Copy or link bot/MeetBot and bot/Reminder directories to supybot plugins + directory. On my system it's + + /usr/lib64/python2.7/site-packages/supybot/plugins/ + +4. Copy or link bot/ircmeeting to some directory you have in your PYTHONPATH + Or to directory fromwhich you will run supypot. +5. Create directory for supybot config and logs. +6. In this directory run + + supybot-wizard + + it will create *.conf file. +7. Run + + supybot file_created_in_previous steps diff --git a/site/doc/sample_configs/deploy.rb b/site/doc/sample_configs/deploy.rb new file mode 100644 index 0000000..8d0543d --- /dev/null +++ b/site/doc/sample_configs/deploy.rb @@ -0,0 +1,18 @@ +# Do not change those +require 'bundler/capistrano' + +set :repository, "git://git.overlays.gentoo.org/proj/council-webapp.git" +set :scm, "git" +set :branch, "master" +set :deploy_subdir, "site" + +# Capistrano will ssh to those hosts +role :web, "localhost" +role :app, "localhost" +role :db, "localhost" + +# and will use this user name +set :user, 'joszi' + +#and will put site in subdirectory of +set :deploy_to, "/home/joszi/app.git/" diff --git a/site/doc/sample_configs/sample_apache_vhost.conf b/site/doc/sample_configs/sample_apache_vhost.conf new file mode 100644 index 0000000..fe1f6ad --- /dev/null +++ b/site/doc/sample_configs/sample_apache_vhost.conf @@ -0,0 +1,18 @@ +<IfDefine DEFAULT_VHOST> +Listen 80 + +NameVirtualHost *:80 +<VirtualHost *:80> + ServerName mydomain.com + DocumentRoot /var/www/localhost/rails/council/site/public + RailsBaseURI /var/www/localhost/rails/council/site + RailsMaxPoolSize 1 + RailsPoolIdleTime 3600 + RailsEnv 'production' + <Directory /var/www/localhost/rails/council/site/public> + Options FollowSymLinks + AllowOverride None + Order allow,deny + Allow from all + </Directory> +</VirtualHost> |