PageSourceSearch

https://clud.me/assets/js/a287940b.3fcef1d1.js

js clud.me collected 2026-10-09 04:14:46 UTC 7,587 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkclud_blog=self.webpackChunkclud_blog||[]).push([["1025"],{9235(e,n,t){t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var s=t(7587),a=t(4848),l=t(8453);let r={title:"Metabase \uC124\uCE58",slug:"metabase-install",date:new Date("2021-02-19T00:00:00.000Z"),authors:["dongmyeong"],tags:["data"],description:"\uB370\uC774\uD130\uB97C \uC77D\uAE30 \uC27D\uAC8C \uC2DC\uAC01\uD654\uB97C \uD560 \uD544\uC694\uAC00 \uC0DD\uACA8\uC11C \uC5EC\uB7EC\uAC00\uC9C0 BI \uB3C4\uAD6C\uB4E4\uC744 \uCC3E\uC544\uBD24\uB2E4."},o,i={authorsImageUrls:[void 0]},c=[{value:"Metabase",id:"metabase",level:2},{value:"\uC124\uCE58",id:"\uC124\uCE58",level:3},{value:"docker-compose.yml",id:"docker-composeyml",level:4},{value:"modsec-crs-confs",id:"modsec-crs-confs",level:4},{value:"Athena \uC5F0\uB3D9",id:"athena-\uC5F0\uB3D9",level:3},{value:"\uB808\uD37C\uB7F0\uC2A4",id:"\uB808\uD37C\uB7F0\uC2A4",level:3}];function d(e){let n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:["\n",(0,a.jsx)(n.h2,{id:"metabase",children:"Metabase"}),"\n",(0,a.jsx)(n.p,{children:"\uB370\uC774\uD130\uB97C \uC77D\uAE30 \uC27D\uAC8C \uC2DC\uAC01\uD654\uB97C \uD560 \uD544\uC694\uAC00 \uC0DD\uACA8\uC11C \uC5EC\uB7EC\uAC00\uC9C0 BI \uB3C4\uAD6C\uB4E4\uC744 \uCC3E\uC544\uBD24\uB2E4."}),"\n",(0,a.jsx)(n.p,{children:"\uC81C\uD50C\uB9B0, \uD0C0\uBE14\uB85C, \uD30C\uC6CCBI \uB4F1 \uB2E4\uC591\uD55C \uB3C4\uAD6C\uB4E4\uC774 \uC788\uC9C0\uB9CC \uADF8 \uC911\uC5D0\uC11C\uB3C4 \uC624\uD508\uC18C\uC2A4\uC774\uBA74\uC11C \uC0AC\uC6A9\uD558\uAE30 \uAC04\uB2E8\uD558\uACE0, \uC124\uCE58\uC870\uCC28 \uB108\uBB34\uB098 \uAC04\uB2E8\uD55C Metabase \uB97C \uC0AC\uC6A9\uD558\uC5EC \uC124\uCE58\uBC95\uC744 \uAC04\uB2E8\uD558\uAC8C \uC815\uB9AC\uD574\uB454\uB2E4."}),"\n",(0,a.jsx)(n.h3,{id:"\uC124\uCE58",children:"\uC124\uCE58"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["\uAC1C\uC778 \uC11C\uBC84\uC5D0\uB2E4\uAC00 \uC124\uCE58\uD558\uAE30 \uB54C\uBB38\uC5D0 SSL \uC778\uC99D\uC11C \uB4F1 \uB2E4\uC591\uD55C \uCC98\uB9AC\uB97C \uC790\uB3D9\uC73C\uB85C \uD558\uAE30 \uC704\uD574 ",(0,a.jsx)(n.code,{children:"bunkerized-nginx"})," \uB97C \uC0AC\uC6A9\uD588\uB2E4."]}),"\n",(0,a.jsxs)(n.li,{children:["\uC124\uC815\uC744 \uAC04\uC18C\uD654 \uD558\uAE30 \uC704\uD574 ",(0,a.jsx)(n.code,{children:"docker-compose"})," \uB97C \uC0AC\uC6A9\uD588\uB2E4."]}),"\n"]}),"\n",(0,a.jsx)(n.h4,{id:"docker-composeyml",children:"docker-compose.yml"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-docker",children:"version: '3'\nservices:\n  nginx:\n    image: bunkerity/bunkerized-nginx\n    restart: always\n    ports:\n      - target: 8080\n        published: 80\n      - target: 8443\n        published: 443\n    volumes:\n      - ./letsencrypt:/etc/letsencrypt\n      - ./modsec-crs-confs:/modsec-crs-confs\n    environment:\n      - SERVER_NAME=clud.me\n      - SERVE_FILES=no\n      - DISABLE_DEFAULT_SERVER=yes\n      - REDIRECT_HTTP_TO_HTTPS=yes\n      - AUTO_LETS_ENCRYPT=yes\n      - ALLOWED_METHODS=GET|POST|HEAD|PUT|DELETE|FETCH\n      - USE_REVERSE_PROXY=yes\n      - USE_GZIP=yes\n      - USE_BROTLI=yes\n      - USE_FAIL2BAN=no\n      - USE_MODSECURITY=false\n      - USE_MODSECURITY_CRS=false\n      - REVERSE_PROXY_URL_1=/\n      - REVERSE_PROXY_HOST_1=http://metabase:3000/\n      - CONTENT_SECURITY_POLICY=CONTENT_SECURITY_POLICY-object-sr
1c 'none'; frame-ancestors 'self'; form-action 'self'; block-all-mixed-content; sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-downloads; base-uri 'self';\n\n  metabase:\n    image: metabase/metabase\n    restart: always\n    ports:\n      - target: 3000\n        published: 3000\n    volumes:\n      - /home/ubuntu/metabase:/metabase-data\n    environment:\n      - MB_DB_FILE=/metabase-data/metabase.db\n"})}),"\n",(0,a.jsx)(n.h4,{id:"modsec-crs-confs",children:"modsec-crs-confs"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-text",children:"SecAction \\\n \"id:900200,\\\n  phase:1,\\\n  nolog,\\\n  pass,\\\n  t:none,\\\n  setvar:'tx.allowed_methods=GET HEAD POST PROPFIND DELETE PUT MKCOL MOVE COPY PROPPATCH REPORT'\"\n"})}),"\n",(0,a.jsx)(n.h3,{id:"athena-\uC5F0\uB3D9",children:"Athena \uC5F0\uB3D9"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Metabase \uC5D0\uC11C Athena \uB97C \uC0AC\uC6A9\uD558\uAE30 \uC704\uD574\uC11C\uB294 JDBC \uB4DC\uB77C\uC774\uBC84\uB97C \uCD94\uAC00\uD574\uC918\uC57C\uD55C\uB2E4."}),"\n"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-docker",children:"FROM metabase/metabase:v0.37.3\n\nADD --chown=2000:2000 \\\n    https://github.com/dacort/metabase-athena-driver/releases/do\n"})}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"Dockerfile"})," \uC744 \uC791\uC131\uD55C \uD6C4 \uBE4C\uB4DC\uD558\uACE0 \uC2E4\uD589\uD55C\uB2E4."]}),"\n"]}),"\n",(0,a.jsx)(n.h3,{id:"\uB808\uD37C\uB7F0\uC2A4",children:"\uB808\uD37C\uB7F0\uC2A4"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"https://github.com/dacort/metabase-athena-driver",children:"https://github.com/dacort/metabase-athena-driver"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"https://github.com/bunkerity/bunkerized-nginx",children:"https://github.com/bunkerity/bunkerized-nginx"})}),"\n",(0,a.jsx)(n.li,{children:(0,a.jsx)(n.a,{href:"https://github.com/metabase/metabase",children:"https://github.com/metabase/metabase"})}),"\n"]})]})}function h(e={}){let{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8453(e,n,t){t.d(n,{R:()=>r,x:()=>o});var s=t(6540);let a={},l=s.createContext(a);function r(e){let n=s.useContext(l);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(l.Provider,{value:n},e.children)}},7587(e){e.exports=JSON.parse('{"permalink":"/blog/metabase-install","source":"@site/blog/2021-02-19-metabase-install/index.md","title":"Metabase \uC124\uCE58","description":"\uB370\uC774\uD130\uB97C \uC77D\uAE30 \uC27D\uAC8C \uC2DC\uAC01\uD654\uB97C \uD560 \uD544\uC694\uAC00 \uC0DD\uACA8\uC11C \uC5EC\uB7EC\uAC00\uC9C0 BI \uB3C4\uAD6C\uB4E4\uC744 \uCC3E\uC544\uBD24\uB2E4.","date":"2021-02-19T00:00:00.000Z","tags":[{"inline":false,"label":"\uB370\uC774\uD130","permalink":"/blog/tags/data"}],"readingTime":0.89,"hasTruncateMarker":true,"authors":[{"name":"\uC11C\uB3D9\uBA85","title":"Backend Engineer \xb7 Engineering Leader","url":"https://clud.me","socials":{"github":"https://github.com/claudeseo","linkedin":"https://www.linkedin.com/in/dongmyeong-seo-19703a110/"},"imageURL":"https://github.com/claudeseo.png","key":"dongmyeong","page":null}],"frontMatter":{"title":"Metabase \uC124\uCE58","slug":"metabase-install","date":"2021-02-19T00:00:00.000Z","authors":["dongmyeong"],"tags":["data"],"description":"\uB370\uC774\uD130\uB97C \uC77D\uAE30 \uC27D\uAC8C \uC2DC\uAC01\uD654\uB97C \uD560 \uD544\uC694\uAC00 \uC0DD\uACA8\uC11C \uC5EC\uB7EC\uAC00\uC9C0 BI \uB3C4\uAD6C\uB4E4\uC744 \uCC3E\uC544\uBD24\uB2E4."},"unlisted":false,"prevItem":{"title":"AWS Glue \uB85C\uCEEC\uC5D0\uC11C \uC2E4\uD589","permalink":"/blog/aws-glue-local"},"nextItem":{"title":"OpenVPN \uC11C\uBC84 \uAD6C\uCD95","permalink":"/blog/openvpn-server"}}')}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.