mirror of
https://github.com/fosrl/docs-v2.git
synced 2026-02-18 02:46:43 +00:00
Align with installer files
Align with the files the installer creates. Updated Docker images to use docker.io and modified healthcheck intervals. Adjusted Traefik version and added TCP server transport configurations.
This commit is contained in:
@@ -137,21 +137,22 @@ Files marked with `(*)` must be created manually. Volumes and other files are ge
|
|||||||
Create `docker-compose.yml` in your project root:
|
Create `docker-compose.yml` in your project root:
|
||||||
|
|
||||||
```yaml title="docker-compose.yml"
|
```yaml title="docker-compose.yml"
|
||||||
|
name: pangolin
|
||||||
services:
|
services:
|
||||||
pangolin:
|
pangolin:
|
||||||
image: fosrl/pangolin:latest # https://github.com/fosrl/pangolin/releases
|
image: docker.io/fosrl/pangolin:latest # https://github.com/fosrl/pangolin/releases
|
||||||
container_name: pangolin
|
container_name: pangolin
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ./config:/app/config
|
- ./config:/app/config
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
|
test: ["CMD", "curl", "-f", "http://localhost:3001/api/v1/"]
|
||||||
interval: "3s"
|
interval: "10s"
|
||||||
timeout: "3s"
|
timeout: "10s"
|
||||||
retries: 15
|
retries: 15
|
||||||
|
|
||||||
gerbil:
|
gerbil:
|
||||||
image: fosrl/gerbil:latest # https://github.com/fosrl/gerbil/releases
|
image: docker.io/fosrl/gerbil:latest # https://github.com/fosrl/gerbil/releases
|
||||||
container_name: gerbil
|
container_name: gerbil
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -169,14 +170,16 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 51820:51820/udp
|
- 51820:51820/udp
|
||||||
- 21820:21820/udp
|
- 21820:21820/udp
|
||||||
- 443:443 # Port for traefik because of the network_mode
|
- 443:443
|
||||||
- 80:80 # Port for traefik because of the network_mode
|
- 80:80
|
||||||
|
|
||||||
traefik:
|
traefik:
|
||||||
image: traefik:v3.4.0
|
image: docker.io/traefik:v3.6
|
||||||
container_name: traefik
|
container_name: traefik
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
network_mode: service:gerbil # Ports appear on the gerbil service
|
network_mode: service:gerbil # Ports appear on the gerbil service
|
||||||
|
|
||||||
depends_on:
|
depends_on:
|
||||||
pangolin:
|
pangolin:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
@@ -191,6 +194,7 @@ networks:
|
|||||||
default:
|
default:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
name: pangolin
|
name: pangolin
|
||||||
|
#enable_ipv6: true # activate if your system supports IPv6
|
||||||
```
|
```
|
||||||
|
|
||||||
## Traefik Static Configuration
|
## Traefik Static Configuration
|
||||||
@@ -213,18 +217,22 @@ experimental:
|
|||||||
plugins:
|
plugins:
|
||||||
badger:
|
badger:
|
||||||
moduleName: "github.com/fosrl/badger"
|
moduleName: "github.com/fosrl/badger"
|
||||||
version: "v1.3.0"
|
version: "v1.3.1"
|
||||||
|
|
||||||
log:
|
log:
|
||||||
level: "INFO"
|
level: "INFO"
|
||||||
format: "common"
|
format: "common"
|
||||||
|
maxSize: 100
|
||||||
|
maxBackups: 3
|
||||||
|
maxAge: 3
|
||||||
|
compress: true
|
||||||
|
|
||||||
certificatesResolvers:
|
certificatesResolvers:
|
||||||
letsencrypt:
|
letsencrypt:
|
||||||
acme:
|
acme:
|
||||||
httpChallenge:
|
httpChallenge:
|
||||||
entryPoint: web
|
entryPoint: web
|
||||||
email: admin@example.com # REPLACE WITH YOUR EMAIL
|
email: "admin@example.com" # REPLACE WITH YOUR EMAIL
|
||||||
storage: "/letsencrypt/acme.json"
|
storage: "/letsencrypt/acme.json"
|
||||||
caServer: "https://acme-v02.api.letsencrypt.org/directory"
|
caServer: "https://acme-v02.api.letsencrypt.org/directory"
|
||||||
|
|
||||||
@@ -239,12 +247,15 @@ entryPoints:
|
|||||||
http:
|
http:
|
||||||
tls:
|
tls:
|
||||||
certResolver: "letsencrypt"
|
certResolver: "letsencrypt"
|
||||||
|
encodedCharacters:
|
||||||
|
allowEncodedSlash: true
|
||||||
|
allowEncodedQuestionMark: true
|
||||||
|
|
||||||
serversTransport:
|
serversTransport:
|
||||||
insecureSkipVerify: true
|
insecureSkipVerify: true
|
||||||
|
|
||||||
ping:
|
ping:
|
||||||
entryPoint: "web"
|
entryPoint: "web"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Traefik Dynamic Configuration
|
## Traefik Dynamic Configuration
|
||||||
@@ -271,7 +282,7 @@ http:
|
|||||||
- web
|
- web
|
||||||
middlewares:
|
middlewares:
|
||||||
- redirect-to-https
|
- redirect-to-https
|
||||||
- badger
|
- badger
|
||||||
|
|
||||||
# Next.js router (handles everything except API and WebSocket paths)
|
# Next.js router (handles everything except API and WebSocket paths)
|
||||||
next-router:
|
next-router:
|
||||||
@@ -310,12 +321,21 @@ http:
|
|||||||
next-service:
|
next-service:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
- url: "http://pangolin:3002" # Next.js server
|
- url: "http://pangolin:3002" # Next.js server
|
||||||
|
|
||||||
api-service:
|
api-service:
|
||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
- url: "http://pangolin:3000" # API/WebSocket server
|
- url: "http://pangolin:3000" # API/WebSocket server
|
||||||
|
|
||||||
|
tcp:
|
||||||
|
serversTransports:
|
||||||
|
pp-transport-v1:
|
||||||
|
proxyProtocol:
|
||||||
|
version: 1
|
||||||
|
pp-transport-v2:
|
||||||
|
proxyProtocol:
|
||||||
|
version: 2
|
||||||
```
|
```
|
||||||
|
|
||||||
## Pangolin Configuration
|
## Pangolin Configuration
|
||||||
|
|||||||
Reference in New Issue
Block a user