|
|
== Agenda du libre
|
|
|
|
|
|
Ceci est une application permettant de lister des évènements sur un calendier,
|
|
|
évènements proposés par tout un chacun mais nécessitant une modération avant
|
|
|
d'être affichés.
|
|
|
|
|
|
Cette application est disponible sous la license AGPL version 3 ou supérieure.
|
|
|
|
|
|
Elle est hébergée ici: https://git.framasoft.org/agenda-libre/agenda-libre-ruby
|
|
|
et visible ici: http://agendadulibre.org
|
|
|
|
|
|
La technologie repose sur "Ruby on Rails", version 4 ou supérieure.
|
|
|
|
|
|
Il existe aussi des projets équivalents
|
|
|
https://git.framasoft.org/agenda-libre/agenda-libre-php
|
|
|
https://bitbucket.org/mlhamel/agendadulibre
|
|
|
|
|
|
|
|
|
=== Prérequis
|
|
|
|
|
|
Exemple d'installation pour Debian:
|
|
|
{{{
|
|
|
~ $ apt-get install sqlite3 libsqlite3-dev build-essential git
|
|
|
~ $ apt-get install ruby ruby-dev bundler
|
|
|
}}}
|
|
|
|
|
|
Dans le cas d'une installation en mode production, dans un environnement comme
|
|
|
Debian stable Jessie, il faut ajouter les dépôt {{{jessie-updates}}} et
|
|
|
{{{jessie-backports}}} pour obtenir une version récente de {{{bundler}}}.
|
|
|
|
|
|
Il faut de plus installer les paquets {{{zlib1g-dev}}} et {{{libsqlite3-dev}}}
|
|
|
ou {{{libmysqlclient-dev}}}.
|
|
|
|
|
|
|
|
|
=== Code source
|
|
|
|
|
|
Pour installer l'Agenda du libre, vous devrez récupérer le code source à l'aide
|
|
|
de "git", puis installer les dépendances avec "bundler" (bundler est packagé
|
|
|
dans Debian, mais peut aussi s'installer depuis http://bundler.io, une version
|
|
|
récente de préférence).
|
|
|
|
|
|
Par exemple:
|
|
|
{{{
|
|
|
~ $ git clone git@git.framasoft.org:agenda-libre/agenda-libre-ruby.git
|
|
|
~ $ cd agenda-du-libre
|
|
|
~ $ bundle install --path vendor/bundle --without production
|
|
|
}}}
|
|
|
|
|
|
Dans le cas d'une installation en mode production, on utilisera plutôt
|
|
|
`--without test`.
|
|
|
|
|
|
|
|
|
=== Base de données
|
|
|
|
|
|
La base de données peut être "sqlite3", "postgresql" ou "mysql". Par défaut
|
|
|
sqlite3 est configurée, mais vous pouvez la modifier dans le fichier
|
|
|
`config/database.yml`.
|
|
|
|
|
|
Mettez en place le schéma comme ceci:
|
|
|
{{{
|
|
|
~ $ bundle exec rake db:setup
|
|
|
}}}
|
|
|
|
|
|
|
|
|
=== Lancement
|
|
|
==== En développement
|
|
|
|
|
|
Puis lancez rails (avec tests et vérifications de sécurité):
|
|
|
{{{
|
|
|
~ $ bundle exec guard
|
|
|
}}}
|
|
|
|
|
|
Vous pouvez finalement accéder à l'agenda dans un navigateur à l'URL suivante:
|
|
|
http://localhost:3000
|
|
|
|
|
|
Votre premier modérateur admin est identifié par "admin@example.com", son mot de
|
|
|
passe étant "password".
|
|
|
|
|
|
|
|
|
==== En production
|
|
|
|
|
|
/!\ section en travaux, ça commence par :
|
|
|
|
|
|
{{{
|
|
|
~ # apt install libapache2-mod-passenger
|
|
|
}}}
|
|
|
|
|
|
|
|
|
=== Aide mémoire
|
|
|
|
|
|
Commande à utiliser en console rails pour créer plusieurs événements:
|
|
|
{{{
|
|
|
w = 0
|
|
|
Event.create(elt.attributes.merge( { start_time: elt.start_time+w.week, end_time: elt.end_time+w.week } )).start_time; w = 1
|
|
|
}}}
|
|
|
|
|
|
Commande à utiliser pour précompiler les assets avant leur déploiement dans un environnement de production
|
|
|
{{{
|
|
|
bundle exec rake assets:precompile RAILS_ENV=assets
|
|
|
}}}
|
|
|
|
|
|
=== Mise à jour
|
|
|
|
|
|
Pour mettre à jour l'agenda du libre, il faut d'abord aller chercher la version de master la plus récente sur le git
|
|
|
upstream (https://git.framasoft.org/agenda-libre/agenda-libre-ruby). Une fois cela fait, il faut y ré-appliquer les
|
|
|
changements qui auraient été effectués pour l'environnement donné et quelques conflits sont à prévoir. Le plus courant:
|
|
|
|
|
|
{{{
|
|
|
db/schema.rb: Ignorer les conflits. Prendre la version courante. Ce fichier est mis à jour à chaque migration et représente
|
|
|
l'état actuel de la base de données sur le serveur courant. Il est recommandé de versioner de fichier, mais à moins d'avoir
|
|
|
exactement le même type de base de données que les développeurs upstream, il va créer des conflits. Seule la dernière version
|
|
|
du fichier peut être conservée sur la branche de travail.
|
|
|
}}}
|
|
|
|
|
|
Lors des mises à jour de l'agenda du libre à une version plus récente, les commandes suivantes sont nécessaires:
|
|
|
|
|
|
{{{
|
|
|
~ $ bundle install --path vendor/bundle --without production
|
|
|
~ $ bundle exec rake db:migrate
|
|
|
}}}
|
|
|
|
|
|
Puis redémarrer avec:
|
|
|
|
|
|
{{{
|
|
|
~ $ bundle exec rails s
|
|
|
}}}
|
|
|
|
|
|
=== Discussions
|
|
|
|
|
|
https://kiwiirc.com/client/irc.freenode.net/agendadulibre
|
|
|
|
|
|
{{{
|
|
|
° ° °
|
|
|
\ | / \ | / \ | /
|
|
|
| | |
|
|
|
___ ___ ___
|
|
|
\ / \ / \ /
|
|
|
. \_|_/ .
|
|
|
\ | /
|
|
|
}}}
|