diff --git a/404.html b/404.html index d395e1e..598901b 100644 --- a/404.html +++ b/404.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/assets/js/a951fea5.63daa67d.js b/assets/js/a951fea5.f59928b7.js similarity index 98% rename from assets/js/a951fea5.63daa67d.js rename to assets/js/a951fea5.f59928b7.js index 6a5f051..8b4a5b4 100644 --- a/assets/js/a951fea5.63daa67d.js +++ b/assets/js/a951fea5.f59928b7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"April 8, 2024",tags:[{label:"casvisor",permalink:"/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"April 8, 2024",tags:[{label:"casvisor",permalink:"/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/acf87bcd.b6cf2d0f.js b/assets/js/acf87bcd.900dd8c9.js similarity index 98% rename from assets/js/acf87bcd.b6cf2d0f.js rename to assets/js/acf87bcd.900dd8c9.js index bb0a4fa..7e81697 100644 --- a/assets/js/acf87bcd.b6cf2d0f.js +++ b/assets/js/acf87bcd.900dd8c9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"April 8, 2024",tags:[{label:"casvisor",permalink:"/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"April 8, 2024",tags:[{label:"casvisor",permalink:"/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.dcd051a4.js b/assets/js/b2f554cd.72d54569.js similarity index 93% rename from assets/js/b2f554cd.dcd051a4.js rename to assets/js/b2f554cd.72d54569.js index 91786e0..cdddc04 100644 --- a/assets/js/b2f554cd.dcd051a4.js +++ b/assets/js/b2f554cd.72d54569.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[301],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T02:45:07.000Z","formattedDate":"April 8, 2024","tags":[{"label":"casvisor","permalink":"/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[301],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T11:08:16.000Z","formattedDate":"April 8, 2024","tags":[{"label":"casvisor","permalink":"/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file diff --git a/assets/js/d4e54de2.ab265d9c.js b/assets/js/d4e54de2.ab265d9c.js new file mode 100644 index 0000000..fcd5ec6 --- /dev/null +++ b/assets/js/d4e54de2.ab265d9c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>g});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,g=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(g,i(i({ref:t},d),{},{components:a})):n.createElement(g,i({ref:t},d))}));function g(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Nginx",id:"nginx",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h4",{id:"nginx"},"Nginx"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you use nginx as a reverse proxy, you need to add the following configuration to the nginx configuration file:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'location / {\n *** your configuration ***\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}\n')),(0,o.kt)("p",{parentName:"admonition"},"Because Casvisor uses websocket to communicate with guacd.")),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/assets/js/d4e54de2.acf19d4b.js b/assets/js/d4e54de2.acf19d4b.js deleted file mode 100644 index 0dfe46a..0000000 --- a/assets/js/d4e54de2.acf19d4b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(k,i(i({ref:t},d),{},{components:a})):n.createElement(k,i({ref:t},d))}));function k(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.f50b0463.js b/assets/js/runtime~main.cd21f086.js similarity index 53% rename from assets/js/runtime~main.f50b0463.js rename to assets/js/runtime~main.cd21f086.js index e4d7e59..af955a4 100644 --- a/assets/js/runtime~main.f50b0463.js +++ b/assets/js/runtime~main.cd21f086.js @@ -1 +1 @@ -(()=>{"use strict";var e,t,a,r,c,d={},o={};function f(e){var t=o[e];if(void 0!==t)return t.exports;var a=o[e]={exports:{}};return d[e].call(a.exports,a,a.exports,f),a.exports}f.m=d,e=[],f.O=(t,a,r,c)=>{if(!a){var d=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](a[n])))?a.splice(n--,1):(o=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,r,c]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var d={};t=t||[null,a({}),a([]),a(a)];for(var o=2&r&&e;"object"==typeof o&&!~t.indexOf(o);o=a(o))Object.getOwnPropertyNames(o).forEach((t=>d[t]=()=>e[t]));return d.default=()=>e,f.d(c,d),c},f.d=(e,t)=>{for(var a in t)f.o(t,a)&&!f.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,a)=>(f.f[a](e,t),t)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",151:"7190cbd8",167:"3c34cc8d",195:"c4f5d8e4",217:"1dba9094",301:"b2f554cd",310:"ea47aeb2",369:"52be48e5",391:"290cc788",432:"a951fea5",477:"9f958c7d",514:"1be78505",533:"b2b675dd",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",713:"a7023ddc",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",864:"8dd2e619",918:"17896441",933:"39b3f2e7"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"a7b346ad",68:"fcef898b",81:"46eb4fb4",89:"1656bb5b",103:"e5273bec",151:"da92c47e",167:"f69c8db3",195:"5f072758",217:"b7d5aef2",301:"dcd051a4",310:"5e8db163",316:"81ede736",369:"68628eb6",391:"0946f115",432:"63daa67d",477:"35229af6",487:"c64f1a92",514:"bc0c2ac7",533:"124ddf38",535:"17c47168",562:"ab71eabd",583:"acf19d4b",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"b6cf2d0f",713:"3b3f3e4a",724:"1f48a7fd",740:"70ede3d4",776:"6100ff5e",778:"5e624e7e",780:"de6153af",817:"59925caf",864:"5528c9b9",918:"d7957afb",933:"0098bc9a",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},c="casvisor-website:",f.l=(e,t,a,d)=>{if(r[e])r[e].push(t);else{var o,n;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach((e=>e(a))),t)return t(a)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=s.bind(null,o.onerror),o.onload=s.bind(null,o.onload),n&&document.head.appendChild(o)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","7190cbd8":"151","3c34cc8d":"167",c4f5d8e4:"195","1dba9094":"217",b2f554cd:"301",ea47aeb2:"310","52be48e5":"369","290cc788":"391",a951fea5:"432","9f958c7d":"477","1be78505":"514",b2b675dd:"533","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646",a7023ddc:"713","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817","8dd2e619":"864","39b3f2e7":"933"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(t,a)=>{var r=f.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var c=new Promise(((a,c)=>r=e[t]=[a,c]));a.push(r[2]=c);var d=f.p+f.u(t),o=new Error;f.l(d,(a=>{if(f.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var c=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;o.message="Loading chunk "+t+" failed.\n("+c+": "+d+")",o.name="ChunkLoadError",o.type=c,o.request=d,r[1](o)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,a)=>{var r,c,d=a[0],o=a[1],n=a[2],b=0;if(d.some((t=>0!==e[t]))){for(r in o)f.o(o,r)&&(f.m[r]=o[r]);if(n)var i=n(f)}for(t&&t(a);b{"use strict";var e,t,a,r,c,d={},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var a=o[e]={exports:{}};return d[e].call(a.exports,a,a.exports,n),a.exports}n.m=d,e=[],n.O=(t,a,r,c)=>{if(!a){var d=1/0;for(i=0;i=c)&&Object.keys(n.O).every((e=>n.O[e](a[f])))?a.splice(f--,1):(o=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,r,c]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);n.r(c);var d={};t=t||[null,a({}),a([]),a(a)];for(var o=2&r&&e;"object"==typeof o&&!~t.indexOf(o);o=a(o))Object.getOwnPropertyNames(o).forEach((t=>d[t]=()=>e[t]));return d.default=()=>e,n.d(c,d),c},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,a)=>(n.f[a](e,t),t)),[])),n.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",151:"7190cbd8",167:"3c34cc8d",195:"c4f5d8e4",217:"1dba9094",301:"b2f554cd",310:"ea47aeb2",369:"52be48e5",391:"290cc788",432:"a951fea5",477:"9f958c7d",514:"1be78505",533:"b2b675dd",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",713:"a7023ddc",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",864:"8dd2e619",918:"17896441",933:"39b3f2e7"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"a7b346ad",68:"fcef898b",81:"46eb4fb4",89:"1656bb5b",103:"e5273bec",151:"da92c47e",167:"f69c8db3",195:"5f072758",217:"b7d5aef2",301:"72d54569",310:"5e8db163",316:"81ede736",369:"68628eb6",391:"0946f115",432:"f59928b7",477:"35229af6",487:"c64f1a92",514:"bc0c2ac7",533:"124ddf38",535:"17c47168",562:"ab71eabd",583:"ab265d9c",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"900dd8c9",713:"3b3f3e4a",724:"1f48a7fd",740:"70ede3d4",776:"6100ff5e",778:"5e624e7e",780:"de6153af",817:"59925caf",864:"5528c9b9",918:"d7957afb",933:"0098bc9a",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},c="casvisor-website:",n.l=(e,t,a,d)=>{if(r[e])r[e].push(t);else{var o,f;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach((e=>e(a))),t)return t(a)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=s.bind(null,o.onerror),o.onload=s.bind(null,o.onload),f&&document.head.appendChild(o)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",n.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","7190cbd8":"151","3c34cc8d":"167",c4f5d8e4:"195","1dba9094":"217",b2f554cd:"301",ea47aeb2:"310","52be48e5":"369","290cc788":"391",a951fea5:"432","9f958c7d":"477","1be78505":"514",b2b675dd:"533","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646",a7023ddc:"713","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817","8dd2e619":"864","39b3f2e7":"933"}[e]||e,n.p+n.u(e)},(()=>{var e={303:0,532:0};n.f.j=(t,a)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var c=new Promise(((a,c)=>r=e[t]=[a,c]));a.push(r[2]=c);var d=n.p+n.u(t),o=new Error;n.l(d,(a=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var c=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;o.message="Loading chunk "+t+" failed.\n("+c+": "+d+")",o.name="ChunkLoadError",o.type=c,o.request=d,r[1](o)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,a)=>{var r,c,d=a[0],o=a[1],f=a[2],b=0;if(d.some((t=>0!==e[t]))){for(r in o)n.o(o,r)&&(n.m[r]=o[r]);if(f)var i=f(n)}for(t&&t(a);b!function(t,h,e,j,s,n){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:3620236,hjsv:6},s=h.getElementsByTagName("head")[0],(n=h.createElement("script")).async=1,n.src="https://static.hotjar.com/c/hotjar-"+t._hjSettings.hjid+".js?sv="+t._hjSettings.hjsv,s.appendChild(n)}(window,document) - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml index 302e22d..4fb66ab 100644 --- a/blog/atom.xml +++ b/blog/atom.xml @@ -2,7 +2,7 @@ https://casvisor.org/blog Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z https://github.com/jpmonette/feed Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog @@ -11,7 +11,7 @@ <![CDATA[Welcome]]> https://casvisor.org/blog/welcome - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z Welcome to Casvisor website!

]]>
diff --git a/blog/index.html b/blog/index.html index 561ea57..21e7629 100644 --- a/blog/index.html +++ b/blog/index.html @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/blog/welcome/index.html b/blog/welcome/index.html index 7a27622..8f7e32a 100644 --- a/blog/welcome/index.html +++ b/blog/welcome/index.html @@ -3,7 +3,7 @@ -Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform +Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/de/assets/js/291c70d7.6406d590.js b/de/assets/js/291c70d7.c971b548.js similarity index 93% rename from de/assets/js/291c70d7.6406d590.js rename to de/assets/js/291c70d7.c971b548.js index c7e3a19..4b4f268 100644 --- a/de/assets/js/291c70d7.6406d590.js +++ b/de/assets/js/291c70d7.c971b548.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[725],{9574:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/de/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T02:45:07.000Z","formattedDate":"8. April 2024","tags":[{"label":"casvisor","permalink":"/de/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[725],{9574:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/de/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T11:08:16.000Z","formattedDate":"8. April 2024","tags":[{"label":"casvisor","permalink":"/de/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file diff --git a/de/assets/js/a951fea5.cdc6085b.js b/de/assets/js/a951fea5.d4ffa053.js similarity index 98% rename from de/assets/js/a951fea5.cdc6085b.js rename to de/assets/js/a951fea5.d4ffa053.js index d737754..0d9a9be 100644 --- a/de/assets/js/a951fea5.cdc6085b.js +++ b/de/assets/js/a951fea5.d4ffa053.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/de/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"8. April 2024",tags:[{label:"casvisor",permalink:"/de/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/de/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"8. April 2024",tags:[{label:"casvisor",permalink:"/de/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/acf87bcd.83d4a3a5.js b/de/assets/js/acf87bcd.07678cea.js similarity index 98% rename from de/assets/js/acf87bcd.83d4a3a5.js rename to de/assets/js/acf87bcd.07678cea.js index 420591a..8b54093 100644 --- a/de/assets/js/acf87bcd.83d4a3a5.js +++ b/de/assets/js/acf87bcd.07678cea.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/de/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"8. April 2024",tags:[{label:"casvisor",permalink:"/de/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/de/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"8. April 2024",tags:[{label:"casvisor",permalink:"/de/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/de/assets/js/d4e54de2.7d9909ff.js b/de/assets/js/d4e54de2.7d9909ff.js new file mode 100644 index 0000000..9602ea0 --- /dev/null +++ b/de/assets/js/d4e54de2.7d9909ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>g});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,g=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(g,i(i({ref:t},d),{},{components:a})):n.createElement(g,i({ref:t},d))}));function g(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/de/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/de/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/de/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Nginx",id:"nginx",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h4",{id:"nginx"},"Nginx"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you use nginx as a reverse proxy, you need to add the following configuration to the nginx configuration file:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'location / {\n *** your configuration ***\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}\n')),(0,o.kt)("p",{parentName:"admonition"},"Because Casvisor uses websocket to communicate with guacd.")),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/de/assets/js/d4e54de2.fad79a7e.js b/de/assets/js/d4e54de2.fad79a7e.js deleted file mode 100644 index 9040043..0000000 --- a/de/assets/js/d4e54de2.fad79a7e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(k,i(i({ref:t},d),{},{components:a})):n.createElement(k,i({ref:t},d))}));function k(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/de/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/de/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/de/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/de/assets/js/runtime~main.3e0ef574.js b/de/assets/js/runtime~main.3e0ef574.js deleted file mode 100644 index c0f51c7..0000000 --- a/de/assets/js/runtime~main.3e0ef574.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,t,r,a,c,o={},d={};function f(e){var t=d[e];if(void 0!==t)return t.exports;var r=d[e]={exports:{}};return o[e].call(r.exports,r,r.exports,f),r.exports}f.m=o,e=[],f.O=(t,r,a,c)=>{if(!r){var o=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](r[n])))?r.splice(n--,1):(d=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[r,a,c]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var o={};t=t||[null,r({}),r([]),r(r)];for(var d=2&a&&e;"object"==typeof d&&!~t.indexOf(d);d=r(d))Object.getOwnPropertyNames(d).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,f.d(c,o),c},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,r)=>(f.f[r](e,t),t)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",45:"5a84578f",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",307:"efa2691c",310:"ea47aeb2",391:"290cc788",432:"a951fea5",495:"41944db3",512:"756b6fdd",514:"1be78505",534:"5c56caec",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",725:"291c70d7",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",864:"8dd2e619",917:"06459453",918:"17896441"}[e]||e)+"."+{13:"3186fb4b",45:"605ae6e1",48:"63c544ab",53:"062cb9f6",68:"02ae9043",81:"c3f39f16",89:"1656bb5b",103:"e5273bec",151:"f180b9d5",195:"5f072758",217:"b7d5aef2",307:"070b54c6",310:"cc288558",316:"81ede736",391:"0946f115",432:"cdc6085b",487:"c64f1a92",495:"a76584eb",512:"1ed9e966",514:"bc0c2ac7",534:"b9b80df1",535:"21bb2956",562:"3d64ac69",583:"fad79a7e",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"83d4a3a5",724:"1f48a7fd",725:"6406d590",740:"70ede3d4",776:"afd3c150",778:"0208f995",780:"de6153af",817:"59925caf",864:"5528c9b9",917:"12299bd9",918:"d7957afb",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},c="casvisor-website:",f.l=(e,t,r,o)=>{if(a[e])a[e].push(t);else{var d,n;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(l);var c=a[e];if(delete a[e],d.parentNode&&d.parentNode.removeChild(d),c&&c.forEach((e=>e(r))),t)return t(r)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=s.bind(null,d.onerror),d.onload=s.bind(null,d.onload),n&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/de/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","5a84578f":"45","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217",efa2691c:"307",ea47aeb2:"310","290cc788":"391",a951fea5:"432","41944db3":"495","756b6fdd":"512","1be78505":"514","5c56caec":"534","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646","291c70d7":"725","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817","8dd2e619":"864","06459453":"917"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(t,r)=>{var a=f.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var c=new Promise(((r,c)=>a=e[t]=[r,c]));r.push(a[2]=c);var o=f.p+f.u(t),d=new Error;f.l(o,(r=>{if(f.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var c=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;d.message="Loading chunk "+t+" failed.\n("+c+": "+o+")",d.name="ChunkLoadError",d.type=c,d.request=o,a[1](d)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,r)=>{var a,c,o=r[0],d=r[1],n=r[2],b=0;if(o.some((t=>0!==e[t]))){for(a in d)f.o(d,a)&&(f.m[a]=d[a]);if(n)var i=n(f)}for(t&&t(r);b{"use strict";var e,t,a,r,c,o={},f={};function d(e){var t=f[e];if(void 0!==t)return t.exports;var a=f[e]={exports:{}};return o[e].call(a.exports,a,a.exports,d),a.exports}d.m=o,e=[],d.O=(t,a,r,c)=>{if(!a){var o=1/0;for(i=0;i=c)&&Object.keys(d.O).every((e=>d.O[e](a[n])))?a.splice(n--,1):(f=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,r,c]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);d.r(c);var o={};t=t||[null,a({}),a([]),a(a)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=a(f))Object.getOwnPropertyNames(f).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,d.d(c,o),c},d.d=(e,t)=>{for(var a in t)d.o(t,a)&&!d.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,a)=>(d.f[a](e,t),t)),[])),d.u=e=>"assets/js/"+({13:"01a85c17",45:"5a84578f",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",307:"efa2691c",310:"ea47aeb2",391:"290cc788",432:"a951fea5",495:"41944db3",512:"756b6fdd",514:"1be78505",534:"5c56caec",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",725:"291c70d7",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",864:"8dd2e619",917:"06459453",918:"17896441"}[e]||e)+"."+{13:"3186fb4b",45:"605ae6e1",48:"63c544ab",53:"062cb9f6",68:"02ae9043",81:"c3f39f16",89:"1656bb5b",103:"e5273bec",151:"f180b9d5",195:"5f072758",217:"b7d5aef2",307:"070b54c6",310:"cc288558",316:"81ede736",391:"0946f115",432:"d4ffa053",487:"c64f1a92",495:"a76584eb",512:"1ed9e966",514:"bc0c2ac7",534:"b9b80df1",535:"21bb2956",562:"3d64ac69",583:"7d9909ff",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"07678cea",724:"1f48a7fd",725:"c971b548",740:"70ede3d4",776:"afd3c150",778:"0208f995",780:"de6153af",817:"59925caf",864:"5528c9b9",917:"12299bd9",918:"d7957afb",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},c="casvisor-website:",d.l=(e,t,a,o)=>{if(r[e])r[e].push(t);else{var f,n;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i{f.onerror=f.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),c&&c.forEach((e=>e(a))),t)return t(a)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),n&&document.head.appendChild(f)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/de/",d.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","5a84578f":"45","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217",efa2691c:"307",ea47aeb2:"310","290cc788":"391",a951fea5:"432","41944db3":"495","756b6fdd":"512","1be78505":"514","5c56caec":"534","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646","291c70d7":"725","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817","8dd2e619":"864","06459453":"917"}[e]||e,d.p+d.u(e)},(()=>{var e={303:0,532:0};d.f.j=(t,a)=>{var r=d.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var c=new Promise(((a,c)=>r=e[t]=[a,c]));a.push(r[2]=c);var o=d.p+d.u(t),f=new Error;d.l(o,(a=>{if(d.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var c=a&&("load"===a.type?"missing":a.type),o=a&&a.target&&a.target.src;f.message="Loading chunk "+t+" failed.\n("+c+": "+o+")",f.name="ChunkLoadError",f.type=c,f.request=o,r[1](f)}}),"chunk-"+t,t)}},d.O.j=t=>0===e[t];var t=(t,a)=>{var r,c,o=a[0],f=a[1],n=a[2],b=0;if(o.some((t=>0!==e[t]))){for(r in f)d.o(f,r)&&(d.m[r]=f[r]);if(n)var i=n(d)}for(t&&t(a);b!function(t,h,e,j,s,n){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:3620236,hjsv:6},s=h.getElementsByTagName("head")[0],(n=h.createElement("script")).async=1,n.src="https://static.hotjar.com/c/hotjar-"+t._hjSettings.hjid+".js?sv="+t._hjSettings.hjsv,s.appendChild(n)}(window,document) - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/de/blog/atom.xml b/de/blog/atom.xml index e7b4408..aa84a36 100644 --- a/de/blog/atom.xml +++ b/de/blog/atom.xml @@ -2,7 +2,7 @@ https://casvisor.org/de/blog Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z https://github.com/jpmonette/feed Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog @@ -11,7 +11,7 @@ <![CDATA[Welcome]]> https://casvisor.org/de/blog/welcome - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z Welcome to Casvisor website!

]]>
diff --git a/de/blog/index.html b/de/blog/index.html index 2e6a492..6d02ed3 100644 --- a/de/blog/index.html +++ b/de/blog/index.html @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/de/blog/welcome/index.html b/de/blog/welcome/index.html index 776f325..f4f53b2 100644 --- a/de/blog/welcome/index.html +++ b/de/blog/welcome/index.html @@ -3,7 +3,7 @@ -Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform +Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/de/docs/asset/intranet/index.html b/de/docs/asset/intranet/index.html index 8ddaba4..2f3c626 100644 --- a/de/docs/asset/intranet/index.html +++ b/de/docs/asset/intranet/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/de/docs/asset/overview/index.html b/de/docs/asset/overview/index.html index fe3c5a0..4c3288f 100644 --- a/de/docs/asset/overview/index.html +++ b/de/docs/asset/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/de/docs/asset/rdp/index.html b/de/docs/asset/rdp/index.html index c3188be..dd1517f 100644 --- a/de/docs/asset/rdp/index.html +++ b/de/docs/asset/rdp/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/de/docs/asset/vnc/index.html b/de/docs/asset/vnc/index.html index ef5d1df..7c3e3a7 100644 --- a/de/docs/asset/vnc/index.html +++ b/de/docs/asset/vnc/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/de/docs/basic/installation/index.html b/de/docs/basic/installation/index.html index 6d67022..7286c07 100644 --- a/de/docs/basic/installation/index.html +++ b/de/docs/basic/installation/index.html @@ -12,7 +12,7 @@ - + @@ -23,12 +23,12 @@ can create an application by clicking the add button.

