Browse Source

documentation

garthh 3 weeks ago
parent
commit
213b8d5b7c
4 changed files with 198 additions and 0 deletions
  1. 69 0
      README.md
  2. 51 0
      docker-compose.yml
  3. 42 0
      docker/Dockerfile-php
  4. 36 0
      docker/nginx-conf

+ 69 - 0
README.md

@@ -0,0 +1,69 @@
+**Orgasso** est une application web vous permettant de suivre les activités d'une association ou d'un club de jeux de rôle, notamment les inscriptions aux parties et l'organisation des planning des parties et meneur.
+
+### Installation
+
+Après avoir cloné les sources
+
+1. Création d'un fichier `.env.local` à adapter à vos besoins
+```bash
+$ cp .env .env.local
+$ vim .env.local
+```
+
+2. Créez les clés cryptographiques
+```bash
+$ bin/console secrets:generate-keys
+$ php -r 'echo bin2hex(random_bytes(32));'
+```
+
+Copiez la dernière clée obtenue dans `.env.local` dans `APP_SECRET`
+
+2. Copier les fichiers -dist présents dans `/public/pages` et `/public/images` et les modifier
+3. Installation des packages
+```bash
+$ ./composer install
+$ sh ./get_bumla.sh
+```
+
+4. Créez la base de données
+```bash
+$ bin/console doctrine:mapping:info
+$ bin/console doctrine:schema:update --dump-sql
+$ bin/console doctrine:schema:update --force
+$ bin/console doctrine:schema:validate
+```
+
+5. Récupérez les assets
+```bash
+$ bin/console asset-map:compile
+```
+
+6. Nettoyez et chauffez le cache
+```bash
+$ bin/console cache:clear
+$ bin/console cache:warmup
+```
+
+Pour une mise à jour, répétez de 3 à 6 après un `git pull`. Avant 4, pensez à faire un `cache:clear`.
+
+### Docker
+
+Vous pouvez utiliser le `docker-compose.yml` proposé.
+Les commandes `bin/console` doivent être passées dans le conteneur `php`.
+
+### Fonctionnalités
+
+- Organisation et planification d'événement
+- Gestion des ressources internes : jeux, MJ
+- Gestion des réservations de partie, y compris sans aucune création de compte
+- Gestion de parties privées (adressées qu'aux membres) ou publiques
+- Gestion de la collecte des propositions des MJ
+- Gestion de la collecte de demande de partie
+
+### Évolutions prévues
+
+- Prise en compte des disponibilités des MJ sur les événements
+- Prise en charge du matériel annexe (ex. supports de présentation, boîte de dés...)
+- Gestion de la ludothèque : emprunts, ...
+- Gestion des checkins par QR-Code
+- Génération du rapport annuel pour les animations

+ 51 - 0
docker-compose.yml

@@ -0,0 +1,51 @@
+version: "3.0"
+
+services:
+
+  mysql:
+    image: mariadb:10.6
+    volumes:
+     - ./volumes/db:/var/lib/mysql
+     - /etc/localtime:/etc/localtime:ro
+    env_file:
+     - .env
+    restart: "always"
+    expose:
+     - "3306"
+
+  php:
+    build:
+      context: Dockerfile-php
+    volumes:
+     - ./volumes/app:/var/www/html
+     - /etc/localtime:/etc/localtime:ro
+    links:
+     - mysql
+    depends_on:
+     - mysql
+    expose:
+     - "9000"
+
+  messenger:
+    build:
+      context: Dockerfile-php
+    command: php /var/www/html/bin/console messenger:consume async --env=prod --time-limit=3600 --memory-limit=128M
+    volumes:
+     - ./volumes/app:/var/www/html
+     - /etc/localtime:/etc/localtime:ro
+    depends_on:
+     - mysql
+    restart: always
+
+  nginx:
+    image: nginx:1.17.4-alpine
+    volumes:
+      - ./volumes/app:/var/www/html
+      - ./volumes/nginx-conf:/etc/nginx/conf.d
+      - /etc/localtime:/etc/localtime:ro
+    depends_on:
+      - php
+    links:
+      - php
+    ports:
+      - 80:80

+ 42 - 0
docker/Dockerfile-php

@@ -0,0 +1,42 @@
+FROM php:8.3-fpm
+
+RUN apt-get update && apt-get install -y \
+       libmcrypt-dev \
+       libicu-dev \
+       libpng-dev \
+       libjpeg62-turbo-dev \
+       libwebp-dev \
+       libfreetype6-dev \
+       libxrender1 \
+       libfontconfig \
+       libxext-dev \
+       libzip-dev \
+       libldap-dev \
+       libmemcached-dev \
+       libgmp-dev \
+       git \
+  && apt-get install -y libmagickwand-dev --no-install-recommends \
+  && rm -rf /var/lib/apt/lists/* \
+  && docker-php-ext-configure gd --with-freetype --with-jpeg  --with-webp \
+  && docker-php-ext-install -j$(nproc) gd bcmath opcache mysqli zip ldap intl exif pdo pdo_mysql gmp \
+  && printf "\n" | pecl install imagick \
+  && docker-php-ext-enable imagick \
+  && git clone https://github.com/phpredis/phpredis /tmp/redis \
+  && docker-php-ext-configure /tmp/redis \
+  && docker-php-ext-install /tmp/redis \
+  && rm -rf /tmp/redis \
+  && pecl install apcu \
+  && docker-php-ext-enable apcu \
+  && pecl install uploadprogress \
+  && docker-php-ext-enable uploadprogress \
+  && pecl clear-cache 
+
+RUN cd /tmp \
+  && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
+  && php composer-setup.php \
+  && php -r "unlink('composer-setup.php');" \
+  && mv composer.phar /usr/local/bin/composer \
+  && chmod +x /usr/local/bin/composer
+
+USER www-data
+WORKDIR /var/www/html

+ 36 - 0
docker/nginx-conf

@@ -0,0 +1,36 @@
+access_log /dev/stdout main;
+error_log /dev/stderr;
+
+
+server {
+    listen 80;
+
+    server_tokens off;
+
+    index index.php index.html index.htm;
+
+    root /var/www/html/public;
+
+    location / {
+        try_files $uri /index.php$is_args$args;
+    }
+
+    location ~ ^/index\.php(/|$) {
+        fastcgi_pass php:9000;
+        fastcgi_split_path_info ^(.+\.php)(/.*)$;
+        include fastcgi_params;
+        fastcgi_send_timeout 600s;
+        fastcgi_read_timeout 600s;
+        fastcgi_connect_timeout 600s;
+        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+        fastcgi_param DOCUMENT_ROOT $document_root;
+        internal;
+        fastcgi_param HTTPS on;
+        fastcgi_param HTTP_X_FORWARDED_PROTO https;
+    }
+
+    location ~ \.php$ {
+        return 404;
+    }
+
+}