GithubHelp home page GithubHelp logo

mbideau / asso-kit Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 60 KB

A customized Redmine setup with tons of usefull plugins, 100% translated to french.

License: GNU General Public License v3.0

Shell 98.68% Nginx 1.32%

asso-kit's Introduction

Asso Kit

A web platform all-in-one for associations and collaborative projects.

Based on Redmine plus ~25 plugins, 100% translated to french (with proper semantics).

For each project see the availables features :

  • Activity feed : to know who has done what and when
  • Task management, with many visualisations: List, Roadmap, Kanban, Calendar, Report
  • Wiki, with WYSIWYG editor
  • Blog, with comments
  • Forum, to debate
  • Documents, private documents with versioning
  • Downloads, public files
  • Repository of versioned files, for documents that changes often, with an automatic synchronisation between members

Technology

AssoKit is nothing more than a Redmine custom setup that combine more than ~25 plugins.

Other third party software were added in conjuction to make it even more feature full, like :

Installation

# create two files, one for the mysql admin password, the other for the redmine mysql user
touch ~/.config/mysql/admin.pass
vi ~/.config/mysql/admin.pass # write the password
touch ~/.config/mysql/redmine.pass
vi ~/.config/mysql/redmine.pass # write the password

# run the install script (arguments are : MYSQL_ADMIN_PASS_FILE MYSQL_REDMINE_PASS_FILE APP_TITLE DOMAIN)
sudo ./install.sh ~/.config/mysql/admin.pass ~/.config/mysql/redmine.pass "Hello World" "hello-world.local"

# remove the password files
rm -f ~/.config/mysql/admin.pass ~/.config/mysql/redmine.pass

Shell scripts

Dependencies overview

install.sh
	|__scripts/setup_system.sh
	|
	|__scripts/deploy_redmine_and_theme.sh
	|	|__db/update_default_data.sql
	|	|__conf/nginx/asso-kit.local.conf
	|
	|__scripts/deploy_plugins.sh
	|	|__db/update_default_data_plugins.sql
	|	|__locales/better-french.yml
	|
	|__scripts/install_gitolite_and_plugin_git_hosting.sh
	|	|__db/update_default_data_git_hosting.sql
	|
	|__scripts/deploy_asso_kit_plugin.sh
		|__db/update_default_data_asso_kit.sql

All the shell scripts depend on lib/shell_fancy.sh, which it just some basic functions to display text in a fancier fashion. They also dependends on the redmine configuration file redmine.conf, which defines redmine username, and files/directories locations.

A testing script exist in /bin/test_redmine_with_webrick_webserver.sh to run a ruby webserver (webrick) if the nginx doesn't work.

scripts/setup_system.sh

This is the system setup script.

scripts/deploy_redmine_and_theme.sh

This is the redmine source code deployment script.
It also installs a theme (asso-kit).

scripts/deploy_plugins.sh

This is the ~25 plugins installation script.
This one is very long to execute because of the compilation of natives extensions.

scripts/install_gitolite_and_plugin_git_hosting.sh

This is the installation of gitolite and the redmine_git_hosting plugin that manages git repositories.
It also install git-annex.

scripts/deploy_asso_kit_plugin.sh

This is the Asso Kit plugin.

Use GitAnnex

To use git-annex synchronisation, follow those steps :

  1. On your local machine, generate ssh keypairs for your user :

    ssh-keygen -t rsa -N '' -C 'AssoKit user key' -f ~/.ssh/id_rsa_assokit
    
  2. On AssoKit website, add the keys to your user by going to MyAccount > SSH Keys, and copy the content of the public key :

    cat ~/.ssh/id_rsa_assokit.pub
    
  3. On AssoKit website, create a git-annex repository by going to :
    <project> > Configuration > Repositories > New repository

    Then, select 'Initialize with GitAnnex'

    You must have a user role with commit permission on this project

  4. On your local machine, install git-annex :

    sudo apt-get -qq -y install --no-install-recommends git-annex lsof
    
  5. On your local machine, clone the git-annex repository :

    git clone -q ssh://git@<domain>/<project>/<repository_name>.git /tmp/test-git-annex-repo.tmp
    
  6. On your local machine, start git-annex webapp, by clicking on its icon, or with :

    git-annex webapp
    
  7. On your local machine, add the cloned git-annex repository by entering its path to the invite 'Make Repository'.
    In this example it will be : /tmp/test-git-annex-repo.tmp

You're done.

Plugin Unread Issues

Register to download the plugin at RM+

Go to Unread Issues plugin page at RM+ and click on 'Get free "Unread Issues"' button.

Then :

  • upload/download the zip file (received by mail) on the server machine.

  • unzip the archive to plugins dir :

    unzip -d <redmine_dir>/plugins <unread_issues.zip>
    
  • change owner and group of the files :

     chown -R redmine:redmine <redmine_dir>/plugins/unread_issues
    
  • execute bundle install as the redmine user, in the redmine folder :

     cd <redmine_dir> && su -c "bundle install --without development test --path vendor/bundle" redmine
    
  • execute plugin migration :

     cd <redmine_dir> && su -c "bundle exec rake redmine:plugins NAME=unread_issues RAILS_ENV=production" redmine
    
  • set the query to use for the user tasks :

     mysql --defaults-extra-file=<mysql_redmine_cnf_file> redmine <<ENDMYSQL
     	INSERT INTO `settings` (`name`, `value`, `updated_on`) VALUES ('plugin_unread_issues','--- !ruby/hash:ActionController::Parameters\nassigned_issues: \'1\'\n', NOW())
     	ON DUPLICATE KEY UPDATE `value` = '--- !ruby/hash:ActionController::Parameters\nassigned_issues: \'1\'\n', `updated_on` = NOW();
     ENDMYSQL
    
  • restart webserver :

     service nginx restart
    

You're done.

asso-kit's People

Contributors

mbideau avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.