Framadate (Rendez-vous/sondage)

Environnement

  • Conteneur LXC Proxmox
  • Ubuntu 20.04

Installation

Configurer les locales fr-FR :

dpkg-reconfigure locales
    fr_FR.UTF-8 UTF-8

Installer Apache, PHP et MariaDB :

apt install apache2 mariadb-server php7.2 php7.2-intl php7.2-mysql curl unzip

Activer le module de réécriture d'URL et redémarrer Apache :

a2enmod rewrite
systemctl restart apache2

Télécharger et décompresser la dernière version stable de Framadate :

cd /var/www/
wget https://framagit.org/framasoft/framadate/framadate/uploads/267cf0e390950019c5176bd2cf6da865/framadate-1.1.10.zip
unzip framadate-1.1.10.zip
rm framadate-1.1.10.zip
chown www-data:www-data -R /var/www/framadate

Créer le virtualhost :

mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.bak
nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
    ServerName      framadate.ucpt.fr
    DocumentRoot    /var/www/framadate/

    <Directory /var/www/framadate/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    <Directory "/var/www/framadate/admin/">
        AuthType Basic
        AuthName "Administration"
        AuthUserFile "/var/www/framadate/admin/.htpasswd"
        Require valid-user
        Order allow,deny
        Allow from all
    </Directory>

    <FilesMatch "^\.ht.*">
        deny from all
        satisfy all
        ErrorDocument 403 "Accès refusé."
    </FilesMatch>

    LogLevel    warn
    ErrorLog    /var/log/apache2/framadate-error.log
    CustomLog   /var/log/apache2/framadate-access.log combined
</VirtualHost>

Configurer les fichiers php.ini :

cp -p /etc/php/7.2/apache2/php.ini /etc/php/7.2/apache2/php.ini.bak
cp -p /etc/php/7.2/cli/php.ini /etc/php/7.2/cli/php.ini.bak
sed -i 's,;date.timezone =,date.timezone = Europe/Paris,g' /etc/php/7.2/apache2/php.ini 
sed -i 's,;date.timezone =,date.timezone = Europe/Paris,g' /etc/php/7.2/cli/php.ini 
sed -i 's,session.cookie_httponly =,session.cookie_httponly = 1,g' /etc/php/7.2/apache2/php.ini
sed -i 's,session.cookie_httponly =,session.cookie_httponly = 1,g' /etc/php/7.2/cli/php.ini

Redémarrer le serveur Apache :

systemctl restart apache2

Sécuriser l'installation de MariaDB :

mysql_secure_installation

Se connecter à MariaDB et modifier le mode de connexion pour passer du compte root "système" au compte root "MariaDB" :

mysql -u root
USE mysql;
UPDATE user SET plugin='' WHERE User='root';
FLUSH PRIVILEGES;
exit;

Se connecter à MariaDB et créer la base de données pour Framadate :

mysql -u root -p
CREATE DATABASE framadate;
CREATE USER 'framadate-admin'@'localhost' IDENTIFIED BY 'mot_de_passe';
GRANT ALL PRIVILEGES ON framadate.* TO 'framadate-admin'@'localhost';
FLUSH PRIVILEGES;
exit;

Dans un navigateur, se connecter au serveur Framadate http://mon.serveur.framadate.tld/admin/install.php et poursuivre l'installation :

Général
    Nom de l'application                UCPT Sondages
    Adresse mail de l'application       sondage@ucpt-paimpol.com
    Mail de réponse                     ne-pas-repondre@ucpt-paimpol.com
    Langue par défaut                   Français
    URL propres                         X
Base de données
    Chaîne de connexion                 mysql:host=localhost;dbname=framadate;port=3306
    Utilisateur·rice                    framadate-admin
    Mot de passe                        mot_de_passe
    Préfixe                             fd_
    Table de migration                  framadate_migration

Pour protéger la page d'administration, créer les fichiers .htpasswd et .htaccess :

htpasswd -bc /var/www/framadate/admin/.htpasswd utilisateur mot-de-passe

Éditer le fichier /var/www/framadate/app/inc/config.php et commenter les lignes suivantes afin de n'afficher que le français :

nano /var/www/framadate/app/inc/config.php
// List of supported languages, fake constant as arrays can be used as constants only in PHP >=5.6
$ALLOWED_LANGUAGES = [
    'fr' => 'Français',
//    'en' => 'English',
//    'oc' => 'Occitan',
//    'es' => 'Español',
//    'de' => 'Deutsch',
//    'nl' => 'Dutch',
//    'it' => 'Italiano',
//    'br' => 'Brezhoneg',
];

Éditer le fichier /var/www/framadate/app/inc/config.php, ajouter la directive 'use_sendmail' => true afin d'autoriser l'envoi d'email via Sendmail et passer les directives 'show_the_software' et 'show_cultivate_your_garden' à false pour masquer ces encarts sur la page d'accueil :

nano /var/www/framadate/app/inc/config.php
// Config
$config = [
    /* general config */
    'use_smtp' => true,                     // use email for polls creation/modification/responses notification
    'use_sendmail' => true,
    'smtp_options' => [
        'host' => 'localhost',              // SMTP server (you could add many servers (main and backup for example) : use ";" like separator
        'auth' => false,                    // Enable SMTP authentication
        'username' => '',                   // SMTP username
        'password' => '',                   // SMTP password
        'secure' => '',                     // Enable encryption (false, tls or ssl)
        'port' => 25,                       // TCP port to connect to
    ],
    /* home */
    'show_what_is_that' => true,            // display "how to use" section
    'show_the_software' => false,            // display technical information about the software
    'show_cultivate_your_garden' => false,   // display "development and administration" information
    /* create_classic_poll.php / create_date_poll.php */
    'default_poll_duration' => 30,         // default values for the new poll duration (number of days).
    /* create_classic_poll.php */
    'user_can_add_img_or_link' => true,     // user can add link or URL when creating his poll.
    'markdown_editor_by_default' => true,   // The markdown editor for the description is enabled by default
    'provide_fork_awesome' => true,         // Whether the build-in fork-awesome should be provided
];

Pour changer le logo, remplacer le fichier /var/www/framadate/images/logo-framadate.png

Sources

https://admin.chapril.org/doku.php?id=admin:chatons:date.chapril.org