create application

Required fields:

  1. Home: The host of Casvisor server, e.g. http://localhost:16001.
  2. Ognization: The organization you created in the previous step.
  3. Callback URLs: The callback URL of Casvisor server, e.g. http://localhost:16001/callback. You can add multiple callback URLs by clicking the add button. These are the urls that is allowed to be redirected after login.

application edit

guacd

Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install guacamole-server first. If you haven't installed guacamole-server, please refer to guacamole-server Installation.

You can also run guacd in docker with the following command:

docker run -d --name guacd -p 4822:4822 guacamole/guacd

Download

The source code of Casvisor is hosted on GitHub: https://github.com/casvisor/casvisor. Both the Go backend code and React frontend code are contained in a single repository.

NameDescriptionLanguageSource code
FrontendWeb frontend UI for CasdoorJavaScript + Reacthttps://github.com/casvisor/casvisor/tree/master/web
BackendRESTful API backend for CasdoorGolang + Beego + XORMhttps://github.com/casvisor/casvisor

Casvisor supports Go Modules. To download the code, simply clone the code using git:

git clone https://github.com/casvisor/casvisor

Configuration

Backend

The configuration file of Casvisor backend located at conf/app.conf. You need to modify the following fields:

Database

Modify dataSourceName to your own database connection string. Casvisor will create a database named casvisor if it doesn't exist.

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casvisor

Connect Casdoor

Modify casdoorEndpoint, clientID, clientSecret, casdoorOrganization and casdoorApplication to your own Casdoor configuration. -You can get the clientID and clientSecret from the application page that you created in the previous step.

casdoorEndpoint = http://localhost:8000
clientId = c34fdf145f41313727a8
clientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832
casdoorOrganization = "casbin"
casdoorApplication = "app-casvisor"

Frontend

In web/src/conf.js, you need to modify the following fields:

    export const AuthConfig = {
serverUrl: "http://localhost:8000",
clientId: "c34fdf145f4131b727a8",
appName: "app-casvisor",
organizationName: "casbin",
redirectPath: "/callback",
};

Run

Before running Casvisor, make sure Casdoor is running.

Production

In production, you need to build the frontend code first, then run the backend code.

Build frontend

cd web
yarn install
yarn build

After building successfully, the frontend bundle will be generated in web/build directory.

Run backend

go build

Visit backend server at http://localhost:19000.

Development

In development, you need to run the frontend code and backend code at the same time.

Run frontend

cd web
yarn install
yarn start

Run backend

go build

Visit frontend server http://localhost:16001.


- + \ No newline at end of file diff --git a/de/docs/basic/try-with-docker/index.html b/de/docs/basic/try-with-docker/index.html index 129a2d2..946a98a 100644 --- a/de/docs/basic/try-with-docker/index.html +++ b/de/docs/basic/try-with-docker/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@
- + \ No newline at end of file diff --git a/de/docs/category/assets/index.html b/de/docs/category/assets/index.html index eede317..cbb43f7 100644 --- a/de/docs/category/assets/index.html +++ b/de/docs/category/assets/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/de/docs/category/the-basics/index.html b/de/docs/category/the-basics/index.html index 5a72e6b..db87663 100644 --- a/de/docs/category/the-basics/index.html +++ b/de/docs/category/the-basics/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/de/docs/overview/index.html b/de/docs/overview/index.html index 80a97c4..0e32e2e 100644 --- a/de/docs/overview/index.html +++ b/de/docs/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/de/help/index.html b/de/help/index.html index 794eb74..1e5761d 100644 --- a/de/help/index.html +++ b/de/help/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/de/index.html b/de/index.html index e2ed184..497e4d5 100644 --- a/de/index.html +++ b/de/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/de/pdf/index.html b/de/pdf/index.html index 6668a70..391a85a 100644 --- a/de/pdf/index.html +++ b/de/pdf/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/de/users/index.html b/de/users/index.html index 9bad6f2..73bafa9 100644 --- a/de/users/index.html +++ b/de/users/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/docs/asset/database/index.html b/docs/asset/database/index.html index 098e3e0..a071a7b 100644 --- a/docs/asset/database/index.html +++ b/docs/asset/database/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/docs/asset/intranet/index.html b/docs/asset/intranet/index.html index 33edda2..a09a52b 100644 --- a/docs/asset/intranet/index.html +++ b/docs/asset/intranet/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/docs/asset/overview/index.html b/docs/asset/overview/index.html index 947a226..451db4e 100644 --- a/docs/asset/overview/index.html +++ b/docs/asset/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/docs/asset/rdp/index.html b/docs/asset/rdp/index.html index fc65643..7f04e4b 100644 --- a/docs/asset/rdp/index.html +++ b/docs/asset/rdp/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/docs/asset/vnc/index.html b/docs/asset/vnc/index.html index ec34716..a0bb7cd 100644 --- a/docs/asset/vnc/index.html +++ b/docs/asset/vnc/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/docs/basic/installation/index.html b/docs/basic/installation/index.html index d430f79..f584baa 100644 --- a/docs/basic/installation/index.html +++ b/docs/basic/installation/index.html @@ -12,7 +12,7 @@ - + @@ -23,12 +23,12 @@ can create an application by clicking the add button.

create application

Required fields:

  1. Home: The host of Casvisor server, e.g. http://localhost:16001.
  2. Ognization: The organization you created in the previous step.
  3. Callback URLs: The callback URL of Casvisor server, e.g. http://localhost:16001/callback. You can add multiple callback URLs by clicking the add button. These are the urls that is allowed to be redirected after login.

application edit

guacd

Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install guacamole-server first. If you haven't installed guacamole-server, please refer to guacamole-server Installation.

You can also run guacd in docker with the following command:

docker run -d --name guacd -p 4822:4822 guacamole/guacd

Download

The source code of Casvisor is hosted on GitHub: https://github.com/casvisor/casvisor. Both the Go backend code and React frontend code are contained in a single repository.

NameDescriptionLanguageSource code
FrontendWeb frontend UI for CasdoorJavaScript + Reacthttps://github.com/casvisor/casvisor/tree/master/web
BackendRESTful API backend for CasdoorGolang + Beego + XORMhttps://github.com/casvisor/casvisor

Casvisor supports Go Modules. To download the code, simply clone the code using git:

git clone https://github.com/casvisor/casvisor

Configuration

Backend

The configuration file of Casvisor backend located at conf/app.conf. You need to modify the following fields:

Database

Modify dataSourceName to your own database connection string. Casvisor will create a database named casvisor if it doesn't exist.

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casvisor

Connect Casdoor

Modify casdoorEndpoint, clientID, clientSecret, casdoorOrganization and casdoorApplication to your own Casdoor configuration. -You can get the clientID and clientSecret from the application page that you created in the previous step.

casdoorEndpoint = http://localhost:8000
clientId = c34fdf145f41313727a8
clientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832
casdoorOrganization = "casbin"
casdoorApplication = "app-casvisor"

Frontend

In web/src/conf.js, you need to modify the following fields:

    export const AuthConfig = {
serverUrl: "http://localhost:8000",
clientId: "c34fdf145f4131b727a8",
appName: "app-casvisor",
organizationName: "casbin",
redirectPath: "/callback",
};

Run

Before running Casvisor, make sure Casdoor is running.

Production

In production, you need to build the frontend code first, then run the backend code.

Build frontend

cd web
yarn install
yarn build

After building successfully, the frontend bundle will be generated in web/build directory.

Run backend

go build

Visit backend server at http://localhost:19000.

Development

In development, you need to run the frontend code and backend code at the same time.

Run frontend

cd web
yarn install
yarn start

Run backend

go build

Visit frontend server http://localhost:16001.


