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
et s'organisera de la façon suivante:
Docker/
├─ paheko/
│ ├─ config/
│ ├─ data/
| ├─ docker-compose.yaml
|
├─ cloudflared/
| ├─ docker-compose.yaml
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
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
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
- Un "container_name" a été ajouté
container_name: paheko
- Et un network "paheko-proxy" a été créer
docker network create paheko-proxy
Pour finir, le dossier data doit être editable par www-data du container
sudo chown 33:33 ~/Docker/paheko/data
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
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
et vérifier leur connexion réseau:
docker network inspect paheko-proxy
Accès Exterieur
Dans l'interface utilisateur de Cloudflare, déclarez un nouvel hôte publique en spécifiant:
Type: HTTP
URL: paheko:80
Une fois validé, le site sera accéssible depuis le nom de domaine déclaré dans Cloudflare
Top comments (0)