Initial commit : Gateway Hostinger (frps + Caddy)

- frps : reçoit le tunnel frpc depuis le serveur magasin
- Caddy : reverse proxy HTTPS avec SSL automatique Let's Encrypt
- Expose api.ffnancy.fr → tunnel → API interne magasin

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Sonnet 4.6 committed 2026-03-18 10:11:01 +01:00
commit 05802dd72f
5 files changed
+73

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
# Copier ce fichier en .env et remplir les valeurs
# Token partagé entre frps (Hostinger) et frpc (magasin)
# Doit être identique dans frps.toml ET frpc.toml côté magasin
FRP_TOKEN=CHANGE_ME_FRP_SECRET_TOKEN
+5
View File
@@ -0,0 +1,5 @@
.env
# frps.toml contient le token secret — ne pas committer
frps.toml
caddy_data/
caddy_config/
+20
View File
@@ -0,0 +1,20 @@
# Caddy obtient automatiquement le certificat Let's Encrypt pour api.ffnancy.fr
# Prérequis : DNS A record api.ffnancy.fr → IP du serveur Hostinger
api.ffnancy.fr {
# Proxifie vers le port exposé par frps (trafic tunnel depuis le magasin)
reverse_proxy frps:13000
# Headers de sécurité
header {
X-Content-Type-Options nosniff
X-Frame-Options DENY
Referrer-Policy no-referrer
}
# Logs
log {
output stdout
level INFO
}
}
+33
View File
@@ -0,0 +1,33 @@
services:
# Reçoit le tunnel entrant du serveur magasin (frpc → frps)
# Expose le port 7000 sur internet pour que le magasin puisse s'y connecter
frps:
image: snowdreamtech/frps:latest
container_name: ff_frps
volumes:
- ./frps.toml:/etc/frp/frps.toml:ro
ports:
- "7000:7000" # connexions frpc entrant depuis le magasin
restart: unless-stopped
# Reverse proxy HTTPS avec SSL automatique (Let's Encrypt)
# Proxifie api.ffnancy.fr → tunnel frp → API du magasin
caddy:
image: caddy:2-alpine
container_name: ff_caddy
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- frps
restart: unless-stopped
volumes:
caddy_data:
caddy_config:
+10
View File
@@ -0,0 +1,10 @@
# Copier en frps.toml et remplir le token
# frps.toml est exclu du git (contient le token secret)
bindAddr = "0.0.0.0"
bindPort = 7000
auth.method = "token"
auth.token = "CHANGE_ME_FRP_SECRET_TOKEN"
log.level = "info"