mirror of https://github.com/statping/statping
				
				
				
			
		
			
				
	
	
		
			306 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			306 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			YAML
		
	
	
version: '2.3'
 | 
						|
 | 
						|
services:
 | 
						|
 | 
						|
  nginx-proxy:
 | 
						|
    image: jwilder/nginx-proxy
 | 
						|
    ports:
 | 
						|
      - 80:80
 | 
						|
    volumes:
 | 
						|
      - /var/run/docker.sock:/tmp/docker.sock:ro
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
 | 
						|
#  statping_dev:
 | 
						|
#    container_name: statping_dev
 | 
						|
#    build:
 | 
						|
#      context: .
 | 
						|
#      dockerfile: ./dev/Dockerfile.dev
 | 
						|
#      args:
 | 
						|
#        VERSION: DEV
 | 
						|
#        COMMIT: DEV
 | 
						|
#    restart: on-failure
 | 
						|
#    volumes:
 | 
						|
#      - ./:/go/src/github.com/statping/statping
 | 
						|
#    environment:
 | 
						|
#      VIRTUAL_HOST: local.statping.com
 | 
						|
#      VIRTUAL_PORT: 8888
 | 
						|
#      GO_ENV: test
 | 
						|
#      DB_CONN: sqlite
 | 
						|
#      API_KEY: exampleapikey
 | 
						|
#      API_SECRET: exampleapisecret
 | 
						|
#      NAME: Statping on SQLite
 | 
						|
#      DOMAIN: http://localhost:4000
 | 
						|
#      DESCRIPTION: This is a dev environment on SQLite!
 | 
						|
#      ADMIN_USER: admin
 | 
						|
#      ADMIN_PASS: admin
 | 
						|
#      PORT: 8585
 | 
						|
#      SERVICES: '[{"name": "Local Statping", "type": "http", "domain": "http://localhost:8585", "interval": 30}]'
 | 
						|
#    ports:
 | 
						|
#      - 8888:8888
 | 
						|
#      - 8585:8585
 | 
						|
#    networks:
 | 
						|
#      - statping
 | 
						|
#    healthcheck:
 | 
						|
#      test: ["CMD-SHELL", "curl -f http://localhost:8585/health || false"]
 | 
						|
#      timeout: 2s
 | 
						|
#      interval: 20s
 | 
						|
