mirror of
https://github.com/R0m1k3/Apiflow-gateway.git
synced 2026-10-11 17:27:08 +02:00
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:
commit
05802dd72f
5 files changed
+73
No files matched your search
@@ -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
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
.env
|
||||||
|
# frps.toml contient le token secret — ne pas committer
|
||||||
|
frps.toml
|
||||||
|
caddy_data/
|
||||||
|
caddy_config/
|
||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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:
|
||||||
@@ -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"
|
||||||
Reference in new issue
Block a user