From d56dd8dce0963dbe4e0d4c5c4bfbe24d727843f9 Mon Sep 17 00:00:00 2001 From: Flinner Yuu Date: Sun, 11 Dec 2022 07:07:55 +0300 Subject: [PATCH] docker-compose --- docker-compose/docker-compose.yml | 71 +++++++++++++++++++++++++++++++ docker-compose/mosquitto.conf | 5 +++ docker-compose/nginx/fastcgi.conf | 22 ++++++++++ docker-compose/nginx/mime.types | 48 +++++++++++++++++++++ docker-compose/nginx/nginx.conf | 52 ++++++++++++++++++++++ docker-compose/nginx/proxy.conf | 11 +++++ docker-compose/telegraf.conf | 10 +++++ 7 files changed, 219 insertions(+) create mode 100644 docker-compose/docker-compose.yml create mode 100644 docker-compose/mosquitto.conf create mode 100644 docker-compose/nginx/fastcgi.conf create mode 100644 docker-compose/nginx/mime.types create mode 100644 docker-compose/nginx/nginx.conf create mode 100644 docker-compose/nginx/proxy.conf create mode 100644 docker-compose/telegraf.conf diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml new file mode 100644 index 0000000..a7a3d84 --- /dev/null +++ b/docker-compose/docker-compose.yml @@ -0,0 +1,71 @@ +version: "3.3" + +services: + nginx: + image: nginx:1.23.2 + networks: + - iot + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro + - ./nginx/mime.types:/etc/nginx/conf/mime.types:ro + - ./nginx/proxy.conf:/etc/nginx/proxy.conf:ro + - ./nginx/fastcgi.conf:/etc/nginx/fastcgi.conf:ro + - ./nginx/logs/:/etc/nginx/logs/ + ports: + - "80:80" + + mosquitto: + image: eclipse-mosquitto:latest + restart: always + ports: + - "1883:1883" + - "9001:9001" + networks: + - iot + volumes: + - ./mosquitto.conf:/mosquitto/config/mosquitto.conf + + influxdb: + image: influxdb:1.8 + restart: always + ports: + - "8086:8086" + networks: + - iot + volumes: + - influxdb-data:/var/lib/influxdb + + telegraf: + user: root + image: telegraf + restart: always + volumes: + - ./telegraf.conf:/etc/telegraf/telegraf.conf + depends_on: + - mosquitto + - influxdb + networks: + - iot + + grafana: + image: grafana/grafana + restart: always + ports: + - "3000:3000" + networks: + - iot + volumes: + - grafana-data:/var/lib/grafana + depends_on: + - influxdb + environment: + - GF_INSTALL_PLUGINS=volkovlabs-image-panel + - GF_PANELS_DISABLE_SANITIZE_HTML=true + - GF_AUTH_ANONYMOUS_ENABLED=true +networks: + iot: + +volumes: + influxdb-data: + grafana-data: + diff --git a/docker-compose/mosquitto.conf b/docker-compose/mosquitto.conf new file mode 100644 index 0000000..ba6984b --- /dev/null +++ b/docker-compose/mosquitto.conf @@ -0,0 +1,5 @@ +persistence true +persistence_location /mosquitto/data/ +log_dest file /mosquitto/log/mosquitto.log +listener 1883 +allow_anonymous true diff --git a/docker-compose/nginx/fastcgi.conf b/docker-compose/nginx/fastcgi.conf new file mode 100644 index 0000000..b8a55c5 --- /dev/null +++ b/docker-compose/nginx/fastcgi.conf @@ -0,0 +1,22 @@ +fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; +fastcgi_param QUERY_STRING $query_string; +fastcgi_param REQUEST_METHOD $request_method; +fastcgi_param CONTENT_TYPE $content_type; +fastcgi_param CONTENT_LENGTH $content_length; +fastcgi_param SCRIPT_NAME $fastcgi_script_name; +fastcgi_param REQUEST_URI $request_uri; +fastcgi_param DOCUMENT_URI $document_uri; +fastcgi_param DOCUMENT_ROOT $document_root; +fastcgi_param SERVER_PROTOCOL $server_protocol; +fastcgi_param GATEWAY_INTERFACE CGI/1.1; +fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; +fastcgi_param REMOTE_ADDR $remote_addr; +fastcgi_param REMOTE_PORT $remote_port; +fastcgi_param SERVER_ADDR $server_addr; +fastcgi_param SERVER_PORT $server_port; +fastcgi_param SERVER_NAME $server_name; + +fastcgi_index index.php; + +fastcgi_param REDIRECT_STATUS 200; + diff --git a/docker-compose/nginx/mime.types b/docker-compose/nginx/mime.types new file mode 100644 index 0000000..25ae94e --- /dev/null +++ b/docker-compose/nginx/mime.types @@ -0,0 +1,48 @@ +types { + text/html html htm shtml; + text/css css; + text/xml xml rss; + image/gif gif; + image/jpeg jpeg jpg; + application/x-javascript js; + text/plain txt; + text/x-component htc; + text/mathml mml; + image/png png; + image/x-icon ico; + image/x-jng jng; + image/vnd.wap.wbmp wbmp; + application/java-archive jar war ear; + application/mac-binhex40 hqx; + application/pdf pdf; + application/x-cocoa cco; + application/x-java-archive-diff jardiff; + application/x-java-jnlp-file jnlp; + application/x-makeself run; + application/x-perl pl pm; + application/x-pilot prc pdb; + application/x-rar-compressed rar; + application/x-redhat-package-manager rpm; + application/x-sea sea; + application/x-shockwave-flash swf; + application/x-stuffit sit; + application/x-tcl tcl tk; + application/x-x509-ca-cert der pem crt; + application/x-xpinstall xpi; + application/zip zip; + application/octet-stream deb; + application/octet-stream bin exe dll; + application/octet-stream dmg; + application/octet-stream eot; + application/octet-stream iso img; + application/octet-stream msi msp msm; + audio/mpeg mp3; + audio/x-realaudio ra; + video/mpeg mpeg mpg; + video/quicktime mov; + video/x-flv flv; + video/x-msvideo avi; + video/x-ms-wmv wmv; + video/x-ms-asf asx asf; + video/x-mng mng; +} diff --git a/docker-compose/nginx/nginx.conf b/docker-compose/nginx/nginx.conf new file mode 100644 index 0000000..3dfd2b3 --- /dev/null +++ b/docker-compose/nginx/nginx.conf @@ -0,0 +1,52 @@ +error_log logs/error.log; +pid logs/nginx.pid; +worker_rlimit_nofile 8192; + +events { + worker_connections 4096; ## Default: 1024 +} + +http { + include conf/mime.types; + include /etc/nginx/proxy.conf; + include /etc/nginx/fastcgi.conf; + index index.html index.htm index.php; + + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] $status ' + '"$request" $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log logs/access.log main; + sendfile on; + tcp_nopush on; + server_names_hash_bucket_size 128; # this seems to be required for some vhosts + + server { # php/fastcgi + listen 80; + server_name domain1.com www.domain1.com; + access_log logs/domain1.access.log main; + root html; + + location ~ \.php$ { + fastcgi_pass 127.0.0.1:1025; + } + } + + server { # simple reverse-proxy + listen 80; + server_name mqtt.ammar.engineer; + access_log logs/mqtt.ammar.engineer.access.log main; + + # serve static files + #location ~ ^/(images|javascript|js|css|flash|media|static)/ { + # root /var/www/virtual/big.server.com/htdocs; + # expires 30d; + #} + + # pass requests for dynamic content to rails/turbogears/zope, et al + location / { + proxy_pass http://grafana:3000; + } + } +} + diff --git a/docker-compose/nginx/proxy.conf b/docker-compose/nginx/proxy.conf new file mode 100644 index 0000000..6861ce3 --- /dev/null +++ b/docker-compose/nginx/proxy.conf @@ -0,0 +1,11 @@ +proxy_redirect off; +proxy_set_header Host $host; +proxy_set_header X-Real-IP $remote_addr; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +client_max_body_size 10m; +client_body_buffer_size 128k; +proxy_connect_timeout 90; +proxy_send_timeout 90; +proxy_read_timeout 90; +proxy_buffers 32 4k; + diff --git a/docker-compose/telegraf.conf b/docker-compose/telegraf.conf new file mode 100644 index 0000000..346a127 --- /dev/null +++ b/docker-compose/telegraf.conf @@ -0,0 +1,10 @@ +[[outputs.influxdb]] + urls = ["http://influxdb:8086"] + database = "pipe_system" + skip_database_creation = false +[[inputs.mqtt_consumer]] + servers = ["tcp://mosquitto:1883"] + topics = [ + "pipe_system/#" + ] +