Files
postgsail/docker-compose.yml
2023-07-05 08:59:34 +00:00

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