mirror of
https://github.com/xbgmsharp/postgsail.git
synced 2025-09-17 11:17:46 +00:00
192 lines
4.4 KiB
YAML
192 lines
4.4 KiB
YAML
version: '3.9'
|
|
services:
|
|
db:
|
|
image: xbgmsharp/timescaledb-postgis
|
|
container_name: db
|
|
restart: unless-stopped
|
|
#env_file: .env
|
|
environment:
|
|
- TIMESCALEDB_TELEMETRY=off
|
|
- PGDATA=/var/lib/postgresql/data/pgdata
|
|
- TZ=UTC
|
|
- POSTGRES_USER=${POSTGRES_USER}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- POSTGRES_DB=${POSTGRES_DB}
|
|
- PGSAIL_AUTHENTICATOR_PASSWORD=${PGSAIL_AUTHENTICATOR_PASSWORD}
|
|
#network_mode: "host"
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- ./db-data:/var/lib/postgresql/data
|
|
- $PWD/initdb:/docker-entrypoint-initdb.d
|
|
networks:
|
|
iot:
|
|
ipv4_address: 172.30.0.2
|
|
logging:
|
|
options:
|
|
max-size: 10m
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "sh -c 'pg_isready -U ${POSTGRES_USER} -d signalk'"]
|
|
interval: 60s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 100s
|
|
|
|
api:
|
|
image: postgrest/postgrest
|
|
container_name: api
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3000:3000"
|
|
#env_file: .env
|
|
environment:
|
|
PGRST_DB_SCHEMA: api
|
|
PGRST_DB_ANON_ROLE: api_anonymous
|
|
PGRST_OPENAPI_SERVER_PROXY_URI: http://127.0.0.1:3000
|
|
PGRST_DB_PRE_REQUEST: public.check_jwt
|
|
PGRST_DB_URI: ${PGRST_DB_URI}
|
|
PGRST_JWT_SECRET: ${PGRST_JWT_SECRET}
|
|
networks:
|
|
iot:
|
|
ipv4_address: 172.30.0.3
|
|
depends_on:
|
|
- db
|
|
logging:
|
|
options:
|
|
max-size: 10m
|
|
#healthcheck:
|
|
# test: ["CMD-SHELL", "sh -c 'curl --fail http://localhost:3003/live || exit 1'"]
|
|
# interval: 60s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
# start_period: 100s
|
|
|
|
app:
|
|
image: grafana/grafana:latest
|
|
container_name: app
|
|
restart: unless-stopped
|
|
volumes:
|
|
- data:/var/lib/grafana
|
|
- data:/var/log/grafana
|
|
- $PWD/grafana:/etc/grafana
|
|
ports:
|
|
- "3001:3000"
|
|
networks:
|
|
- iot
|
|
environment:
|
|
- GF_INSTALL_PLUGINS=pr0ps-trackmap-panel,fatcloud-windrose-panel
|
|
- GF_USERS_ALLOW_SIGN_UP=false
|
|
- GF_SMTP_ENABLED=false
|
|
depends_on:
|
|
- db
|
|
logging:
|
|
options:
|
|
max-size: 10m
|
|
#healthcheck:
|
|
# test: ["CMD-SHELL", "sh -c 'curl --fail http://localhost:3000/healthz || exit 1'"]
|
|
# interval: 60s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
# start_period: 100s
|
|
|
|
telegram:
|
|
image: xbgmsharp/postgsail-telegram-bot
|
|
container_name: telegram
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /etc/resolv.conf:/etc/resolv.conf:ro
|
|
ports:
|
|
- "3005:8080"
|
|
networks:
|
|
- iot
|
|
environment:
|
|
- BOT_TOKEN=${PGSAIL_TELEGRAM_BOT_TOKEN}
|
|
- PGSAIL_URL=${PGSAIL_API_URL}
|
|
depends_on:
|
|
- db
|
|
- api
|
|
logging:
|
|
options:
|
|
max-size: 10m
|
|
|
|
web:
|
|
image: xbgmsharp/vuestic-postgsail:dev
|
|
build:
|
|
context: https://github.com/xbgmsharp/vuestic-postgsail.git#live
|
|
dockerfile: Dockerfile_dev
|
|
container_name: web_dev
|
|
restart: unless-stopped
|
|
volumes:
|
|
- $PWD/frontend:/app
|
|
networks:
|
|
iot:
|
|
ipv4_address: 172.30.0.4
|
|
ports:
|
|
- 8080:8080
|
|
environment:
|
|
- VITE_PGSAIL_URL=${PGSAIL_API_URL}
|
|
- VITE_APP_INCLUDE_DEMOS=false
|
|
- VITE_APP_BUILD_VERSION=true
|
|
- VITE_APP_TITLE=${VITE_APP_TITLE}
|
|
depends_on:
|
|
- db
|
|
- api
|
|
logging:
|
|
options:
|
|
max-size: 10m
|
|
|
|
pgadmin:
|
|
image: dpage/pgadmin4:latest
|
|
container_name: pgadmin
|
|
restart: unless-stopped
|
|
volumes:
|
|
- data:/var/lib/pgadmin
|
|
- $PWD/.codesandbox/servers.json:/servers.json:ro
|
|
ports:
|
|
- 5050:5050
|
|
environment:
|
|
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
|
|
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
|
|
- PGADMIN_LISTEN_ADDRESS=0.0.0.0
|
|
- PGADMIN_LISTEN_PORT=5050
|
|
- PGADMIN_SERVER_JSON_FILE=/servers.json
|
|
- PGADMIN_DISABLE_POSTFIX=true
|
|
networks:
|
|
- iot
|
|
#depends_on:
|
|
# - db
|
|
logging:
|
|
options:
|
|
max-size: 10m
|
|
|
|
swagger:
|
|
image: swaggerapi/swagger-ui
|
|
container_name: swagger
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8181:8080"
|
|
expose:
|
|
- "8080"
|
|
environment:
|
|
API_URL: http://172.30.0.3:3000/
|
|
networks:
|
|
- iot
|
|
depends_on:
|
|
- db
|
|
- api
|
|
logging:
|
|
options:
|
|
max-size: 10m
|
|
|
|
volumes:
|
|
data: {}
|
|
|
|
networks:
|
|
iot:
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: 172.30.0.0/24
|
|
gateway: 172.30.0.1
|