agenda-libre-ruby/README.creole

176 lines
5.4 KiB
Plaintext
Raw Normal View History

= Agenda du libre
2013-11-13 23:09:38 +01:00
2019-03-04 12:59:49 +01:00
Calendrier d'évènements, proposés par tout un chacun mais nécessitant une
modération avant d'être affichés.
2013-11-13 23:09:38 +01:00
2019-02-12 17:16:32 +01:00
Cette application est disponible sous la license GNU AGPL version 3 ou supérieure.
2015-10-31 23:22:13 +01:00
2015-10-03 13:57:10 +02:00
Elle est hébergée ici: https://git.framasoft.org/agenda-libre/agenda-libre-ruby
2019-03-04 12:59:49 +01:00
et utilisable notamment ici: https://www.agendadulibre.org
2013-11-13 23:09:38 +01:00
2019-03-04 12:59:49 +01:00
La technologie repose sur "Ruby on Rails", version 5.2.
2013-11-13 23:09:38 +01:00
2019-03-04 12:59:49 +01:00
Il existe d'autres projets équivalents
2015-10-03 13:57:10 +02:00
https://git.framasoft.org/agenda-libre/agenda-libre-php
2014-03-06 14:44:01 +01:00
https://bitbucket.org/mlhamel/agendadulibre
== Prérequis
2015-10-31 23:22:13 +01:00
Exemple d'installation pour Debian:
{{{
~ $ apt-get install sqlite3 libsqlite3-dev build-essential git libltdl-dev
~ $ apt-get install ruby ruby-dev bundler
}}}
2017-03-28 10:23:31 +02:00
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}}}.
2017-03-28 10:24:23 +02:00
Il faut de plus installer les paquets {{{zlib1g-dev}}} et {{{libsqlite3-dev}}}
2017-03-28 10:23:31 +02:00
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é
2017-03-28 10:23:31 +02:00
dans Debian, mais peut aussi s'installer depuis http://bundler.io, une version
récente de préférence).
2013-11-13 23:09:38 +01:00
2014-03-06 18:10:47 +01:00
Par exemple:
{{{
2015-10-03 13:57:10 +02:00
~ $ git clone git@git.framasoft.org:agenda-libre/agenda-libre-ruby.git
2014-03-06 18:10:47 +01:00
~ $ cd agenda-du-libre
2014-09-25 00:21:05 +02:00
~ $ bundle install --path vendor/bundle --without production
2014-03-06 18:10:47 +01:00
}}}
2013-11-13 23:09:38 +01:00
2017-03-28 10:23:31 +02:00
Dans le cas d'une installation en mode production, on utilisera plutôt
2017-04-02 12:24:58 +02:00
`--without test developement`.
== Base de données
2017-04-02 12:24:58 +02:00
La base de données peut être "sqlite3", "postgresql" ou "mysql2". Par défaut
2014-07-18 23:20:30 +02:00
sqlite3 est configurée, mais vous pouvez la modifier dans le fichier
`config/database.yml`.
2013-11-13 23:09:38 +01:00
2017-04-02 12:24:58 +02:00
/!\ En pratique, en 2017-03, PostgreSQL server ne parvenait pas à interprêter
le fichier schema.rb généré automatiquement depuis une base fonctionnelle.
=== Dans le cas d'une installation MySQL
2017-04-02 12:24:58 +02:00
Il convient d'installer d'abord MySQL server sur sa machine :
{{{
~ # apt install mysql-server
}}}
Il faut alors choisir un mot de passe pour l'utilisateur root, avec lequel on
créera une nouvelle base pour le projet, ainsi qu'un utilisateur ayant les
droits sur cette base :
{{{
~ # mysql -u root -p
mysql> CREATE DATABASE '<nouvelle_instance>';
mysql> CREATE USER '<nouveau_user>' IDENTIFIED BY '<mot-de-passe>';
mysql> GRANT ALL ON <nouvelle_instance>.* TO '<nouveau_user>'@'localhost';
2017-04-02 12:35:35 +02:00
}}}
2017-04-02 12:24:58 +02:00
2017-04-02 12:37:48 +02:00
---
2017-04-02 12:24:58 +02:00
2014-07-18 23:20:30 +02:00
Mettez en place le schéma comme ceci:
2014-03-06 18:10:47 +01:00
{{{
2017-04-02 12:24:58 +02:00
~ $ bundle exec rake db:setup [RAILS_ENV="production"]
2014-03-06 18:10:47 +01:00
}}}
2013-11-13 23:09:38 +01:00
== Lancement
=== En développement
Puis lancez rails (avec tests et vérifications de sécurité):
2014-03-06 18:10:47 +01:00
{{{
~ $ bundle exec guard
2014-03-06 18:10:47 +01:00
}}}
2013-11-13 23:09:38 +01:00
Vous pouvez finalement accéder à l'agenda dans un navigateur à l'URL suivante:
http://localhost:3000
2014-03-06 18:10:47 +01:00
2016-10-03 10:12:03 +02:00
Votre premier modérateur admin est identifié par "admin@example.com", son mot de
passe étant "password".
=== En production
{{{
~ # apt install libapache2-mod-passenger
2017-04-02 12:24:58 +02:00
~ # vi /etc/apache2/sites-available/nouvelle_instance.conf
<VirtualHost *:80>
ServerName DOMAINE.NAME
DocumentRoot /srv/<nouvelle_instance>/public
SetEnv DATABASE_URL mysql2://<nouveau_user>@localhost/<nouvelle_instance>
SetEnv SECRET_KEY_BASE <SECRET>
SetEnv RAILS_ENV production
RailsEnv production
<Directory /srv/<nouvelle_instance>/public>
Require all granted
</Directory>
</VirtualHost>
~ # a2ensite /etc/apache2/sites-available/nouvelle_instance.conf
~ # /etc/init.d/apache2 reload
}}}
== Aide mémoire
2015-10-31 23:22:13 +01:00
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
}}}
2016-06-25 17:20:45 +02:00
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
2019-03-04 13:08:13 +01:00
Pour mettre à jour l'agenda du libre, il faut d'abord aller chercher la version 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
2019-03-04 13:08:13 +01:00
changements qui auraient été effectués pour l'environnement donné, 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
2014-03-06 18:10:47 +01:00
{{{
° ° °
\ | / \ | / \ | /
| | |
___ ___ ___
\ / \ / \ /
. \_|_/ .
\ | /
2016-06-25 17:20:45 +02:00
}}}