- + \ No newline at end of file diff --git a/docs/basic/try-with-docker/index.html b/docs/basic/try-with-docker/index.html index 6f1b40f..00f0c44 100644 --- a/docs/basic/try-with-docker/index.html +++ b/docs/basic/try-with-docker/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@
- + \ No newline at end of file diff --git a/docs/category/assets/index.html b/docs/category/assets/index.html index b1c42fc..ffbed0c 100644 --- a/docs/category/assets/index.html +++ b/docs/category/assets/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/docs/category/the-basics/index.html b/docs/category/the-basics/index.html index 2026ad2..30425b5 100644 --- a/docs/category/the-basics/index.html +++ b/docs/category/the-basics/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/docs/overview/index.html b/docs/overview/index.html index 7dbc915..b5cc87f 100644 --- a/docs/overview/index.html +++ b/docs/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/404.html b/fr/404.html index 0f4dc91..7776f23 100644 --- a/fr/404.html +++ b/fr/404.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/assets/js/a951fea5.587da6f5.js b/fr/assets/js/a951fea5.1cc59a16.js similarity index 98% rename from fr/assets/js/a951fea5.587da6f5.js rename to fr/assets/js/a951fea5.1cc59a16.js index ce09e17..fe8bdec 100644 --- a/fr/assets/js/a951fea5.587da6f5.js +++ b/fr/assets/js/a951fea5.1cc59a16.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/fr/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"8 avril 2024",tags:[{label:"casvisor",permalink:"/fr/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/fr/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"8 avril 2024",tags:[{label:"casvisor",permalink:"/fr/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/acf87bcd.c8241db0.js b/fr/assets/js/acf87bcd.96b2f257.js similarity index 98% rename from fr/assets/js/acf87bcd.c8241db0.js rename to fr/assets/js/acf87bcd.96b2f257.js index a68ee1c..4e15c9a 100644 --- a/fr/assets/js/acf87bcd.c8241db0.js +++ b/fr/assets/js/acf87bcd.96b2f257.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/fr/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"8 avril 2024",tags:[{label:"casvisor",permalink:"/fr/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/fr/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"8 avril 2024",tags:[{label:"casvisor",permalink:"/fr/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/fr/assets/js/cf23ded0.412a4b59.js b/fr/assets/js/cf23ded0.6d8a93be.js similarity index 93% rename from fr/assets/js/cf23ded0.412a4b59.js rename to fr/assets/js/cf23ded0.6d8a93be.js index b933331..7f43101 100644 --- a/fr/assets/js/cf23ded0.412a4b59.js +++ b/fr/assets/js/cf23ded0.6d8a93be.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[375],{441:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/fr/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T02:45:07.000Z","formattedDate":"8 avril 2024","tags":[{"label":"casvisor","permalink":"/fr/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[375],{441:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/fr/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T11:08:16.000Z","formattedDate":"8 avril 2024","tags":[{"label":"casvisor","permalink":"/fr/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file diff --git a/fr/assets/js/d4e54de2.1dcbb0cf.js b/fr/assets/js/d4e54de2.1dcbb0cf.js deleted file mode 100644 index 787cd86..0000000 --- a/fr/assets/js/d4e54de2.1dcbb0cf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(k,i(i({ref:t},d),{},{components:a})):n.createElement(k,i({ref:t},d))}));function k(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/fr/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/fr/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/fr/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/d4e54de2.9880418e.js b/fr/assets/js/d4e54de2.9880418e.js new file mode 100644 index 0000000..cddcfd5 --- /dev/null +++ b/fr/assets/js/d4e54de2.9880418e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>g});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,g=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(g,i(i({ref:t},d),{},{components:a})):n.createElement(g,i({ref:t},d))}));function g(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/fr/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/fr/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/fr/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Nginx",id:"nginx",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h4",{id:"nginx"},"Nginx"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you use nginx as a reverse proxy, you need to add the following configuration to the nginx configuration file:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'location / {\n *** your configuration ***\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}\n')),(0,o.kt)("p",{parentName:"admonition"},"Because Casvisor uses websocket to communicate with guacd.")),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/fr/assets/js/runtime~main.0626c74a.js b/fr/assets/js/runtime~main.4df82265.js similarity index 57% rename from fr/assets/js/runtime~main.0626c74a.js rename to fr/assets/js/runtime~main.4df82265.js index 2624e04..e04b112 100644 --- a/fr/assets/js/runtime~main.0626c74a.js +++ b/fr/assets/js/runtime~main.4df82265.js @@ -1 +1 @@ -(()=>{"use strict";var e,t,r,a,c,d={},o={};function f(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return d[e].call(r.exports,r,r.exports,f),r.exports}f.m=d,e=[],f.O=(t,r,a,c)=>{if(!r){var d=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](r[n])))?r.splice(n--,1):(o=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[r,a,c]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var d={};t=t||[null,r({}),r([]),r(r)];for(var o=2&a&&e;"object"==typeof o&&!~t.indexOf(o);o=r(o))Object.getOwnPropertyNames(o).forEach((t=>d[t]=()=>e[t]));return d.default=()=>e,f.d(c,d),c},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,r)=>(f.f[r](e,t),t)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",64:"ad0f6f13",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",136:"92293c9c",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",310:"ea47aeb2",375:"cf23ded0",391:"290cc788",432:"a951fea5",514:"1be78505",535:"814f3328",562:"a0e59008",573:"5282d824",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",740:"7e37206e",764:"8064e645",776:"81130aff",778:"49d2d5a5",780:"596abbce",800:"d58f2f6c",817:"14eb3368",864:"8dd2e619",918:"17896441",949:"233e9358"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"4fc17c51",64:"05c3963a",68:"ee671812",81:"8a76354a",89:"1656bb5b",103:"e5273bec",136:"e808ffaa",151:"560c292b",195:"5f072758",217:"b7d5aef2",310:"2336406c",316:"81ede736",375:"412a4b59",391:"0946f115",432:"587da6f5",487:"c64f1a92",514:"bc0c2ac7",535:"034c15f0",562:"6a4697c1",573:"32af3821",583:"1dcbb0cf",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"c8241db0",724:"1f48a7fd",740:"70ede3d4",764:"742def1d",776:"b5ade577",778:"dcaa336f",780:"de6153af",800:"fe15ecd1",817:"59925caf",864:"5528c9b9",918:"d7957afb",949:"0f133c05",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},c="casvisor-website:",f.l=(e,t,r,d)=>{if(a[e])a[e].push(t);else{var o,n;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(l);var c=a[e];if(delete a[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach((e=>e(r))),t)return t(r)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=s.bind(null,o.onerror),o.onload=s.bind(null,o.onload),n&&document.head.appendChild(o)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/fr/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53",ad0f6f13:"64","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","92293c9c":"136","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217",ea47aeb2:"310",cf23ded0:"375","290cc788":"391",a951fea5:"432","1be78505":"514","814f3328":"535",a0e59008:"562","5282d824":"573",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646","7e37206e":"740","8064e645":"764","81130aff":"776","49d2d5a5":"778","596abbce":"780",d58f2f6c:"800","14eb3368":"817","8dd2e619":"864","233e9358":"949"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(t,r)=>{var a=f.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var c=new Promise(((r,c)=>a=e[t]=[r,c]));r.push(a[2]=c);var d=f.p+f.u(t),o=new Error;f.l(d,(r=>{if(f.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var c=r&&("load"===r.type?"missing":r.type),d=r&&r.target&&r.target.src;o.message="Loading chunk "+t+" failed.\n("+c+": "+d+")",o.name="ChunkLoadError",o.type=c,o.request=d,a[1](o)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,r)=>{var a,c,d=r[0],o=r[1],n=r[2],b=0;if(d.some((t=>0!==e[t]))){for(a in o)f.o(o,a)&&(f.m[a]=o[a]);if(n)var i=n(f)}for(t&&t(r);b{"use strict";var e,t,r,a,d,c={},o={};function f(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return c[e].call(r.exports,r,r.exports,f),r.exports}f.m=c,e=[],f.O=(t,r,a,d)=>{if(!r){var c=1/0;for(b=0;b=d)&&Object.keys(f.O).every((e=>f.O[e](r[n])))?r.splice(n--,1):(o=!1,d0&&e[b-1][2]>d;b--)e[b]=e[b-1];e[b]=[r,a,d]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var d=Object.create(null);f.r(d);var c={};t=t||[null,r({}),r([]),r(r)];for(var o=2&a&&e;"object"==typeof o&&!~t.indexOf(o);o=r(o))Object.getOwnPropertyNames(o).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,f.d(d,c),d},f.d=(e,t)=>{for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,r)=>(f.f[r](e,t),t)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",64:"ad0f6f13",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",136:"92293c9c",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",310:"ea47aeb2",375:"cf23ded0",391:"290cc788",432:"a951fea5",514:"1be78505",535:"814f3328",562:"a0e59008",573:"5282d824",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",740:"7e37206e",764:"8064e645",776:"81130aff",778:"49d2d5a5",780:"596abbce",800:"d58f2f6c",817:"14eb3368",864:"8dd2e619",918:"17896441",949:"233e9358"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"4fc17c51",64:"05c3963a",68:"ee671812",81:"8a76354a",89:"1656bb5b",103:"e5273bec",136:"e808ffaa",151:"560c292b",195:"5f072758",217:"b7d5aef2",310:"2336406c",316:"81ede736",375:"6d8a93be",391:"0946f115",432:"1cc59a16",487:"c64f1a92",514:"bc0c2ac7",535:"034c15f0",562:"6a4697c1",573:"32af3821",583:"9880418e",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"96b2f257",724:"1f48a7fd",740:"70ede3d4",764:"742def1d",776:"b5ade577",778:"dcaa336f",780:"de6153af",800:"fe15ecd1",817:"59925caf",864:"5528c9b9",918:"d7957afb",949:"0f133c05",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},d="casvisor-website:",f.l=(e,t,r,c)=>{if(a[e])a[e].push(t);else{var o,n;if(void 0!==r)for(var i=document.getElementsByTagName("script"),b=0;b{o.onerror=o.onload=null,clearTimeout(l);var d=a[e];if(delete a[e],o.parentNode&&o.parentNode.removeChild(o),d&&d.forEach((e=>e(r))),t)return t(r)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=s.bind(null,o.onerror),o.onload=s.bind(null,o.onload),n&&document.head.appendChild(o)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/fr/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53",ad0f6f13:"64","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","92293c9c":"136","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217",ea47aeb2:"310",cf23ded0:"375","290cc788":"391",a951fea5:"432","1be78505":"514","814f3328":"535",a0e59008:"562","5282d824":"573",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646","7e37206e":"740","8064e645":"764","81130aff":"776","49d2d5a5":"778","596abbce":"780",d58f2f6c:"800","14eb3368":"817","8dd2e619":"864","233e9358":"949"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(t,r)=>{var a=f.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var d=new Promise(((r,d)=>a=e[t]=[r,d]));r.push(a[2]=d);var c=f.p+f.u(t),o=new Error;f.l(c,(r=>{if(f.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var d=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;o.message="Loading chunk "+t+" failed.\n("+d+": "+c+")",o.name="ChunkLoadError",o.type=d,o.request=c,a[1](o)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,r)=>{var a,d,c=r[0],o=r[1],n=r[2],i=0;if(c.some((t=>0!==e[t]))){for(a in o)f.o(o,a)&&(f.m[a]=o[a]);if(n)var b=n(f)}for(t&&t(r);i!function(t,h,e,j,s,n){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:3620236,hjsv:6},s=h.getElementsByTagName("head")[0],(n=h.createElement("script")).async=1,n.src="https://static.hotjar.com/c/hotjar-"+t._hjSettings.hjid+".js?sv="+t._hjSettings.hjsv,s.appendChild(n)}(window,document) - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/blog/atom.xml b/fr/blog/atom.xml index 0be2659..7df6704 100644 --- a/fr/blog/atom.xml +++ b/fr/blog/atom.xml @@ -2,7 +2,7 @@ https://casvisor.org/fr/blog Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z https://github.com/jpmonette/feed Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog @@ -11,7 +11,7 @@ <![CDATA[Welcome]]> https://casvisor.org/fr/blog/welcome - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z Welcome to Casvisor website!

]]>
diff --git a/fr/blog/index.html b/fr/blog/index.html index 5f71696..0eb61dd 100644 --- a/fr/blog/index.html +++ b/fr/blog/index.html @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/fr/blog/welcome/index.html b/fr/blog/welcome/index.html index 85e0531..1f11e73 100644 --- a/fr/blog/welcome/index.html +++ b/fr/blog/welcome/index.html @@ -3,7 +3,7 @@ -Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform +Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/fr/docs/asset/intranet/index.html b/fr/docs/asset/intranet/index.html index f3c6204..94daa2b 100644 --- a/fr/docs/asset/intranet/index.html +++ b/fr/docs/asset/intranet/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/fr/docs/asset/overview/index.html b/fr/docs/asset/overview/index.html index b2a0e3f..c90c36b 100644 --- a/fr/docs/asset/overview/index.html +++ b/fr/docs/asset/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/docs/asset/rdp/index.html b/fr/docs/asset/rdp/index.html index 63abed2..59cdaf2 100644 --- a/fr/docs/asset/rdp/index.html +++ b/fr/docs/asset/rdp/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/fr/docs/asset/vnc/index.html b/fr/docs/asset/vnc/index.html index 6d5e52d..721eccd 100644 --- a/fr/docs/asset/vnc/index.html +++ b/fr/docs/asset/vnc/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/fr/docs/basic/installation/index.html b/fr/docs/basic/installation/index.html index fccd56f..3f8d6f9 100644 --- a/fr/docs/basic/installation/index.html +++ b/fr/docs/basic/installation/index.html @@ -12,7 +12,7 @@ - + @@ -23,12 +23,12 @@ can create an application by clicking the add button.

create application

Required fields:

  1. Home: The host of Casvisor server, e.g. http://localhost:16001.
  2. Ognization: The organization you created in the previous step.
  3. Callback URLs: The callback URL of Casvisor server, e.g. http://localhost:16001/callback. You can add multiple callback URLs by clicking the add button. These are the urls that is allowed to be redirected after login.

application edit

guacd

Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install guacamole-server first. If you haven't installed guacamole-server, please refer to guacamole-server Installation.

You can also run guacd in docker with the following command:

docker run -d --name guacd -p 4822:4822 guacamole/guacd

Download

The source code of Casvisor is hosted on GitHub: https://github.com/casvisor/casvisor. Both the Go backend code and React frontend code are contained in a single repository.

NameDescriptionLanguageSource code
FrontendWeb frontend UI for CasdoorJavaScript + Reacthttps://github.com/casvisor/casvisor/tree/master/web
BackendRESTful API backend for CasdoorGolang + Beego + XORMhttps://github.com/casvisor/casvisor

Casvisor supports Go Modules. To download the code, simply clone the code using git:

git clone https://github.com/casvisor/casvisor

Configuration

Backend

The configuration file of Casvisor backend located at conf/app.conf. You need to modify the following fields:

Database

Modify dataSourceName to your own database connection string. Casvisor will create a database named casvisor if it doesn't exist.

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casvisor

Connect Casdoor

Modify casdoorEndpoint, clientID, clientSecret, casdoorOrganization and casdoorApplication to your own Casdoor configuration. -You can get the clientID and clientSecret from the application page that you created in the previous step.

casdoorEndpoint = http://localhost:8000
clientId = c34fdf145f41313727a8
clientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832
casdoorOrganization = "casbin"
casdoorApplication = "app-casvisor"

Frontend

In web/src/conf.js, you need to modify the following fields:

    export const AuthConfig = {
serverUrl: "http://localhost:8000",
clientId: "c34fdf145f4131b727a8",
appName: "app-casvisor",
organizationName: "casbin",
redirectPath: "/callback",
};

Run

Before running Casvisor, make sure Casdoor is running.

Production

In production, you need to build the frontend code first, then run the backend code.

Build frontend

cd web
yarn install
yarn build

After building successfully, the frontend bundle will be generated in web/build directory.

Run backend

go build

Visit backend server at http://localhost:19000.

Development

In development, you need to run the frontend code and backend code at the same time.

Run frontend

cd web
yarn install
yarn start

Run backend

go build

Visit frontend server http://localhost:16001.


- + \ No newline at end of file diff --git a/fr/docs/basic/try-with-docker/index.html b/fr/docs/basic/try-with-docker/index.html index fee735c..8c36233 100644 --- a/fr/docs/basic/try-with-docker/index.html +++ b/fr/docs/basic/try-with-docker/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@
- + \ No newline at end of file diff --git a/fr/docs/category/assets/index.html b/fr/docs/category/assets/index.html index bd29c45..9e821db 100644 --- a/fr/docs/category/assets/index.html +++ b/fr/docs/category/assets/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/docs/category/the-basics/index.html b/fr/docs/category/the-basics/index.html index 0af320b..a2720b1 100644 --- a/fr/docs/category/the-basics/index.html +++ b/fr/docs/category/the-basics/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/docs/overview/index.html b/fr/docs/overview/index.html index 6b6b7af..8301daf 100644 --- a/fr/docs/overview/index.html +++ b/fr/docs/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/help/index.html b/fr/help/index.html index 7d59978..7eff920 100644 --- a/fr/help/index.html +++ b/fr/help/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/index.html b/fr/index.html index e21ee6b..6a11c5b 100644 --- a/fr/index.html +++ b/fr/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/pdf/index.html b/fr/pdf/index.html index c10c4a6..750df1e 100644 --- a/fr/pdf/index.html +++ b/fr/pdf/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/fr/users/index.html b/fr/users/index.html index a041541..c28c6a3 100644 --- a/fr/users/index.html +++ b/fr/users/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/help/index.html b/help/index.html index 64cb4f1..4e0a9d3 100644 --- a/help/index.html +++ b/help/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/index.html b/index.html index ac6a52a..134616a 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/404.html b/ja/404.html index 7ea801a..1aafc3d 100644 --- a/ja/404.html +++ b/ja/404.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/assets/js/a951fea5.3b0bb354.js b/ja/assets/js/a951fea5.bed1d5bd.js similarity index 98% rename from ja/assets/js/a951fea5.3b0bb354.js rename to ja/assets/js/a951fea5.bed1d5bd.js index 7fb8707..b2614ae 100644 --- a/ja/assets/js/a951fea5.3b0bb354.js +++ b/ja/assets/js/a951fea5.bed1d5bd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=a,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ja/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"2024\u5e744\u67088\u65e5",tags:[{label:"casvisor",permalink:"/ja/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=a,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ja/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"2024\u5e744\u67088\u65e5",tags:[{label:"casvisor",permalink:"/ja/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/ja/assets/js/acf87bcd.121f3398.js b/ja/assets/js/acf87bcd.fac2a9c7.js similarity index 98% rename from ja/assets/js/acf87bcd.121f3398.js rename to ja/assets/js/acf87bcd.fac2a9c7.js index 62256a6..9b11052 100644 --- a/ja/assets/js/acf87bcd.121f3398.js +++ b/ja/assets/js/acf87bcd.fac2a9c7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=a,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ja/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"2024\u5e744\u67088\u65e5",tags:[{label:"casvisor",permalink:"/ja/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=a,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ja/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"2024\u5e744\u67088\u65e5",tags:[{label:"casvisor",permalink:"/ja/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/ja/assets/js/cc7922b4.113f4999.js b/ja/assets/js/cc7922b4.16fe356e.js similarity index 93% rename from ja/assets/js/cc7922b4.113f4999.js rename to ja/assets/js/cc7922b4.16fe356e.js index 41477ba..1b704bd 100644 --- a/ja/assets/js/cc7922b4.113f4999.js +++ b/ja/assets/js/cc7922b4.16fe356e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[683],{6241:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/ja/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T02:45:07.000Z","formattedDate":"2024\u5e744\u67088\u65e5","tags":[{"label":"casvisor","permalink":"/ja/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[683],{6241:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/ja/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T11:08:16.000Z","formattedDate":"2024\u5e744\u67088\u65e5","tags":[{"label":"casvisor","permalink":"/ja/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file diff --git a/ja/assets/js/d4e54de2.6217d291.js b/ja/assets/js/d4e54de2.6217d291.js new file mode 100644 index 0000000..272a1c2 --- /dev/null +++ b/ja/assets/js/d4e54de2.6217d291.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>g});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,g=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(g,i(i({ref:t},d),{},{components:a})):n.createElement(g,i({ref:t},d))}));function g(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/ja/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/ja/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/ja/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Nginx",id:"nginx",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h4",{id:"nginx"},"Nginx"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you use nginx as a reverse proxy, you need to add the following configuration to the nginx configuration file:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'location / {\n *** your configuration ***\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}\n')),(0,o.kt)("p",{parentName:"admonition"},"Because Casvisor uses websocket to communicate with guacd.")),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/ja/assets/js/d4e54de2.df483ec9.js b/ja/assets/js/d4e54de2.df483ec9.js deleted file mode 100644 index a43aabb..0000000 --- a/ja/assets/js/d4e54de2.df483ec9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(k,i(i({ref:t},d),{},{components:a})):n.createElement(k,i({ref:t},d))}));function k(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/ja/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/ja/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/ja/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/ja/assets/js/runtime~main.f499996d.js b/ja/assets/js/runtime~main.f499996d.js deleted file mode 100644 index 28817d6..0000000 --- a/ja/assets/js/runtime~main.f499996d.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,t,a,r,c,o={},f={};function d(e){var t=f[e];if(void 0!==t)return t.exports;var a=f[e]={exports:{}};return o[e].call(a.exports,a,a.exports,d),a.exports}d.m=o,e=[],d.O=(t,a,r,c)=>{if(!a){var o=1/0;for(i=0;i=c)&&Object.keys(d.O).every((e=>d.O[e](a[n])))?a.splice(n--,1):(f=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,r,c]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);d.r(c);var o={};t=t||[null,a({}),a([]),a(a)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=a(f))Object.getOwnPropertyNames(f).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,d.d(c,o),c},d.d=(e,t)=>{for(var a in t)d.o(t,a)&&!d.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,a)=>(d.f[a](e,t),t)),[])),d.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",116:"cd73f118",140:"df343330",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",260:"8485318f",310:"ea47aeb2",359:"8ac5017a",391:"290cc788",432:"a951fea5",514:"1be78505",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",683:"cc7922b4",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",819:"1ae33c86",864:"8dd2e619",876:"9d1be773",918:"17896441"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"687c9a32",68:"adaaed4a",81:"7d502725",89:"1656bb5b",103:"e5273bec",116:"7a8658de",140:"3d46ca05",151:"6ca14b87",195:"5f072758",217:"b7d5aef2",260:"21403fc1",310:"ab1b245f",316:"81ede736",359:"59c90504",391:"0946f115",432:"3b0bb354",487:"c64f1a92",514:"bc0c2ac7",535:"b6611bdf",562:"9889cb0d",583:"df483ec9",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"121f3398",683:"113f4999",724:"1f48a7fd",740:"70ede3d4",776:"b6e04f19",778:"13abd663",780:"de6153af",817:"59925caf",819:"7b90ced9",864:"5528c9b9",876:"3291d69b",918:"d7957afb",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},c="casvisor-website:",d.l=(e,t,a,o)=>{if(r[e])r[e].push(t);else{var f,n;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i{f.onerror=f.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),c&&c.forEach((e=>e(a))),t)return t(a)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),n&&document.head.appendChild(f)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/ja/",d.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103",cd73f118:"116",df343330:"140","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217","8485318f":"260",ea47aeb2:"310","8ac5017a":"359","290cc788":"391",a951fea5:"432","1be78505":"514","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646",cc7922b4:"683","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817","1ae33c86":"819","8dd2e619":"864","9d1be773":"876"}[e]||e,d.p+d.u(e)},(()=>{var e={303:0,532:0};d.f.j=(t,a)=>{var r=d.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var c=new Promise(((a,c)=>r=e[t]=[a,c]));a.push(r[2]=c);var o=d.p+d.u(t),f=new Error;d.l(o,(a=>{if(d.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var c=a&&("load"===a.type?"missing":a.type),o=a&&a.target&&a.target.src;f.message="Loading chunk "+t+" failed.\n("+c+": "+o+")",f.name="ChunkLoadError",f.type=c,f.request=o,r[1](f)}}),"chunk-"+t,t)}},d.O.j=t=>0===e[t];var t=(t,a)=>{var r,c,o=a[0],f=a[1],n=a[2],b=0;if(o.some((t=>0!==e[t]))){for(r in f)d.o(f,r)&&(d.m[r]=f[r]);if(n)var i=n(d)}for(t&&t(a);b{"use strict";var e,t,a,r,c,o={},d={};function f(e){var t=d[e];if(void 0!==t)return t.exports;var a=d[e]={exports:{}};return o[e].call(a.exports,a,a.exports,f),a.exports}f.m=o,e=[],f.O=(t,a,r,c)=>{if(!a){var o=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](a[n])))?a.splice(n--,1):(d=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,r,c]},f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var o={};t=t||[null,a({}),a([]),a(a)];for(var d=2&r&&e;"object"==typeof d&&!~t.indexOf(d);d=a(d))Object.getOwnPropertyNames(d).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,f.d(c,o),c},f.d=(e,t)=>{for(var a in t)f.o(t,a)&&!f.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((t,a)=>(f.f[a](e,t),t)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",116:"cd73f118",140:"df343330",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",260:"8485318f",310:"ea47aeb2",359:"8ac5017a",391:"290cc788",432:"a951fea5",514:"1be78505",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",683:"cc7922b4",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",819:"1ae33c86",864:"8dd2e619",876:"9d1be773",918:"17896441"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"687c9a32",68:"adaaed4a",81:"7d502725",89:"1656bb5b",103:"e5273bec",116:"7a8658de",140:"3d46ca05",151:"6ca14b87",195:"5f072758",217:"b7d5aef2",260:"21403fc1",310:"ab1b245f",316:"81ede736",359:"59c90504",391:"0946f115",432:"bed1d5bd",487:"c64f1a92",514:"bc0c2ac7",535:"b6611bdf",562:"9889cb0d",583:"6217d291",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"fac2a9c7",683:"16fe356e",724:"1f48a7fd",740:"70ede3d4",776:"b6e04f19",778:"13abd663",780:"de6153af",817:"59925caf",819:"7b90ced9",864:"5528c9b9",876:"3291d69b",918:"d7957afb",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},c="casvisor-website:",f.l=(e,t,a,o)=>{if(r[e])r[e].push(t);else{var d,n;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),c&&c.forEach((e=>e(a))),t)return t(a)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=s.bind(null,d.onerror),d.onload=s.bind(null,d.onload),n&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/ja/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103",cd73f118:"116",df343330:"140","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217","8485318f":"260",ea47aeb2:"310","8ac5017a":"359","290cc788":"391",a951fea5:"432","1be78505":"514","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646",cc7922b4:"683","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817","1ae33c86":"819","8dd2e619":"864","9d1be773":"876"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(t,a)=>{var r=f.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var c=new Promise(((a,c)=>r=e[t]=[a,c]));a.push(r[2]=c);var o=f.p+f.u(t),d=new Error;f.l(o,(a=>{if(f.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var c=a&&("load"===a.type?"missing":a.type),o=a&&a.target&&a.target.src;d.message="Loading chunk "+t+" failed.\n("+c+": "+o+")",d.name="ChunkLoadError",d.type=c,d.request=o,r[1](d)}}),"chunk-"+t,t)}},f.O.j=t=>0===e[t];var t=(t,a)=>{var r,c,o=a[0],d=a[1],n=a[2],b=0;if(o.some((t=>0!==e[t]))){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(n)var i=n(f)}for(t&&t(a);b!function(t,h,e,j,s,n){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:3620236,hjsv:6},s=h.getElementsByTagName("head")[0],(n=h.createElement("script")).async=1,n.src="https://static.hotjar.com/c/hotjar-"+t._hjSettings.hjid+".js?sv="+t._hjSettings.hjsv,s.appendChild(n)}(window,document) - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/blog/atom.xml b/ja/blog/atom.xml index fa6bc19..0f6b60a 100644 --- a/ja/blog/atom.xml +++ b/ja/blog/atom.xml @@ -2,7 +2,7 @@ https://casvisor.org/ja/blog Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z https://github.com/jpmonette/feed Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog @@ -11,7 +11,7 @@ <![CDATA[Welcome]]> https://casvisor.org/ja/blog/welcome - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z Welcome to Casvisor website!

]]>
diff --git a/ja/blog/index.html b/ja/blog/index.html index 4809772..620ea2d 100644 --- a/ja/blog/index.html +++ b/ja/blog/index.html @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/ja/blog/welcome/index.html b/ja/blog/welcome/index.html index 54f2b31..a45605f 100644 --- a/ja/blog/welcome/index.html +++ b/ja/blog/welcome/index.html @@ -3,7 +3,7 @@ -Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform +Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/ja/docs/asset/intranet/index.html b/ja/docs/asset/intranet/index.html index ad34bb5..6dfe775 100644 --- a/ja/docs/asset/intranet/index.html +++ b/ja/docs/asset/intranet/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/ja/docs/asset/overview/index.html b/ja/docs/asset/overview/index.html index 4752023..de5364d 100644 --- a/ja/docs/asset/overview/index.html +++ b/ja/docs/asset/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/docs/asset/rdp/index.html b/ja/docs/asset/rdp/index.html index bbbb7dd..763a0b2 100644 --- a/ja/docs/asset/rdp/index.html +++ b/ja/docs/asset/rdp/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/ja/docs/asset/vnc/index.html b/ja/docs/asset/vnc/index.html index 4df7389..54794c5 100644 --- a/ja/docs/asset/vnc/index.html +++ b/ja/docs/asset/vnc/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/ja/docs/basic/installation/index.html b/ja/docs/basic/installation/index.html index 9e5128a..42346c9 100644 --- a/ja/docs/basic/installation/index.html +++ b/ja/docs/basic/installation/index.html @@ -12,7 +12,7 @@ - + @@ -23,12 +23,12 @@ can create an application by clicking the add button.

create application

Required fields:

  1. Home: The host of Casvisor server, e.g. http://localhost:16001.
  2. Ognization: The organization you created in the previous step.
  3. Callback URLs: The callback URL of Casvisor server, e.g. http://localhost:16001/callback. You can add multiple callback URLs by clicking the add button. These are the urls that is allowed to be redirected after login.

application edit

guacd

Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install guacamole-server first. If you haven't installed guacamole-server, please refer to guacamole-server Installation.

You can also run guacd in docker with the following command:

docker run -d --name guacd -p 4822:4822 guacamole/guacd

Download

The source code of Casvisor is hosted on GitHub: https://github.com/casvisor/casvisor. Both the Go backend code and React frontend code are contained in a single repository.

NameDescriptionLanguageSource code
FrontendWeb frontend UI for CasdoorJavaScript + Reacthttps://github.com/casvisor/casvisor/tree/master/web
BackendRESTful API backend for CasdoorGolang + Beego + XORMhttps://github.com/casvisor/casvisor

Casvisor supports Go Modules. To download the code, simply clone the code using git:

git clone https://github.com/casvisor/casvisor

Configuration

Backend

The configuration file of Casvisor backend located at conf/app.conf. You need to modify the following fields:

Database

Modify dataSourceName to your own database connection string. Casvisor will create a database named casvisor if it doesn't exist.

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casvisor

Connect Casdoor

Modify casdoorEndpoint, clientID, clientSecret, casdoorOrganization and casdoorApplication to your own Casdoor configuration. -You can get the clientID and clientSecret from the application page that you created in the previous step.

casdoorEndpoint = http://localhost:8000
clientId = c34fdf145f41313727a8
clientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832
casdoorOrganization = "casbin"
casdoorApplication = "app-casvisor"

Frontend

In web/src/conf.js, you need to modify the following fields:

    export const AuthConfig = {
serverUrl: "http://localhost:8000",
clientId: "c34fdf145f4131b727a8",
appName: "app-casvisor",
organizationName: "casbin",
redirectPath: "/callback",
};

Run

Before running Casvisor, make sure Casdoor is running.

Production

In production, you need to build the frontend code first, then run the backend code.

Build frontend

cd web
yarn install
yarn build

After building successfully, the frontend bundle will be generated in web/build directory.

Run backend

go build

Visit backend server at http://localhost:19000.

Development

In development, you need to run the frontend code and backend code at the same time.

Run frontend

cd web
yarn install
yarn start

Run backend

go build

Visit frontend server http://localhost:16001.


- + \ No newline at end of file diff --git a/ja/docs/basic/try-with-docker/index.html b/ja/docs/basic/try-with-docker/index.html index 3d54873..cef3103 100644 --- a/ja/docs/basic/try-with-docker/index.html +++ b/ja/docs/basic/try-with-docker/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@
- + \ No newline at end of file diff --git a/ja/docs/category/assets/index.html b/ja/docs/category/assets/index.html index 2bf68cb..a8c31a5 100644 --- a/ja/docs/category/assets/index.html +++ b/ja/docs/category/assets/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/docs/category/the-basics/index.html b/ja/docs/category/the-basics/index.html index bf533f3..857b80d 100644 --- a/ja/docs/category/the-basics/index.html +++ b/ja/docs/category/the-basics/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/docs/overview/index.html b/ja/docs/overview/index.html index 36bc304..66c458f 100644 --- a/ja/docs/overview/index.html +++ b/ja/docs/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/help/index.html b/ja/help/index.html index b044730..ef16be5 100644 --- a/ja/help/index.html +++ b/ja/help/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/index.html b/ja/index.html index 462655c..0662ea6 100644 --- a/ja/index.html +++ b/ja/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/pdf/index.html b/ja/pdf/index.html index 7e3aac5..cefc039 100644 --- a/ja/pdf/index.html +++ b/ja/pdf/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ja/users/index.html b/ja/users/index.html index 4c16551..2bfc7b6 100644 --- a/ja/users/index.html +++ b/ja/users/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/404.html b/ko/404.html index 5cb4697..3535a0f 100644 --- a/ko/404.html +++ b/ko/404.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/assets/js/52a2ca59.f1c84fe5.js b/ko/assets/js/52a2ca59.8388094b.js similarity index 93% rename from ko/assets/js/52a2ca59.f1c84fe5.js rename to ko/assets/js/52a2ca59.8388094b.js index 88fef6a..f5cf464 100644 --- a/ko/assets/js/52a2ca59.f1c84fe5.js +++ b/ko/assets/js/52a2ca59.8388094b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[122],{2348:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/ko/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T02:45:07.000Z","formattedDate":"2024\ub144 4\uc6d4 8\uc77c","tags":[{"label":"casvisor","permalink":"/ko/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[122],{2348:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/ko/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T11:08:16.000Z","formattedDate":"2024\ub144 4\uc6d4 8\uc77c","tags":[{"label":"casvisor","permalink":"/ko/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file diff --git a/ko/assets/js/a951fea5.fc52f196.js b/ko/assets/js/a951fea5.ec2459c0.js similarity index 98% rename from ko/assets/js/a951fea5.fc52f196.js rename to ko/assets/js/a951fea5.ec2459c0.js index c6bc9d7..6648dab 100644 --- a/ko/assets/js/a951fea5.fc52f196.js +++ b/ko/assets/js/a951fea5.ec2459c0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ko/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"2024\ub144 4\uc6d4 8\uc77c",tags:[{label:"casvisor",permalink:"/ko/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ko/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"2024\ub144 4\uc6d4 8\uc77c",tags:[{label:"casvisor",permalink:"/ko/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/ko/assets/js/acf87bcd.64ba062f.js b/ko/assets/js/acf87bcd.fc3fd1af.js similarity index 98% rename from ko/assets/js/acf87bcd.64ba062f.js rename to ko/assets/js/acf87bcd.fc3fd1af.js index e795a56..76389d9 100644 --- a/ko/assets/js/acf87bcd.64ba062f.js +++ b/ko/assets/js/acf87bcd.fc3fd1af.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ko/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"2024\ub144 4\uc6d4 8\uc77c",tags:[{label:"casvisor",permalink:"/ko/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ko/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"2024\ub144 4\uc6d4 8\uc77c",tags:[{label:"casvisor",permalink:"/ko/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/ko/assets/js/d4e54de2.906c93bb.js b/ko/assets/js/d4e54de2.906c93bb.js new file mode 100644 index 0000000..faa0fd6 --- /dev/null +++ b/ko/assets/js/d4e54de2.906c93bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(k,i(i({ref:t},d),{},{components:a})):n.createElement(k,i({ref:t},d))}));function k(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/ko/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/ko/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/ko/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Nginx",id:"nginx",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h4",{id:"nginx"},"Nginx"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you use nginx as a reverse proxy, you need to add the following configuration to the nginx configuration file:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'location / {\n *** your configuration ***\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}\n')),(0,o.kt)("p",{parentName:"admonition"},"Because Casvisor uses websocket to communicate with guacd.")),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/ko/assets/js/d4e54de2.979857fa.js b/ko/assets/js/d4e54de2.979857fa.js deleted file mode 100644 index c433df3..0000000 --- a/ko/assets/js/d4e54de2.979857fa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),k=o,m=p["".concat(s,".").concat(k)]||p[k]||u[k]||r;return a?n.createElement(m,i(i({ref:t},d),{},{components:a})):n.createElement(m,i({ref:t},d))}));function m(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=k;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/ko/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/ko/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/ko/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/ko/assets/js/runtime~main.922e899d.js b/ko/assets/js/runtime~main.9bd6a9c1.js similarity index 94% rename from ko/assets/js/runtime~main.922e899d.js rename to ko/assets/js/runtime~main.9bd6a9c1.js index 29d773e..b3c47e4 100644 --- a/ko/assets/js/runtime~main.922e899d.js +++ b/ko/assets/js/runtime~main.9bd6a9c1.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,t,r,c,o={},d={};function f(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return o[e].call(t.exports,t,t.exports,f),t.exports}f.m=o,e=[],f.O=(a,t,r,c)=>{if(!t){var o=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](t[n])))?t.splice(n--,1):(d=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[t,r,c]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var o={};a=a||[null,t({}),t([]),t(t)];for(var d=2&r&&e;"object"==typeof d&&!~a.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach((a=>o[a]=()=>e[a]));return o.default=()=>e,f.d(c,o),c},f.d=(e,a)=>{for(var t in a)f.o(a,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,t)=>(f.f[t](e,a),a)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",122:"52a2ca59",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",310:"ea47aeb2",391:"290cc788",432:"a951fea5",514:"1be78505",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",615:"442606ca",622:"8274c49f",646:"acf87bcd",658:"6afd1ed1",678:"94cf8a2d",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",846:"ba7e1b45",864:"8dd2e619",911:"9acd1815",918:"17896441"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"143ba575",68:"06175a1b",81:"db3e86ac",89:"1656bb5b",103:"e5273bec",122:"f1c84fe5",151:"6b43a244",195:"5f072758",217:"b7d5aef2",310:"ba710e0d",316:"81ede736",391:"0946f115",432:"fc52f196",487:"c64f1a92",514:"bc0c2ac7",535:"24a3f332",562:"fb61ab22",583:"979857fa",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",615:"11197fd1",622:"a259d877",628:"2fe50af1",646:"64ba062f",658:"f66f077e",678:"7d809825",724:"1f48a7fd",740:"70ede3d4",776:"8cf9d808",778:"d8c8ea61",780:"de6153af",817:"59925caf",846:"26ca965b",864:"5528c9b9",911:"977cf161",918:"d7957afb",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},c="casvisor-website:",f.l=(e,a,t,o)=>{if(r[e])r[e].push(a);else{var d,n;if(void 0!==t)for(var b=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),c&&c.forEach((e=>e(t))),a)return a(t)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=s.bind(null,d.onerror),d.onload=s.bind(null,d.onload),n&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/ko/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","52a2ca59":"122","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217",ea47aeb2:"310","290cc788":"391",a951fea5:"432","1be78505":"514","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610","442606ca":"615","8274c49f":"622",acf87bcd:"646","6afd1ed1":"658","94cf8a2d":"678","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817",ba7e1b45:"846","8dd2e619":"864","9acd1815":"911"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(a,t)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(303|532)$/.test(a))e[a]=0;else{var c=new Promise(((t,c)=>r=e[a]=[t,c]));t.push(r[2]=c);var o=f.p+f.u(a),d=new Error;f.l(o,(t=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var c=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;d.message="Loading chunk "+a+" failed.\n("+c+": "+o+")",d.name="ChunkLoadError",d.type=c,d.request=o,r[1](d)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,t)=>{var r,c,o=t[0],d=t[1],n=t[2],b=0;if(o.some((a=>0!==e[a]))){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(n)var i=n(f)}for(a&&a(t);b{"use strict";var e,a,t,r,c,o={},d={};function f(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return o[e].call(t.exports,t,t.exports,f),t.exports}f.m=o,e=[],f.O=(a,t,r,c)=>{if(!t){var o=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](t[n])))?t.splice(n--,1):(d=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[t,r,c]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var o={};a=a||[null,t({}),t([]),t(t)];for(var d=2&r&&e;"object"==typeof d&&!~a.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach((a=>o[a]=()=>e[a]));return o.default=()=>e,f.d(c,o),c},f.d=(e,a)=>{for(var t in a)f.o(a,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,t)=>(f.f[t](e,a),a)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",122:"52a2ca59",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",310:"ea47aeb2",391:"290cc788",432:"a951fea5",514:"1be78505",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",615:"442606ca",622:"8274c49f",646:"acf87bcd",658:"6afd1ed1",678:"94cf8a2d",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",846:"ba7e1b45",864:"8dd2e619",911:"9acd1815",918:"17896441"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"143ba575",68:"06175a1b",81:"db3e86ac",89:"1656bb5b",103:"e5273bec",122:"8388094b",151:"6b43a244",195:"5f072758",217:"b7d5aef2",310:"ba710e0d",316:"81ede736",391:"0946f115",432:"ec2459c0",487:"c64f1a92",514:"bc0c2ac7",535:"24a3f332",562:"fb61ab22",583:"906c93bb",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",615:"11197fd1",622:"a259d877",628:"2fe50af1",646:"fc3fd1af",658:"f66f077e",678:"7d809825",724:"1f48a7fd",740:"70ede3d4",776:"8cf9d808",778:"d8c8ea61",780:"de6153af",817:"59925caf",846:"26ca965b",864:"5528c9b9",911:"977cf161",918:"d7957afb",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},c="casvisor-website:",f.l=(e,a,t,o)=>{if(r[e])r[e].push(a);else{var d,n;if(void 0!==t)for(var b=document.getElementsByTagName("script"),i=0;i{d.onerror=d.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),c&&c.forEach((e=>e(t))),a)return a(t)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=s.bind(null,d.onerror),d.onload=s.bind(null,d.onload),n&&document.head.appendChild(d)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/ko/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","52a2ca59":"122","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217",ea47aeb2:"310","290cc788":"391",a951fea5:"432","1be78505":"514","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610","442606ca":"615","8274c49f":"622",acf87bcd:"646","6afd1ed1":"658","94cf8a2d":"678","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817",ba7e1b45:"846","8dd2e619":"864","9acd1815":"911"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(a,t)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(303|532)$/.test(a))e[a]=0;else{var c=new Promise(((t,c)=>r=e[a]=[t,c]));t.push(r[2]=c);var o=f.p+f.u(a),d=new Error;f.l(o,(t=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var c=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;d.message="Loading chunk "+a+" failed.\n("+c+": "+o+")",d.name="ChunkLoadError",d.type=c,d.request=o,r[1](d)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,t)=>{var r,c,o=t[0],d=t[1],n=t[2],b=0;if(o.some((a=>0!==e[a]))){for(r in d)f.o(d,r)&&(f.m[r]=d[r]);if(n)var i=n(f)}for(a&&a(t);b!function(t,h,e,j,s,n){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:3620236,hjsv:6},s=h.getElementsByTagName("head")[0],(n=h.createElement("script")).async=1,n.src="https://static.hotjar.com/c/hotjar-"+t._hjSettings.hjid+".js?sv="+t._hjSettings.hjsv,s.appendChild(n)}(window,document) - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/blog/atom.xml b/ko/blog/atom.xml index 9918f26..2110f3a 100644 --- a/ko/blog/atom.xml +++ b/ko/blog/atom.xml @@ -2,7 +2,7 @@ https://casvisor.org/ko/blog Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z https://github.com/jpmonette/feed Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog @@ -11,7 +11,7 @@ <![CDATA[Welcome]]> https://casvisor.org/ko/blog/welcome - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z Welcome to Casvisor website!

]]>
diff --git a/ko/blog/index.html b/ko/blog/index.html index 68153c2..d57cd6e 100644 --- a/ko/blog/index.html +++ b/ko/blog/index.html @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/ko/blog/welcome/index.html b/ko/blog/welcome/index.html index 2eb3278..948184e 100644 --- a/ko/blog/welcome/index.html +++ b/ko/blog/welcome/index.html @@ -3,7 +3,7 @@ -Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform +Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/ko/docs/asset/intranet/index.html b/ko/docs/asset/intranet/index.html index 973ace7..cd3112f 100644 --- a/ko/docs/asset/intranet/index.html +++ b/ko/docs/asset/intranet/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/ko/docs/asset/overview/index.html b/ko/docs/asset/overview/index.html index 1facd24..3cde3f7 100644 --- a/ko/docs/asset/overview/index.html +++ b/ko/docs/asset/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/docs/asset/rdp/index.html b/ko/docs/asset/rdp/index.html index 4ad3d41..204f457 100644 --- a/ko/docs/asset/rdp/index.html +++ b/ko/docs/asset/rdp/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/ko/docs/asset/vnc/index.html b/ko/docs/asset/vnc/index.html index 06bc4ee..2eb7480 100644 --- a/ko/docs/asset/vnc/index.html +++ b/ko/docs/asset/vnc/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/ko/docs/basic/installation/index.html b/ko/docs/basic/installation/index.html index f60684d..353cf4c 100644 --- a/ko/docs/basic/installation/index.html +++ b/ko/docs/basic/installation/index.html @@ -12,7 +12,7 @@ - + @@ -23,12 +23,12 @@ can create an application by clicking the add button.

create application

Required fields:

  1. Home: The host of Casvisor server, e.g. http://localhost:16001.
  2. Ognization: The organization you created in the previous step.
  3. Callback URLs: The callback URL of Casvisor server, e.g. http://localhost:16001/callback. You can add multiple callback URLs by clicking the add button. These are the urls that is allowed to be redirected after login.

application edit

guacd

Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install guacamole-server first. If you haven't installed guacamole-server, please refer to guacamole-server Installation.

You can also run guacd in docker with the following command:

docker run -d --name guacd -p 4822:4822 guacamole/guacd

Download

The source code of Casvisor is hosted on GitHub: https://github.com/casvisor/casvisor. Both the Go backend code and React frontend code are contained in a single repository.

NameDescriptionLanguageSource code
FrontendWeb frontend UI for CasdoorJavaScript + Reacthttps://github.com/casvisor/casvisor/tree/master/web
BackendRESTful API backend for CasdoorGolang + Beego + XORMhttps://github.com/casvisor/casvisor

Casvisor supports Go Modules. To download the code, simply clone the code using git:

git clone https://github.com/casvisor/casvisor

Configuration

Backend

The configuration file of Casvisor backend located at conf/app.conf. You need to modify the following fields:

Database

Modify dataSourceName to your own database connection string. Casvisor will create a database named casvisor if it doesn't exist.

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casvisor

Connect Casdoor

Modify casdoorEndpoint, clientID, clientSecret, casdoorOrganization and casdoorApplication to your own Casdoor configuration. -You can get the clientID and clientSecret from the application page that you created in the previous step.

casdoorEndpoint = http://localhost:8000
clientId = c34fdf145f41313727a8
clientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832
casdoorOrganization = "casbin"
casdoorApplication = "app-casvisor"

Frontend

In web/src/conf.js, you need to modify the following fields:

    export const AuthConfig = {
serverUrl: "http://localhost:8000",
clientId: "c34fdf145f4131b727a8",
appName: "app-casvisor",
organizationName: "casbin",
redirectPath: "/callback",
};

Run

Before running Casvisor, make sure Casdoor is running.

Production

In production, you need to build the frontend code first, then run the backend code.

Build frontend

cd web
yarn install
yarn build

After building successfully, the frontend bundle will be generated in web/build directory.

Run backend

go build

Visit backend server at http://localhost:19000.

Development

In development, you need to run the frontend code and backend code at the same time.

Run frontend

cd web
yarn install
yarn start

Run backend

go build

Visit frontend server http://localhost:16001.


- + \ No newline at end of file diff --git a/ko/docs/basic/try-with-docker/index.html b/ko/docs/basic/try-with-docker/index.html index 350ef1d..9adc75e 100644 --- a/ko/docs/basic/try-with-docker/index.html +++ b/ko/docs/basic/try-with-docker/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@
- + \ No newline at end of file diff --git a/ko/docs/category/assets/index.html b/ko/docs/category/assets/index.html index c7aa2c0..479bcb6 100644 --- a/ko/docs/category/assets/index.html +++ b/ko/docs/category/assets/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/docs/category/the-basics/index.html b/ko/docs/category/the-basics/index.html index 56743f1..8f54acd 100644 --- a/ko/docs/category/the-basics/index.html +++ b/ko/docs/category/the-basics/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/docs/overview/index.html b/ko/docs/overview/index.html index 7390fb4..21c1d03 100644 --- a/ko/docs/overview/index.html +++ b/ko/docs/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/help/index.html b/ko/help/index.html index fa00caa..d377ff2 100644 --- a/ko/help/index.html +++ b/ko/help/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/index.html b/ko/index.html index efa589d..ccd60a6 100644 --- a/ko/index.html +++ b/ko/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/pdf/index.html b/ko/pdf/index.html index 80e243e..ea7d0f2 100644 --- a/ko/pdf/index.html +++ b/ko/pdf/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ko/users/index.html b/ko/users/index.html index b780273..9ba971b 100644 --- a/ko/users/index.html +++ b/ko/users/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/pdf/Casvisor_Docs.pdf b/pdf/Casvisor_Docs.pdf index b19851a..4957407 100644 Binary files a/pdf/Casvisor_Docs.pdf and b/pdf/Casvisor_Docs.pdf differ diff --git a/pdf/Casvisor_Docs_zh.pdf b/pdf/Casvisor_Docs_zh.pdf index 7cd4e6b..1b6c9c4 100644 Binary files a/pdf/Casvisor_Docs_zh.pdf and b/pdf/Casvisor_Docs_zh.pdf differ diff --git a/pdf/index.html b/pdf/index.html index 4132f1e..92bb631 100644 --- a/pdf/index.html +++ b/pdf/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/404.html b/ru/404.html index 1ad27b5..c9b8885 100644 --- a/ru/404.html +++ b/ru/404.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/assets/js/696b93ca.b6186d3c.js b/ru/assets/js/696b93ca.bf23502f.js similarity index 93% rename from ru/assets/js/696b93ca.b6186d3c.js rename to ru/assets/js/696b93ca.bf23502f.js index dfaadce..677b114 100644 --- a/ru/assets/js/696b93ca.b6186d3c.js +++ b/ru/assets/js/696b93ca.bf23502f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[857],{7806:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/ru/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T02:45:07.000Z","formattedDate":"8 \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433.","tags":[{"label":"casvisor","permalink":"/ru/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[857],{7806:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/ru/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T11:08:16.000Z","formattedDate":"8 \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433.","tags":[{"label":"casvisor","permalink":"/ru/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file diff --git a/ru/assets/js/a951fea5.f878b450.js b/ru/assets/js/a951fea5.b5a38ada.js similarity index 98% rename from ru/assets/js/a951fea5.f878b450.js rename to ru/assets/js/a951fea5.b5a38ada.js index de11c25..f7a8683 100644 --- a/ru/assets/js/a951fea5.f878b450.js +++ b/ru/assets/js/a951fea5.b5a38ada.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ru/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"8 \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433.",tags:[{label:"casvisor",permalink:"/ru/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ru/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"8 \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433.",tags:[{label:"casvisor",permalink:"/ru/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/ru/assets/js/acf87bcd.c6a40ea2.js b/ru/assets/js/acf87bcd.17ba5192.js similarity index 98% rename from ru/assets/js/acf87bcd.c6a40ea2.js rename to ru/assets/js/acf87bcd.17ba5192.js index 9c4d083..49a0612 100644 --- a/ru/assets/js/acf87bcd.c6a40ea2.js +++ b/ru/assets/js/acf87bcd.17ba5192.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ru/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"8 \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433.",tags:[{label:"casvisor",permalink:"/ru/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/ru/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"8 \u0430\u043f\u0440\u0435\u043b\u044f 2024 \u0433.",tags:[{label:"casvisor",permalink:"/ru/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/ru/assets/js/d4e54de2.79415815.js b/ru/assets/js/d4e54de2.79415815.js deleted file mode 100644 index 649dec8..0000000 --- a/ru/assets/js/d4e54de2.79415815.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(k,i(i({ref:t},d),{},{components:a})):n.createElement(k,i({ref:t},d))}));function k(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/ru/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/ru/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/ru/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/ru/assets/js/d4e54de2.e5108d80.js b/ru/assets/js/d4e54de2.e5108d80.js new file mode 100644 index 0000000..bdcca18 --- /dev/null +++ b/ru/assets/js/d4e54de2.e5108d80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>g});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,g=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(g,i(i({ref:t},d),{},{components:a})):n.createElement(g,i({ref:t},d))}));function g(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/ru/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/ru/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/ru/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Nginx",id:"nginx",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h4",{id:"nginx"},"Nginx"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you use nginx as a reverse proxy, you need to add the following configuration to the nginx configuration file:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'location / {\n *** your configuration ***\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}\n')),(0,o.kt)("p",{parentName:"admonition"},"Because Casvisor uses websocket to communicate with guacd.")),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/ru/assets/js/runtime~main.7fdb1f31.js b/ru/assets/js/runtime~main.60f0b0b2.js similarity index 60% rename from ru/assets/js/runtime~main.7fdb1f31.js rename to ru/assets/js/runtime~main.60f0b0b2.js index 87562ab..5fe514c 100644 --- a/ru/assets/js/runtime~main.7fdb1f31.js +++ b/ru/assets/js/runtime~main.60f0b0b2.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,t,r,d,c={},o={};function f(e){var a=o[e];if(void 0!==a)return a.exports;var t=o[e]={exports:{}};return c[e].call(t.exports,t,t.exports,f),t.exports}f.m=c,e=[],f.O=(a,t,r,d)=>{if(!t){var c=1/0;for(i=0;i=d)&&Object.keys(f.O).every((e=>f.O[e](t[n])))?t.splice(n--,1):(o=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[t,r,d]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var d=Object.create(null);f.r(d);var c={};a=a||[null,t({}),t([]),t(t)];for(var o=2&r&&e;"object"==typeof o&&!~a.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach((a=>c[a]=()=>e[a]));return c.default=()=>e,f.d(d,c),d},f.d=(e,a)=>{for(var t in a)f.o(a,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,t)=>(f.f[t](e,a),a)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",240:"25cf857a",282:"d0510bae",310:"ea47aeb2",391:"290cc788",432:"a951fea5",514:"1be78505",534:"ef798800",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",717:"facd7a1b",720:"d4dd604b",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",857:"696b93ca",864:"8dd2e619",918:"17896441",930:"749ed5f5"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"7f5d56b9",68:"fbd76a3f",81:"8ddbce70",89:"1656bb5b",103:"e5273bec",151:"3c5cde16",195:"5f072758",217:"b7d5aef2",240:"bb394673",282:"9017c038",310:"127a866c",316:"81ede736",391:"0946f115",432:"f878b450",487:"c64f1a92",514:"bc0c2ac7",534:"2c47689d",535:"22d83095",562:"7c07e52a",583:"79415815",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"c6a40ea2",717:"27ccfae0",720:"43d5da62",724:"1f48a7fd",740:"70ede3d4",776:"28613545",778:"e93770e4",780:"de6153af",817:"59925caf",857:"b6186d3c",864:"5528c9b9",918:"d7957afb",930:"50928ec6",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},d="casvisor-website:",f.l=(e,a,t,c)=>{if(r[e])r[e].push(a);else{var o,n;if(void 0!==t)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(l);var d=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),d&&d.forEach((e=>e(t))),a)return a(t)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=s.bind(null,o.onerror),o.onload=s.bind(null,o.onload),n&&document.head.appendChild(o)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/ru/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217","25cf857a":"240",d0510bae:"282",ea47aeb2:"310","290cc788":"391",a951fea5:"432","1be78505":"514",ef798800:"534","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646",facd7a1b:"717",d4dd604b:"720","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817","696b93ca":"857","8dd2e619":"864","749ed5f5":"930"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(a,t)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(303|532)$/.test(a))e[a]=0;else{var d=new Promise(((t,d)=>r=e[a]=[t,d]));t.push(r[2]=d);var c=f.p+f.u(a),o=new Error;f.l(c,(t=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var d=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+a+" failed.\n("+d+": "+c+")",o.name="ChunkLoadError",o.type=d,o.request=c,r[1](o)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,t)=>{var r,d,c=t[0],o=t[1],n=t[2],b=0;if(c.some((a=>0!==e[a]))){for(r in o)f.o(o,r)&&(f.m[r]=o[r]);if(n)var i=n(f)}for(a&&a(t);b{"use strict";var e,a,t,r,c,d={},o={};function f(e){var a=o[e];if(void 0!==a)return a.exports;var t=o[e]={exports:{}};return d[e].call(t.exports,t,t.exports,f),t.exports}f.m=d,e=[],f.O=(a,t,r,c)=>{if(!t){var d=1/0;for(i=0;i=c)&&Object.keys(f.O).every((e=>f.O[e](t[n])))?t.splice(n--,1):(o=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[t,r,c]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var c=Object.create(null);f.r(c);var d={};a=a||[null,t({}),t([]),t(t)];for(var o=2&r&&e;"object"==typeof o&&!~a.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,f.d(c,d),c},f.d=(e,a)=>{for(var t in a)f.o(a,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((a,t)=>(f.f[t](e,a),a)),[])),f.u=e=>"assets/js/"+({13:"01a85c17",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",151:"7190cbd8",195:"c4f5d8e4",217:"1dba9094",240:"25cf857a",282:"d0510bae",310:"ea47aeb2",391:"290cc788",432:"a951fea5",514:"1be78505",534:"ef798800",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",608:"9e4087bc",610:"6875c492",646:"acf87bcd",717:"facd7a1b",720:"d4dd604b",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",817:"14eb3368",857:"696b93ca",864:"8dd2e619",918:"17896441",930:"749ed5f5"}[e]||e)+"."+{13:"3186fb4b",48:"63c544ab",53:"7f5d56b9",68:"fbd76a3f",81:"8ddbce70",89:"1656bb5b",103:"e5273bec",151:"3c5cde16",195:"5f072758",217:"b7d5aef2",240:"bb394673",282:"9017c038",310:"127a866c",316:"81ede736",391:"0946f115",432:"b5a38ada",487:"c64f1a92",514:"bc0c2ac7",534:"2c47689d",535:"22d83095",562:"7c07e52a",583:"e5108d80",594:"0b9b45b6",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"17ba5192",717:"27ccfae0",720:"43d5da62",724:"1f48a7fd",740:"70ede3d4",776:"28613545",778:"e93770e4",780:"de6153af",817:"59925caf",857:"bf23502f",864:"5528c9b9",918:"d7957afb",930:"50928ec6",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",f.miniCssF=e=>{},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},c="casvisor-website:",f.l=(e,a,t,d)=>{if(r[e])r[e].push(a);else{var o,n;if(void 0!==t)for(var b=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach((e=>e(t))),a)return a(t)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=s.bind(null,o.onerror),o.onload=s.bind(null,o.onload),n&&document.head.appendChild(o)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.p="/ru/",f.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","7190cbd8":"151",c4f5d8e4:"195","1dba9094":"217","25cf857a":"240",d0510bae:"282",ea47aeb2:"310","290cc788":"391",a951fea5:"432","1be78505":"514",ef798800:"534","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594","9e4087bc":"608","6875c492":"610",acf87bcd:"646",facd7a1b:"717",d4dd604b:"720","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","14eb3368":"817","696b93ca":"857","8dd2e619":"864","749ed5f5":"930"}[e]||e,f.p+f.u(e)},(()=>{var e={303:0,532:0};f.f.j=(a,t)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(303|532)$/.test(a))e[a]=0;else{var c=new Promise(((t,c)=>r=e[a]=[t,c]));t.push(r[2]=c);var d=f.p+f.u(a),o=new Error;f.l(d,(t=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var c=t&&("load"===t.type?"missing":t.type),d=t&&t.target&&t.target.src;o.message="Loading chunk "+a+" failed.\n("+c+": "+d+")",o.name="ChunkLoadError",o.type=c,o.request=d,r[1](o)}}),"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,t)=>{var r,c,d=t[0],o=t[1],n=t[2],b=0;if(d.some((a=>0!==e[a]))){for(r in o)f.o(o,r)&&(f.m[r]=o[r]);if(n)var i=n(f)}for(a&&a(t);b!function(t,h,e,j,s,n){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:3620236,hjsv:6},s=h.getElementsByTagName("head")[0],(n=h.createElement("script")).async=1,n.src="https://static.hotjar.com/c/hotjar-"+t._hjSettings.hjid+".js?sv="+t._hjSettings.hjsv,s.appendChild(n)}(window,document) - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/blog/atom.xml b/ru/blog/atom.xml index 216b313..cdd4fbe 100644 --- a/ru/blog/atom.xml +++ b/ru/blog/atom.xml @@ -2,7 +2,7 @@ https://casvisor.org/ru/blog Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z https://github.com/jpmonette/feed Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog @@ -11,7 +11,7 @@ <![CDATA[Welcome]]> https://casvisor.org/ru/blog/welcome - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z Welcome to Casvisor website!

]]>
diff --git a/ru/blog/index.html b/ru/blog/index.html index 1374fd3..4a697d9 100644 --- a/ru/blog/index.html +++ b/ru/blog/index.html @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/ru/blog/welcome/index.html b/ru/blog/welcome/index.html index 0d45a7b..86c5434 100644 --- a/ru/blog/welcome/index.html +++ b/ru/blog/welcome/index.html @@ -3,7 +3,7 @@ -Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform +Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/ru/docs/asset/intranet/index.html b/ru/docs/asset/intranet/index.html index 5bc2dc7..8b52302 100644 --- a/ru/docs/asset/intranet/index.html +++ b/ru/docs/asset/intranet/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/ru/docs/asset/overview/index.html b/ru/docs/asset/overview/index.html index b88ee6c..9af9001 100644 --- a/ru/docs/asset/overview/index.html +++ b/ru/docs/asset/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/docs/asset/rdp/index.html b/ru/docs/asset/rdp/index.html index 3b7a7a9..b949729 100644 --- a/ru/docs/asset/rdp/index.html +++ b/ru/docs/asset/rdp/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/ru/docs/asset/vnc/index.html b/ru/docs/asset/vnc/index.html index fd5e35b..5e75159 100644 --- a/ru/docs/asset/vnc/index.html +++ b/ru/docs/asset/vnc/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/ru/docs/basic/installation/index.html b/ru/docs/basic/installation/index.html index 9b00f0b..2204027 100644 --- a/ru/docs/basic/installation/index.html +++ b/ru/docs/basic/installation/index.html @@ -12,7 +12,7 @@ - + @@ -23,12 +23,12 @@ can create an application by clicking the add button.

create application

Required fields:

  1. Home: The host of Casvisor server, e.g. http://localhost:16001.
  2. Ognization: The organization you created in the previous step.
  3. Callback URLs: The callback URL of Casvisor server, e.g. http://localhost:16001/callback. You can add multiple callback URLs by clicking the add button. These are the urls that is allowed to be redirected after login.

application edit

guacd

Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install guacamole-server first. If you haven't installed guacamole-server, please refer to guacamole-server Installation.

You can also run guacd in docker with the following command:

docker run -d --name guacd -p 4822:4822 guacamole/guacd

Download

The source code of Casvisor is hosted on GitHub: https://github.com/casvisor/casvisor. Both the Go backend code and React frontend code are contained in a single repository.

NameDescriptionLanguageSource code
FrontendWeb frontend UI for CasdoorJavaScript + Reacthttps://github.com/casvisor/casvisor/tree/master/web
BackendRESTful API backend for CasdoorGolang + Beego + XORMhttps://github.com/casvisor/casvisor

Casvisor supports Go Modules. To download the code, simply clone the code using git:

git clone https://github.com/casvisor/casvisor

Configuration

Backend

The configuration file of Casvisor backend located at conf/app.conf. You need to modify the following fields:

Database

Modify dataSourceName to your own database connection string. Casvisor will create a database named casvisor if it doesn't exist.

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casvisor

Connect Casdoor

Modify casdoorEndpoint, clientID, clientSecret, casdoorOrganization and casdoorApplication to your own Casdoor configuration. -You can get the clientID and clientSecret from the application page that you created in the previous step.

casdoorEndpoint = http://localhost:8000
clientId = c34fdf145f41313727a8
clientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832
casdoorOrganization = "casbin"
casdoorApplication = "app-casvisor"

Frontend

In web/src/conf.js, you need to modify the following fields:

    export const AuthConfig = {
serverUrl: "http://localhost:8000",
clientId: "c34fdf145f4131b727a8",
appName: "app-casvisor",
organizationName: "casbin",
redirectPath: "/callback",
};

Run

Before running Casvisor, make sure Casdoor is running.

Production

In production, you need to build the frontend code first, then run the backend code.

Build frontend

cd web
yarn install
yarn build

After building successfully, the frontend bundle will be generated in web/build directory.

Run backend

go build

Visit backend server at http://localhost:19000.

Development

In development, you need to run the frontend code and backend code at the same time.

Run frontend

cd web
yarn install
yarn start

Run backend

go build

Visit frontend server http://localhost:16001.


- + \ No newline at end of file diff --git a/ru/docs/basic/try-with-docker/index.html b/ru/docs/basic/try-with-docker/index.html index ff6c3ea..b8be08b 100644 --- a/ru/docs/basic/try-with-docker/index.html +++ b/ru/docs/basic/try-with-docker/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@
- + \ No newline at end of file diff --git a/ru/docs/category/assets/index.html b/ru/docs/category/assets/index.html index f02e145..3710364 100644 --- a/ru/docs/category/assets/index.html +++ b/ru/docs/category/assets/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/docs/category/the-basics/index.html b/ru/docs/category/the-basics/index.html index 62cd678..f0d175c 100644 --- a/ru/docs/category/the-basics/index.html +++ b/ru/docs/category/the-basics/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/docs/overview/index.html b/ru/docs/overview/index.html index b425ad9..5003195 100644 --- a/ru/docs/overview/index.html +++ b/ru/docs/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/help/index.html b/ru/help/index.html index 6f4bd80..5f225b1 100644 --- a/ru/help/index.html +++ b/ru/help/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/index.html b/ru/index.html index e2f1cd6..f06fcd0 100644 --- a/ru/index.html +++ b/ru/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/pdf/index.html b/ru/pdf/index.html index 1414cda..9875dfb 100644 --- a/ru/pdf/index.html +++ b/ru/pdf/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/ru/users/index.html b/ru/users/index.html index 73a6eba..976ddb3 100644 --- a/ru/users/index.html +++ b/ru/users/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/users/index.html b/users/index.html index cb9f32a..84ec5c0 100644 --- a/users/index.html +++ b/users/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/404.html b/zh/404.html index c38f90d..ca0fb50 100644 --- a/zh/404.html +++ b/zh/404.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/assets/js/927d70e2.837862cf.js b/zh/assets/js/927d70e2.971560b2.js similarity index 93% rename from zh/assets/js/927d70e2.837862cf.js rename to zh/assets/js/927d70e2.971560b2.js index 2d1163d..c34548e 100644 --- a/zh/assets/js/927d70e2.837862cf.js +++ b/zh/assets/js/927d70e2.971560b2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[45],{2190:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/zh/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T02:45:07.000Z","formattedDate":"2024\u5e744\u67088\u65e5","tags":[{"label":"casvisor","permalink":"/zh/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[45],{2190:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/welcome","metadata":{"permalink":"/zh/blog/welcome","editUrl":"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md","source":"@site/blog/welcome.md","title":"Welcome","description":"Welcome to Casvisor website!","date":"2024-04-08T11:08:16.000Z","formattedDate":"2024\u5e744\u67088\u65e5","tags":[{"label":"casvisor","permalink":"/zh/blog/tags/casvisor"}],"readingTime":0.02,"hasTruncateMarker":false,"authors":[{"name":"Casbin Team","url":"https://github.com/casbin","imageURL":"https://avatars.githubusercontent.com/casbin"}],"frontMatter":{"title":"Welcome","author":"Casbin Team","author_url":"https://github.com/casbin","author_image_url":"https://avatars.githubusercontent.com/casbin","tags":["casvisor"]}},"content":"Welcome to Casvisor website!"}]}')}}]); \ No newline at end of file diff --git a/zh/assets/js/a951fea5.e3ffb6eb.js b/zh/assets/js/a951fea5.2c5e74cd.js similarity index 98% rename from zh/assets/js/a951fea5.e3ffb6eb.js rename to zh/assets/js/a951fea5.2c5e74cd.js index 912973f..b2b8eb5 100644 --- a/zh/assets/js/a951fea5.e3ffb6eb.js +++ b/zh/assets/js/a951fea5.2c5e74cd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/zh/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"2024\u5e744\u67088\u65e5",tags:[{label:"casvisor",permalink:"/zh/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[432],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/zh/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"2024\u5e744\u67088\u65e5",tags:[{label:"casvisor",permalink:"/zh/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/acf87bcd.e057f9a3.js b/zh/assets/js/acf87bcd.09edd8ae.js similarity index 98% rename from zh/assets/js/acf87bcd.e057f9a3.js rename to zh/assets/js/acf87bcd.09edd8ae.js index cd9662a..e521e5f 100644 --- a/zh/assets/js/acf87bcd.e057f9a3.js +++ b/zh/assets/js/acf87bcd.09edd8ae.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/zh/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T02:45:07.000Z",formattedDate:"2024\u5e744\u67088\u65e5",tags:[{label:"casvisor",permalink:"/zh/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[646],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,f=p["".concat(s,".").concat(b)]||p[b]||m[b]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=b;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const a={title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]},c=void 0,i={permalink:"/zh/blog/welcome",editUrl:"https://github.com/casvisor/casvisor-website/edit/master/blog/welcome.md",source:"@site/blog/welcome.md",title:"Welcome",description:"Welcome to Casvisor website!",date:"2024-04-08T11:08:16.000Z",formattedDate:"2024\u5e744\u67088\u65e5",tags:[{label:"casvisor",permalink:"/zh/blog/tags/casvisor"}],readingTime:.02,hasTruncateMarker:!1,authors:[{name:"Casbin Team",url:"https://github.com/casbin",imageURL:"https://avatars.githubusercontent.com/casbin"}],frontMatter:{title:"Welcome",author:"Casbin Team",author_url:"https://github.com/casbin",author_image_url:"https://avatars.githubusercontent.com/casbin",tags:["casvisor"]}},s={authorsImageUrls:[void 0]},l=[],u={toc:l},p="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Welcome to Casvisor website!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh/assets/js/d4e54de2.0a0eebf8.js b/zh/assets/js/d4e54de2.0a0eebf8.js new file mode 100644 index 0000000..1e18ca8 --- /dev/null +++ b/zh/assets/js/d4e54de2.0a0eebf8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>g});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,g=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(g,i(i({ref:t},d),{},{components:a})):n.createElement(g,i({ref:t},d))}));function g(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/zh/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/zh/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/zh/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Nginx",id:"nginx",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h4",{id:"nginx"},"Nginx"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"If you use nginx as a reverse proxy, you need to add the following configuration to the nginx configuration file:"),(0,o.kt)("pre",{parentName:"admonition"},(0,o.kt)("code",{parentName:"pre",className:"language-bash"},'location / {\n *** your configuration ***\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}\n')),(0,o.kt)("p",{parentName:"admonition"},"Because Casvisor uses websocket to communicate with guacd.")),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/d4e54de2.c105dca3.js b/zh/assets/js/d4e54de2.c105dca3.js deleted file mode 100644 index 1024d13..0000000 --- a/zh/assets/js/d4e54de2.c105dca3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcasvisor_website=self.webpackChunkcasvisor_website||[]).push([[583],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>k});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(a),m=o,k=p["".concat(s,".").concat(m)]||p[m]||u[m]||r;return a?n.createElement(k,i(i({ref:t},d),{},{components:a})):n.createElement(k,i({ref:t},d))}));function k(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var n=a(7462),o=(a(7294),a(3905));const r={title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},i=void 0,l={unversionedId:"basic/installation",id:"basic/installation",title:"Server Installation",description:"Install and configure Casvisor server.",source:"@site/docs/basic/installation.md",sourceDirName:"basic",slug:"/basic/installation",permalink:"/zh/docs/basic/installation",draft:!1,editUrl:"https://github.com/casvisor/casvisor-website/edit/master/docs/basic/installation.md",tags:[],version:"current",frontMatter:{title:"Server Installation",description:"Install and configure Casvisor server.",keywords:["Casvisor server","installation","configuration"],authors:["leo220yuyaodog"]},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/zh/docs/overview"},next:{title:"(Optional) Try with Docker",permalink:"/zh/docs/basic/try-with-docker"}},s={},c=[{value:"Prerequisite",id:"prerequisite",level:2},{value:"Casdoor",id:"casdoor",level:3},{value:"Create an organization",id:"create-an-organization",level:4},{value:"Create an application",id:"create-an-application",level:4},{value:"guacd",id:"guacd",level:3},{value:"Download",id:"download",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Backend",id:"backend",level:3},{value:"Database",id:"database",level:4},{value:"Connect Casdoor",id:"connect-casdoor",level:4},{value:"Frontend",id:"frontend",level:3},{value:"Run",id:"run",level:2},{value:"Production",id:"production",level:3},{value:"Build frontend",id:"build-frontend",level:4},{value:"Run backend",id:"run-backend",level:4},{value:"Development",id:"development",level:3},{value:"Run frontend",id:"run-frontend",level:4},{value:"Run backend",id:"run-backend-1",level:4}],d={toc:c},p="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"prerequisite"},"Prerequisite"),(0,o.kt)("p",null,"Casvisor server uses Casdoor as the authentication and authorization system. So you need to install Casdoor first. If\nyou haven't installed Casdoor, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://casdoor.org/docs/basic/server-installation"},"Casdoor Installation"),"."),(0,o.kt)("h3",{id:"casdoor"},"Casdoor"),(0,o.kt)("p",null,"You have installed Casdoor, now you need to do some necessary configuration in Casdoor in order to use Casvisor."),(0,o.kt)("h4",{id:"create-an-organization"},"Create an organization"),(0,o.kt)("p",null,"First, you need to create an organization (Except for the ",(0,o.kt)("inlineCode",{parentName:"p"},"build-in"),") in Casdoor. The organization page is at ",(0,o.kt)("strong",{parentName:"p"},"User Management -> Organizations"),".\nAnd you can create an organization by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create organization",src:a(372).Z,width:"1916",height:"976"})),(0,o.kt)("h4",{id:"create-an-application"},"Create an application"),(0,o.kt)("p",null,"You need to create an application for Casvisor in Casdoor. The application page is at ",(0,o.kt)("strong",{parentName:"p"},"Identity -> Applications"),". And you\ncan create an application by clicking the ",(0,o.kt)("inlineCode",{parentName:"p"},"add")," button."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"create application",src:a(4078).Z,width:"1898",height:"961"})),(0,o.kt)("p",null,"Required fields:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Home"),": The host of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001"),"."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Ognization"),": The organization you created in the previous step."),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("inlineCode",{parentName:"li"},"Callback URLs"),": The callback URL of Casvisor server, e.g. ",(0,o.kt)("inlineCode",{parentName:"li"},"http://localhost:16001/callback"),". You can add multiple\ncallback URLs by clicking the ",(0,o.kt)("inlineCode",{parentName:"li"},"add")," button. These are the urls that is allowed to be redirected after login.")),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"application edit",src:a(5107).Z,width:"1153",height:"861"})),(0,o.kt)("h3",{id:"guacd"},"guacd"),(0,o.kt)("p",null,"Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install\nguacamole-server first. If you haven't installed guacamole-server, please refer to ",(0,o.kt)("a",{parentName:"p",href:"https://guacamole.apache.org/doc/gug/installing-guacamole.html"},"guacamole-server Installation"),"."),(0,o.kt)("p",null,"You can also run guacd in docker with the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"docker run -d --name guacd -p 4822:4822 guacamole/guacd\n")),(0,o.kt)("h2",{id:"download"},"Download"),(0,o.kt)("p",null,"The source code of Casvisor is hosted on GitHub: ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"),". Both the Go backend code and React frontend code are contained in a single repository."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"Name"),(0,o.kt)("th",{parentName:"tr",align:null},"Description"),(0,o.kt)("th",{parentName:"tr",align:null},"Language"),(0,o.kt)("th",{parentName:"tr",align:null},"Source code"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Frontend"),(0,o.kt)("td",{parentName:"tr",align:null},"Web frontend UI for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"JavaScript + React"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor/tree/master/web"},"https://github.com/casvisor/casvisor/tree/master/web"))),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"Backend"),(0,o.kt)("td",{parentName:"tr",align:null},"RESTful API backend for Casdoor"),(0,o.kt)("td",{parentName:"tr",align:null},"Golang + Beego + XORM"),(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("a",{parentName:"td",href:"https://github.com/casvisor/casvisor"},"https://github.com/casvisor/casvisor"))))),(0,o.kt)("p",null,"Casvisor supports ",(0,o.kt)("inlineCode",{parentName:"p"},"Go Modules"),". To download the code, simply clone the code using git:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com/casvisor/casvisor\n")),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("h3",{id:"backend"},"Backend"),(0,o.kt)("p",null,"The configuration file of Casvisor backend located at ",(0,o.kt)("inlineCode",{parentName:"p"},"conf/app.conf"),". You need to modify the following fields:"),(0,o.kt)("h4",{id:"database"},"Database"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"dataSourceName")," to your own database connection string. Casvisor will create a database named ",(0,o.kt)("inlineCode",{parentName:"p"},"casvisor")," if it doesn't exist."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},"driverName = mysql\ndataSourceName = root:123456@tcp(localhost:3306)/\ndbName = casvisor\n")),(0,o.kt)("h4",{id:"connect-casdoor"},"Connect Casdoor"),(0,o.kt)("p",null,"Modify ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorEndpoint"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret"),", ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorOrganization")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"casdoorApplication")," to your own Casdoor configuration.\nYou can get the ",(0,o.kt)("inlineCode",{parentName:"p"},"clientID")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"clientSecret")," from the application page that you created in the previous step."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-ini"},'casdoorEndpoint = http://localhost:8000\nclientId = c34fdf145f41313727a8\nclientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832\ncasdoorOrganization = "casbin"\ncasdoorApplication = "app-casvisor"\n')),(0,o.kt)("h3",{id:"frontend"},"Frontend"),(0,o.kt)("p",null,"In ",(0,o.kt)("inlineCode",{parentName:"p"},"web/src/conf.js"),", you need to modify the following fields:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},' export const AuthConfig = {\n serverUrl: "http://localhost:8000",\n clientId: "c34fdf145f4131b727a8",\n appName: "app-casvisor",\n organizationName: "casbin",\n redirectPath: "/callback",\n};\n')),(0,o.kt)("h2",{id:"run"},"Run"),(0,o.kt)("p",null,"Before running Casvisor, make sure Casdoor is running."),(0,o.kt)("h3",{id:"production"},"Production"),(0,o.kt)("p",null,"In production, you need to build the frontend code first, then run the backend code."),(0,o.kt)("h4",{id:"build-frontend"},"Build frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn build\n")),(0,o.kt)("p",null,"After building successfully, the frontend bundle will be generated in ",(0,o.kt)("inlineCode",{parentName:"p"},"web/build")," directory."),(0,o.kt)("h4",{id:"run-backend"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit backend server at ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:19000"},"http://localhost:19000"),"."),(0,o.kt)("h3",{id:"development"},"Development"),(0,o.kt)("p",null,"In development, you need to run the frontend code and backend code at the same time."),(0,o.kt)("h4",{id:"run-frontend"},"Run frontend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"cd web\nyarn install\nyarn start\n")),(0,o.kt)("h4",{id:"run-backend-1"},"Run backend"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"go build\n")),(0,o.kt)("p",null,"Visit frontend server ",(0,o.kt)("a",{parentName:"p",href:"http://localhost:16001"},"http://localhost:16001"),"."))}u.isMDXComponent=!0},4078:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application-4e6390480ceae235dbc7913f1c68c8be.png"},5107:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_application_edit-4e415510dcbb00ba6342c558f76c29f0.png"},372:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/installtion_organization-cd98db6b989aff2c57d870cbd0aced85.png"}}]); \ No newline at end of file diff --git a/zh/assets/js/runtime~main.5380b673.js b/zh/assets/js/runtime~main.46c5e6eb.js similarity index 57% rename from zh/assets/js/runtime~main.5380b673.js rename to zh/assets/js/runtime~main.46c5e6eb.js index 718d3b3..6be58af 100644 --- a/zh/assets/js/runtime~main.5380b673.js +++ b/zh/assets/js/runtime~main.46c5e6eb.js @@ -1 +1 @@ -(()=>{"use strict";var e,t,r,a,o,c={},f={};function d(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={exports:{}};return c[e].call(r.exports,r,r.exports,d),r.exports}d.m=c,e=[],d.O=(t,r,a,o)=>{if(!r){var c=1/0;for(i=0;i=o)&&Object.keys(d.O).every((e=>d.O[e](r[n])))?r.splice(n--,1):(f=!1,o0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,a,o]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);d.r(o);var c={};t=t||[null,r({}),r([]),r(r)];for(var f=2&a&&e;"object"==typeof f&&!~t.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach((t=>c[t]=()=>e[t]));return c.default=()=>e,d.d(o,c),o},d.d=(e,t)=>{for(var r in t)d.o(t,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,r)=>(d.f[r](e,t),t)),[])),d.u=e=>"assets/js/"+({13:"01a85c17",45:"927d70e2",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",151:"7190cbd8",166:"14c8e628",195:"c4f5d8e4",217:"1dba9094",310:"ea47aeb2",357:"f781f909",391:"290cc788",432:"a951fea5",514:"1be78505",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",595:"b4214534",608:"9e4087bc",610:"6875c492",646:"acf87bcd",718:"981388e3",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",800:"3a332aed",817:"14eb3368",864:"8dd2e619",909:"bfb16af5",918:"17896441"}[e]||e)+"."+{13:"3186fb4b",45:"837862cf",48:"63c544ab",53:"699d1f07",68:"4490b5c1",81:"410bb843",89:"1656bb5b",103:"e5273bec",151:"e3c584c6",166:"c17b65a3",195:"5f072758",217:"b7d5aef2",310:"6566db8a",316:"81ede736",357:"77319bdf",391:"0946f115",432:"e3ffb6eb",487:"c64f1a92",514:"bc0c2ac7",535:"f114ea8c",562:"1db640fe",583:"c105dca3",594:"0b9b45b6",595:"c9e2fede",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"e057f9a3",718:"f1b39b92",724:"1f48a7fd",740:"70ede3d4",776:"1165e7f2",778:"172df872",780:"de6153af",800:"1c64ef1b",817:"59925caf",864:"5528c9b9",909:"d4cf9226",918:"d7957afb",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="casvisor-website:",d.l=(e,t,r,c)=>{if(a[e])a[e].push(t);else{var f,n;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i{f.onerror=f.onload=null,clearTimeout(l);var o=a[e];if(delete a[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach((e=>e(r))),t)return t(r)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),n&&document.head.appendChild(f)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/zh/",d.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","927d70e2":"45","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","7190cbd8":"151","14c8e628":"166",c4f5d8e4:"195","1dba9094":"217",ea47aeb2:"310",f781f909:"357","290cc788":"391",a951fea5:"432","1be78505":"514","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594",b4214534:"595","9e4087bc":"608","6875c492":"610",acf87bcd:"646","981388e3":"718","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","3a332aed":"800","14eb3368":"817","8dd2e619":"864",bfb16af5:"909"}[e]||e,d.p+d.u(e)},(()=>{var e={303:0,532:0};d.f.j=(t,r)=>{var a=d.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var c=d.p+d.u(t),f=new Error;d.l(c,(r=>{if(d.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;f.message="Loading chunk "+t+" failed.\n("+o+": "+c+")",f.name="ChunkLoadError",f.type=o,f.request=c,a[1](f)}}),"chunk-"+t,t)}},d.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,c=r[0],f=r[1],n=r[2],b=0;if(c.some((t=>0!==e[t]))){for(a in f)d.o(f,a)&&(d.m[a]=f[a]);if(n)var i=n(d)}for(t&&t(r);b{"use strict";var e,t,r,a,o,f={},c={};function d(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return f[e].call(r.exports,r,r.exports,d),r.exports}d.m=f,e=[],d.O=(t,r,a,o)=>{if(!r){var f=1/0;for(i=0;i=o)&&Object.keys(d.O).every((e=>d.O[e](r[n])))?r.splice(n--,1):(c=!1,o0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,a,o]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);d.r(o);var f={};t=t||[null,r({}),r([]),r(r)];for(var c=2&a&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach((t=>f[t]=()=>e[t]));return f.default=()=>e,d.d(o,f),o},d.d=(e,t)=>{for(var r in t)d.o(t,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,r)=>(d.f[r](e,t),t)),[])),d.u=e=>"assets/js/"+({13:"01a85c17",45:"927d70e2",53:"935f2afb",68:"9001695a",81:"18891827",89:"a6aa9e1f",103:"ccc49370",151:"7190cbd8",166:"14c8e628",195:"c4f5d8e4",217:"1dba9094",310:"ea47aeb2",357:"f781f909",391:"290cc788",432:"a951fea5",514:"1be78505",535:"814f3328",562:"a0e59008",583:"d4e54de2",594:"72ea323d",595:"b4214534",608:"9e4087bc",610:"6875c492",646:"acf87bcd",718:"981388e3",740:"7e37206e",776:"81130aff",778:"49d2d5a5",780:"596abbce",800:"3a332aed",817:"14eb3368",864:"8dd2e619",909:"bfb16af5",918:"17896441"}[e]||e)+"."+{13:"3186fb4b",45:"971560b2",48:"63c544ab",53:"699d1f07",68:"4490b5c1",81:"410bb843",89:"1656bb5b",103:"e5273bec",151:"e3c584c6",166:"c17b65a3",195:"5f072758",217:"b7d5aef2",310:"6566db8a",316:"81ede736",357:"77319bdf",391:"0946f115",432:"2c5e74cd",487:"c64f1a92",514:"bc0c2ac7",535:"f114ea8c",562:"1db640fe",583:"0a0eebf8",594:"0b9b45b6",595:"c9e2fede",608:"f0c69295",610:"419d4bd6",628:"2fe50af1",646:"09edd8ae",718:"f1b39b92",724:"1f48a7fd",740:"70ede3d4",776:"1165e7f2",778:"172df872",780:"de6153af",800:"1c64ef1b",817:"59925caf",864:"5528c9b9",909:"d4cf9226",918:"d7957afb",954:"23f9c7ee",972:"ed6443c5"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="casvisor-website:",d.l=(e,t,r,f)=>{if(a[e])a[e].push(t);else{var c,n;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i{c.onerror=c.onload=null,clearTimeout(l);var o=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((e=>e(r))),t)return t(r)},l=setTimeout(s.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=s.bind(null,c.onerror),c.onload=s.bind(null,c.onload),n&&document.head.appendChild(c)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/zh/",d.gca=function(e){return e={17896441:"918",18891827:"81","01a85c17":"13","927d70e2":"45","935f2afb":"53","9001695a":"68",a6aa9e1f:"89",ccc49370:"103","7190cbd8":"151","14c8e628":"166",c4f5d8e4:"195","1dba9094":"217",ea47aeb2:"310",f781f909:"357","290cc788":"391",a951fea5:"432","1be78505":"514","814f3328":"535",a0e59008:"562",d4e54de2:"583","72ea323d":"594",b4214534:"595","9e4087bc":"608","6875c492":"610",acf87bcd:"646","981388e3":"718","7e37206e":"740","81130aff":"776","49d2d5a5":"778","596abbce":"780","3a332aed":"800","14eb3368":"817","8dd2e619":"864",bfb16af5:"909"}[e]||e,d.p+d.u(e)},(()=>{var e={303:0,532:0};d.f.j=(t,r)=>{var a=d.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var f=d.p+d.u(t),c=new Error;d.l(f,(r=>{if(d.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),f=r&&r.target&&r.target.src;c.message="Loading chunk "+t+" failed.\n("+o+": "+f+")",c.name="ChunkLoadError",c.type=o,c.request=f,a[1](c)}}),"chunk-"+t,t)}},d.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,f=r[0],c=r[1],n=r[2],b=0;if(f.some((t=>0!==e[t]))){for(a in c)d.o(c,a)&&(d.m[a]=c[a]);if(n)var i=n(d)}for(t&&t(r);b!function(t,h,e,j,s,n){t.hj=t.hj||function(){(t.hj.q=t.hj.q||[]).push(arguments)},t._hjSettings={hjid:3620236,hjsv:6},s=h.getElementsByTagName("head")[0],(n=h.createElement("script")).async=1,n.src="https://static.hotjar.com/c/hotjar-"+t._hjSettings.hjid+".js?sv="+t._hjSettings.hjsv,s.appendChild(n)}(window,document) - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/blog/atom.xml b/zh/blog/atom.xml index cfac9de..3d897e9 100644 --- a/zh/blog/atom.xml +++ b/zh/blog/atom.xml @@ -2,7 +2,7 @@ https://casvisor.org/zh/blog Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z https://github.com/jpmonette/feed Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform Blog @@ -11,7 +11,7 @@ <![CDATA[Welcome]]> https://casvisor.org/zh/blog/welcome - 2024-04-08T02:45:07.000Z + 2024-04-08T11:08:16.000Z Welcome to Casvisor website!

]]>
diff --git a/zh/blog/index.html b/zh/blog/index.html index d83cd19..ec8e75d 100644 --- a/zh/blog/index.html +++ b/zh/blog/index.html @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/zh/blog/welcome/index.html b/zh/blog/welcome/index.html index 73256dc..ff41a47 100644 --- a/zh/blog/welcome/index.html +++ b/zh/blog/welcome/index.html @@ -3,7 +3,7 @@ -Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform +Welcome | Casvisor · An open-source security log auditing & RDP, VNC, SSH and databases management bastion platform @@ -12,17 +12,17 @@ - +
-
- + \ No newline at end of file diff --git a/zh/docs/asset/intranet/index.html b/zh/docs/asset/intranet/index.html index ceb6e63..0505b54 100644 --- a/zh/docs/asset/intranet/index.html +++ b/zh/docs/asset/intranet/index.html @@ -12,7 +12,7 @@ - + @@ -24,7 +24,7 @@ - + \ No newline at end of file diff --git a/zh/docs/asset/overview/index.html b/zh/docs/asset/overview/index.html index a5aa9bf..bc6cc4a 100644 --- a/zh/docs/asset/overview/index.html +++ b/zh/docs/asset/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/docs/asset/rdp/index.html b/zh/docs/asset/rdp/index.html index 07a7b12..64e78b3 100644 --- a/zh/docs/asset/rdp/index.html +++ b/zh/docs/asset/rdp/index.html @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + \ No newline at end of file diff --git a/zh/docs/asset/vnc/index.html b/zh/docs/asset/vnc/index.html index 01a00bf..fa18f9e 100644 --- a/zh/docs/asset/vnc/index.html +++ b/zh/docs/asset/vnc/index.html @@ -12,7 +12,7 @@ - + @@ -23,7 +23,7 @@ - + \ No newline at end of file diff --git a/zh/docs/basic/installation/index.html b/zh/docs/basic/installation/index.html index b62e2de..6061093 100644 --- a/zh/docs/basic/installation/index.html +++ b/zh/docs/basic/installation/index.html @@ -12,7 +12,7 @@ - + @@ -23,12 +23,12 @@ can create an application by clicking the add button.

create application

Required fields:

  1. Home: The host of Casvisor server, e.g. http://localhost:16001.
  2. Ognization: The organization you created in the previous step.
  3. Callback URLs: The callback URL of Casvisor server, e.g. http://localhost:16001/callback. You can add multiple callback URLs by clicking the add button. These are the urls that is allowed to be redirected after login.

application edit

guacd

Casvisor uses guacamole-server to provide remote desktop access. If you want to use this feature, you need to install guacamole-server first. If you haven't installed guacamole-server, please refer to guacamole-server Installation.

You can also run guacd in docker with the following command:

docker run -d --name guacd -p 4822:4822 guacamole/guacd

Download

The source code of Casvisor is hosted on GitHub: https://github.com/casvisor/casvisor. Both the Go backend code and React frontend code are contained in a single repository.

NameDescriptionLanguageSource code
FrontendWeb frontend UI for CasdoorJavaScript + Reacthttps://github.com/casvisor/casvisor/tree/master/web
BackendRESTful API backend for CasdoorGolang + Beego + XORMhttps://github.com/casvisor/casvisor

Casvisor supports Go Modules. To download the code, simply clone the code using git:

git clone https://github.com/casvisor/casvisor

Configuration

Backend

The configuration file of Casvisor backend located at conf/app.conf. You need to modify the following fields:

Database

Modify dataSourceName to your own database connection string. Casvisor will create a database named casvisor if it doesn't exist.

driverName = mysql
dataSourceName = root:123456@tcp(localhost:3306)/
dbName = casvisor

Connect Casdoor

Modify casdoorEndpoint, clientID, clientSecret, casdoorOrganization and casdoorApplication to your own Casdoor configuration. -You can get the clientID and clientSecret from the application page that you created in the previous step.

casdoorEndpoint = http://localhost:8000
clientId = c34fdf145f41313727a8
clientSecret = 615c503d4552d24a40360cf908b6d17e3b7f8832
casdoorOrganization = "casbin"
casdoorApplication = "app-casvisor"

Frontend

In web/src/conf.js, you need to modify the following fields:

    export const AuthConfig = {
serverUrl: "http://localhost:8000",
clientId: "c34fdf145f4131b727a8",
appName: "app-casvisor",
organizationName: "casbin",
redirectPath: "/callback",
};

Run

Before running Casvisor, make sure Casdoor is running.

Production

In production, you need to build the frontend code first, then run the backend code.

Build frontend

cd web
yarn install
yarn build

After building successfully, the frontend bundle will be generated in web/build directory.

Run backend

go build

Visit backend server at http://localhost:19000.

Development

In development, you need to run the frontend code and backend code at the same time.

Run frontend

cd web
yarn install
yarn start

Run backend

go build

Visit frontend server http://localhost:16001.


- + \ No newline at end of file diff --git a/zh/docs/basic/try-with-docker/index.html b/zh/docs/basic/try-with-docker/index.html index 856b81d..75fe3a2 100644 --- a/zh/docs/basic/try-with-docker/index.html +++ b/zh/docs/basic/try-with-docker/index.html @@ -12,7 +12,7 @@ - + @@ -26,7 +26,7 @@
- + \ No newline at end of file diff --git a/zh/docs/category/assets/index.html b/zh/docs/category/assets/index.html index 914f4e5..ef8a064 100644 --- a/zh/docs/category/assets/index.html +++ b/zh/docs/category/assets/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/docs/category/the-basics/index.html b/zh/docs/category/the-basics/index.html index f888ec0..b00ab8d 100644 --- a/zh/docs/category/the-basics/index.html +++ b/zh/docs/category/the-basics/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/docs/overview/index.html b/zh/docs/overview/index.html index bcf6a46..74a6b23 100644 --- a/zh/docs/overview/index.html +++ b/zh/docs/overview/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/help/index.html b/zh/help/index.html index 6ac6c36..5fa84c4 100644 --- a/zh/help/index.html +++ b/zh/help/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/index.html b/zh/index.html index 51bc092..f1b8695 100644 --- a/zh/index.html +++ b/zh/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/pdf/index.html b/zh/pdf/index.html index c7f6e65..ef13871 100644 --- a/zh/pdf/index.html +++ b/zh/pdf/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/zh/users/index.html b/zh/users/index.html index 9787b76..f8f2dce 100644 --- a/zh/users/index.html +++ b/zh/users/index.html @@ -12,7 +12,7 @@ - + @@ -22,7 +22,7 @@ - + \ No newline at end of file