#      retries: 30
 | 
						|
 | 
						|
  statping:
 | 
						|
    container_name: statping
 | 
						|
    build:
 | 
						|
      context: ./
 | 
						|
    restart: on-failure
 | 
						|
    volumes:
 | 
						|
      - ./docker/statping/sqlite:/app
 | 
						|
    environment:
 | 
						|
      SERVICES: '[{"name": "Local Statping", "type": "http", "domain": "http://localhost:8585", "interval": 30}]'
 | 
						|
      VIRTUAL_HOST: sqlite.dev.statping.com
 | 
						|
      VIRTUAL_PORT: 8080
 | 
						|
      DB_CONN: sqlite
 | 
						|
      API_KEY: exampleapikey
 | 
						|
      API_SECRET: exampleapisecret
 | 
						|
      NAME: Statping on SQLite
 | 
						|
      DOMAIN: http://localhost:4000
 | 
						|
      DESCRIPTION: This is a dev environment on SQLite!
 | 
						|
      ADMIN_USER: admin
 | 
						|
      ADMIN_PASS: admin
 | 
						|
    ports:
 | 
						|
      - 4000:8080
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD-SHELL", "curl -f http://localhost:8080/health || false"]
 | 
						|
      timeout: 2s
 | 
						|
      interval: 10s
 | 
						|
      retries: 20
 | 
						|
 | 
						|
  statping_mysql:
 | 
						|
    container_name: statping_mysql
 | 
						|
    build:
 | 
						|
      context: ./
 | 
						|
    restart: on-failure
 | 
						|
    ports:
 | 
						|
      - 4005:8080
 | 
						|
    volumes:
 | 
						|
      - ./docker/statping/mysql:/app
 | 
						|
    links:
 | 
						|
      - mysql
 | 
						|
    environment:
 | 
						|
      VIRTUAL_HOST: mysql.dev.statping.com
 | 
						|
      VIRTUAL_PORT: 8080
 | 
						|
      DB_CONN: mysql
 | 
						|
      DB_HOST: mysql
 | 
						|
      DB_PORT: 3306
 | 
						|
      DB_DATABASE: statping
 | 
						|
      DB_USER: root
 | 
						|
      DB_PASS: password123
 | 
						|
      API_KEY: exampleapikey
 | 
						|
      API_SECRET: exampleapisecret
 | 
						|
      NAME: Statping on MySQL
 | 
						|
      DOMAIN: http://localhost:4005
 | 
						|
      DESCRIPTION: This is a dev environment on MySQL!
 | 
						|
      ADMIN_USER: admin
 | 
						|
      ADMIN_PASS: admin
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
    depends_on:
 | 
						|
      mysql:
 | 
						|
        condition: service_healthy
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD-SHELL", "curl -f http://localhost:8080/health || false"]
 | 
						|
      timeout: 2s
 | 
						|
      interval: 10s
 | 
						|
      retries: 20
 | 
						|
 | 
						|
  statping_postgres:
 | 
						|
    container_name: statping_postgres
 | 
						|
    build:
 | 
						|
      context: ./
 | 
						|
    restart: on-failure
 | 
						|
    ports:
 | 
						|
      - 4010:8080
 | 
						|
    volumes:
 | 
						|
      - ./docker/statping/postgres:/app
 | 
						|
    links:
 | 
						|
      - postgres
 | 
						|
    environment:
 | 
						|
      VIRTUAL_HOST: postgres.dev.statping.com
 | 
						|
      VIRTUAL_PORT: 8080
 | 
						|
      DB_CONN: postgres
 | 
						|
      DB_HOST: postgres
 | 
						|
      DB_PORT: 5432
 | 
						|
      DB_DATABASE: statping
 | 
						|
      DB_USER: root
 | 
						|
      DB_PASS: password123
 | 
						|
      API_KEY: exampleapikey
 | 
						|
      API_SECRET: exampleapisecret
 | 
						|
      NAME: Statping on Postgres
 | 
						|
      DOMAIN: http://localhost:4010
 | 
						|
      DESCRIPTION: This is a dev environment on Postgres!
 | 
						|
      ADMIN_USER: admin
 | 
						|
      ADMIN_PASS: admin
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
    depends_on:
 | 
						|
      postgres:
 | 
						|
        condition: service_healthy
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD-SHELL", "curl -f http://localhost:8080/health || false"]
 | 
						|
      timeout: 5s
 | 
						|
      interval: 5s
 | 
						|
      retries: 30
 | 
						|
 | 
						|
  postgres:
 | 
						|
    container_name: postgres
 | 
						|
    image: postgres
 | 
						|
    volumes:
 | 
						|
      - ./docker/databases/postgres:/var/lib/postgresql/data
 | 
						|
    environment:
 | 
						|
      POSTGRES_PASSWORD: password123
 | 
						|
      POSTGRES_DB: statping
 | 
						|
      POSTGRES_USER: root
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD-SHELL", "pg_isready -U root"]
 | 
						|
      interval: 15s
 | 
						|
      timeout: 10s
 | 
						|
      retries: 20
 | 
						|
 | 
						|
  mysql:
 | 
						|
    container_name: mysql
 | 
						|
    image: mysql:5.7
 | 
						|
    volumes:
 | 
						|
      - ./docker/databases/mysql:/var/lib/mysql
 | 
						|
    restart: always
 | 
						|
    environment:
 | 
						|
      MYSQL_ROOT_PASSWORD: password123
 | 
						|
      MYSQL_DATABASE: statping
 | 
						|
      MYSQL_USER: root
 | 
						|
      MYSQL_PASSWORD: password
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
    healthcheck:
 | 
						|
      test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
 | 
						|
      timeout: 20s
 | 
						|
      interval: 15s
 | 
						|
      retries: 30
 | 
						|
 | 
						|
  phpmyadmin:
 | 
						|
    container_name: phpmyadmin
 | 
						|
    image: phpmyadmin/phpmyadmin
 | 
						|
    restart: on-failure
 | 
						|
    depends_on:
 | 
						|
      mysql:
 | 
						|
        condition: service_healthy
 | 
						|
    ports:
 | 
						|
      - 5050:80
 | 
						|
    links:
 | 
						|
      - mysql:db
 | 
						|
    environment:
 | 
						|
      VIRTUAL_HOST: phpmyadmin.statping.com
 | 
						|
      VIRTUAL_PORT: 80
 | 
						|
      MYSQL_ROOT_PASSWORD: password123
 | 
						|
      PMA_HOST: mysql
 | 
						|
      PMA_USER: root
 | 
						|
      PMA_PASSWORD: password123
 | 
						|
      PMA_PORT: 3306
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
 | 
						|
  sqlite-web:
 | 
						|
    container_name: sqlite-web
 | 
						|
    image: coleifer/sqlite-web
 | 
						|
    restart: on-failure
 | 
						|
    command: sqlite_web -H 0.0.0.0 -r -x /data/statping.db
 | 
						|
    depends_on:
 | 
						|
      statping:
 | 
						|
        condition: service_healthy
 | 
						|
    ports:
 | 
						|
      - 6050:8080
 | 
						|
    links:
 | 
						|
      - statping
 | 
						|
    volumes:
 | 
						|
      - ./docker/statping/sqlite/statping.db:/data/statping.db:ro
 | 
						|
    environment:
 | 
						|
      VIRTUAL_HOST: sqladmin.statping.com
 | 
						|
      VIRTUAL_PORT: 8080
 | 
						|
      SQLITE_DATABASE: /data/statping.db
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
 | 
						|
  pgadmin4:
 | 
						|
    container_name: pgadmin4
 | 
						|
    image: fenglc/pgadmin4
 | 
						|
    restart: on-failure
 | 
						|
    environment:
 | 
						|
      VIRTUAL_HOST: pgadmin.statping.com
 | 
						|
      VIRTUAL_PORT: 5050
 | 
						|
      DEFAULT_USER: admin@admin.com
 | 
						|
      DEFAULT_PASSWORD: admin
 | 
						|
    depends_on:
 | 
						|
      postgres:
 | 
						|
        condition: service_healthy
 | 
						|
    ports:
 | 
						|
      - 7000:5050
 | 
						|
    links:
 | 
						|
      - postgres:postgres
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
 | 
						|
  prometheus:
 | 
						|
    container_name: prometheus
 | 
						|
    image: prom/prometheus:v2.0.0
 | 
						|
    restart: on-failure
 | 
						|
    volumes:
 | 
						|
      - ./dev/prometheus.yml:/etc/prometheus/prometheus.yml
 | 
						|
      - ./docker/databases/prometheus:/prometheus
 | 
						|
    links:
 | 
						|
      - statping
 | 
						|
      - statping_mysql
 | 
						|
      - statping_postgres
 | 
						|
    ports:
 | 
						|
      - 7050:9090
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
    environment:
 | 
						|
      VIRTUAL_HOST: prometheus.statping.com
 | 
						|
      VIRTUAL_PORT: 9090
 | 
						|
    healthcheck:
 | 
						|
      test: "/bin/wget -q -Y off http://localhost:9090/status -O /dev/null > /dev/null 2>&1"
 | 
						|
      interval: 10s
 | 
						|
      timeout: 3s
 | 
						|
 | 
						|
  grafana:
 | 
						|
    container_name: grafana
 | 
						|
    image: grafana/grafana
 | 
						|
    restart: on-failure
 | 
						|
    ports:
 | 
						|
      - 3000:3000
 | 
						|
    volumes:
 | 
						|
      - ./docker/grafana:/var/lib/grafana
 | 
						|
      - ./dev/grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml
 | 
						|
      - ./dev/grafana/dashboard.yml:/etc/grafana/provisioning/dashboards/dashboard.yml
 | 
						|
      - ./dev/grafana/statping_dashboard.json:/etc/grafana/provisioning/dashboards/statping_dashboard.json
 | 
						|
    environment:
 | 
						|
      - VIRTUAL_HOST=grafana.statping.com
 | 
						|
      - VIRTUAL_PORT=3000
 | 
						|
      - GF_USERS_ALLOW_SIGN_UP=false
 | 
						|
      - GF_AUTH_ANONYMOUS_ENABLED=true
 | 
						|
    depends_on:
 | 
						|
      prometheus:
 | 
						|
        condition: service_healthy
 | 
						|
    links:
 | 
						|
      - prometheus
 | 
						|
    networks:
 | 
						|
      - statping
 | 
						|
    healthcheck:
 | 
						|
      test: "/usr/bin/wget -q -Y off http://localhost:3000/api/health -O /dev/null > /dev/null 2>&1"
 | 
						|
      interval: 10s
 | 
						|
      retries: 20
 | 
						|
 | 
						|
networks:
 | 
						|
  statping:
 |