DEV Community

Cover image for Héberger Paheko chez soit derière Cloudflare
Remy Jacquand
Remy Jacquand

Posted on

Héberger Paheko chez soit derière Cloudflare

Héberger Paheko chez soit derière Cloudflare

Paheko

Paheko aide a la gestion d'association, il se dit "simple, complet et efficace" Le logiciel est accentué par sont ethique (pas de pistage, logiciel libre, sans IA). Elle assiste sur la gestion des memebres de l'association, la comptabilité, la gestion de document et création d'un site web.

La version en ligne est 100% gratuit avec toutes les fonctionnaliés, 10mo de stockage pour les documents Mais un seul exercice comptable et pas d'envoie d'email.

Dans le cadre de l'auto-hébergement, la limite des exercices comptable et l'envoi d'email n'existe plus.

Cloudflare

Cloudflare est un prestataire offrant une solution gratuit pour sécurisé pour créer un tunnel appelé "zero trust" vers votre serveur.

Son interface d'aministration est simple et propose beaucoup d'option et d'outils de mesure du trafic

Pour communiquer jusqu'au serveur, cloudflare passe par l'intermédiaire d'un container dont la plateforme propose la commande pour le créer: cloudflared

Cloudflared

Cloudflared est une image Docker permettant la connexion, via tunnel, entre le serveur et Cloudlfare. Sa mise en place est expliqué lors de la déclaration d'un nouveau tunnel depuis l'interface administrateur.

Architecture

Une fois la stack mise en place, chaque demande de connexion vers l'hébergement Paheko passera par le DNS de cloudflare.

Utilisateur => DNS Cloudflare => Cloudflared => Paheko

Le nom de domaine utilisé pour la connexion depuis l'exterieur doit être configuré, au préalable, pour utiliser les DNS de Cloudflare. Il sera donc nécessaire de déclarer le nom de domaine dans l'interface utilisateur Cloudflare.com

Sur le serveur, l’entièreté des projet docker seront contenu dans

~/Docker
Enter fullscreen mode Exit fullscreen mode

et s'organisera de la façon suivante:

Docker/
├─ paheko/
│ ├─ config/
│ ├─ data/
| ├─ docker-compose.yaml
|
├─ cloudflared/
| ├─ docker-compose.yaml
Enter fullscreen mode Exit fullscreen mode

Intallation

Partons du principe que docker est déjà installé sur le serveur.

Préparons les dossiers:

# Dossier de base
mkdir -p ~/Docker

# Paheko
mkdir -p ~/Docker/paheko ~/Docker/paheko/config ~/docker/paheko/data

# Cloudflare
mkdir -p ~/Docker/cloudflared
Enter fullscreen mode Exit fullscreen mode

Mise en place de Paheko

L'image docker de Paheko est disponible sur hub.docker.com

https://hub.docker.com/r/libretic/paheko

services:
  paheko:
    image: paheko/paheko
    restart: always
    volumes:
      - ./config.local.php:/var/www/paheko/config.local.php
      - ./php.ini:/usr/local/etc/php/php.ini
      - pahekodata:/var/www/paheko/data
      - /var/www/paheko/data/plugins
    ports:
      - 8080:80
Enter fullscreen mode Exit fullscreen mode

Pour adapter le fichier aux besoin actuel, la mise à jour ce présente ainsi:

# ~/Docker/paheko/docker-compose.yaml

services:
  paheko:
    image: paheko/paheko
    container_name: paheko 
    restart: always
    volumes:
      - ./config/php.ini:/usr/local/etc/php/php.ini
      - ./data:/var/www/paheko/data
    networks:
      - paheko-proxy
    ports: 
      - "8080:80"

networks:
  paheko-proxy:
    external: true
Enter fullscreen mode Exit fullscreen mode
  • Un "container_name" a été ajouté
container_name: paheko
Enter fullscreen mode Exit fullscreen mode
  • Et un network "paheko-proxy" a été créer
docker network create paheko-proxy
Enter fullscreen mode Exit fullscreen mode

Pour finir, le dossier data doit être editable par www-data du container

sudo chown 33:33 ~/Docker/paheko/data
Enter fullscreen mode Exit fullscreen mode

Mise en place de Cloudflared

# ~/Docker/cloudflared/docker-compose.yaml

services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    restart: unless-stopped
    command: tunnel --no-autoupdate run --token [SECRET_TOKEN]
    networks:
      - paheko-proxy
networks:
  paheko-proxy:
    external: true


Enter fullscreen mode Exit fullscreen mode

le SECRET_TOKEN est fourni durant le déclarion du tunnel dans l'interface utilisateur de Cloudflare

Enfin, les containers peuvent être lancé:

# Cloudflared
cd ~/Docker/cloudflared
docker compose up -d

# Paheko
cd ~/Docker/paheko
docker compose up -d
Enter fullscreen mode Exit fullscreen mode

et vérifier leur connexion réseau:

docker network inspect paheko-proxy
Enter fullscreen mode Exit fullscreen mode

Accès Exterieur

Dans l'interface utilisateur de Cloudflare, déclarez un nouvel hôte publique en spécifiant:

Type: HTTP
URL: paheko:80 
Enter fullscreen mode Exit fullscreen mode

Une fois validé, le site sera accéssible depuis le nom de domaine déclaré dans Cloudflare

Top comments (0)