├── .gitignore ├── README.md ├── babel.config.js ├── dist ├── css │ ├── appconfig.27e6c97f.css │ ├── appconfig~common~dashboard~groups~help~images~instance~instances~login~networks~profiles~projects~se~d63bb708.8993a2e0.css │ ├── appconfig~common~dashboard~groups~help~images~instance~instances~networks~profiles~projects~settings~users.5c6ada20.css │ ├── appconfig~dashboard~groups~help~images~instance~instances~login~networks~profiles~projects~settings~users.a2378f9f.css │ ├── appconfig~dashboard~groups~help~images~instance~instances~networks~profiles~projects~settings~users.6a2713a9.css │ ├── chunk-vendors.329858b2.css │ ├── common.62726b2d.css │ ├── dashboard.67cac3d6.css │ ├── groups.715f8e51.css │ ├── help.1d812d59.css │ ├── images.6a10af55.css │ ├── instance.d4c2dbf2.css │ ├── instances.9f2bc43b.css │ ├── login.c5369e4f.css │ ├── networks.fd924073.css │ ├── profiles.fd924073.css │ ├── projects.fd924073.css │ ├── settings.89345e09.css │ └── users.41933215.css ├── favicon.ico ├── index.html ├── js │ ├── app.f7e81680.js │ ├── app.f7e81680.js.map │ ├── appconfig.b3686073.js │ ├── appconfig.b3686073.js.map │ ├── appconfig~common~dashboard~groups~help~images~instance~instances~login~networks~profiles~projects~se~d63bb708.41ea6473.js │ ├── appconfig~common~dashboard~groups~help~images~instance~instances~login~networks~profiles~projects~se~d63bb708.41ea6473.js.map │ ├── appconfig~common~dashboard~groups~help~images~instance~instances~networks~profiles~projects~settings~users.e03c7a85.js │ ├── appconfig~common~dashboard~groups~help~images~instance~instances~networks~profiles~projects~settings~users.e03c7a85.js.map │ ├── appconfig~dashboard~groups~help~images~instance~instances~login~networks~profiles~projects~settings~users.8bf742e3.js │ ├── appconfig~dashboard~groups~help~images~instance~instances~login~networks~profiles~projects~settings~users.8bf742e3.js.map │ ├── appconfig~dashboard~groups~help~images~instance~instances~networks~profiles~projects~settings~users.b3eb35ca.js │ ├── appconfig~dashboard~groups~help~images~instance~instances~networks~profiles~projects~settings~users.b3eb35ca.js.map │ ├── chunk-vendors.86457050.js │ ├── chunk-vendors.86457050.js.map │ ├── common.1da52282.js │ ├── common.1da52282.js.map │ ├── dashboard.599df7d6.js │ ├── dashboard.599df7d6.js.map │ ├── groups.aeee21c6.js │ ├── groups.aeee21c6.js.map │ ├── help.37d3939e.js │ ├── help.37d3939e.js.map │ ├── images.c72210ce.js │ ├── images.c72210ce.js.map │ ├── instance.63f0b1ea.js │ ├── instance.63f0b1ea.js.map │ ├── instances.ab1666aa.js │ ├── instances.ab1666aa.js.map │ ├── login.ccffa843.js │ ├── login.ccffa843.js.map │ ├── networks.1a1595be.js │ ├── networks.1a1595be.js.map │ ├── profiles.7fdf17b0.js │ ├── profiles.7fdf17b0.js.map │ ├── projects.e02339f8.js │ ├── projects.e02339f8.js.map │ ├── settings.820d8edf.js │ ├── settings.820d8edf.js.map │ ├── users.6042eb17.js │ └── users.6042eb17.js.map └── static │ └── config.json ├── install_dashboard.sh ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── index.html └── static │ └── config.json ├── src ├── App.vue ├── assets │ ├── locales │ │ ├── en.json │ │ └── sk.json │ ├── logo_lxd-manager.png │ └── styles │ │ ├── _variables.scss │ │ └── main.scss ├── components │ ├── AdminStats │ │ ├── AdminStats.vue │ │ ├── AdminStatsCard.vue │ │ └── HostStatsCard.vue │ ├── AppConfig │ │ ├── AppConfig.vue │ │ ├── EmailConfig.vue │ │ ├── OtherConfig.vue │ │ ├── PriceConfig.vue │ │ └── Tabs.vue │ ├── Groups │ │ ├── Groups.vue │ │ └── GroupsEdit.vue │ ├── Help │ │ └── Help.vue │ ├── Images │ │ ├── Images.vue │ │ ├── ImagesCard.vue │ │ └── RemoteImages.vue │ ├── Instance │ │ ├── Console.vue │ │ ├── Info.vue │ │ ├── Settings.vue │ │ ├── Snapshots.vue │ │ ├── Stats.vue │ │ └── Tabs.vue │ ├── Instances │ │ ├── DashboardInstances.vue │ │ └── Instances.vue │ ├── Loader.vue │ ├── Networks │ │ ├── Networks.vue │ │ └── NetworksCard.vue │ ├── Notifications.vue │ ├── Order │ │ ├── Order.vue │ │ ├── OrderCreate.vue │ │ └── OrderUpgrade.vue │ ├── Profiles │ │ ├── Profiles.vue │ │ └── ProfilesCard.vue │ ├── Projects │ │ ├── Projects.vue │ │ └── ProjectsCard.vue │ ├── Relogin.vue │ ├── Requests │ │ └── Requests.vue │ ├── Settings │ │ ├── Settings.vue │ │ ├── SettingsChangePassword.vue │ │ ├── SettingsProfile.vue │ │ └── SettingsSettings.vue │ ├── Stats │ │ ├── Stats.vue │ │ └── StatsCard.vue │ └── Users │ │ └── Users.vue ├── libraries │ ├── i18n │ │ └── index.js │ ├── plugins │ │ ├── auth.js │ │ ├── index.js │ │ └── title.js │ ├── router │ │ ├── index.js │ │ ├── main-routes.js │ │ └── routes.js │ ├── services │ │ ├── abilities.js │ │ ├── appconfig.js │ │ ├── auth.js │ │ ├── checkconfig.js │ │ ├── groups.js │ │ ├── host.js │ │ ├── images.js │ │ ├── index.js │ │ ├── instances.js │ │ ├── me.js │ │ ├── networks.js │ │ ├── operations.js │ │ ├── profiles.js │ │ ├── projects.js │ │ ├── requests.js │ │ ├── resource.js │ │ ├── serverResource.js │ │ ├── servers.js │ │ ├── stats.js │ │ └── users.js │ ├── store │ │ ├── actions.js │ │ ├── getters.js │ │ ├── index.js │ │ ├── modules │ │ │ ├── abilities.js │ │ │ ├── appconfig.js │ │ │ ├── auth.js │ │ │ ├── checkconfig.js │ │ │ ├── groups.js │ │ │ ├── host.js │ │ │ ├── images.js │ │ │ ├── index.js │ │ │ ├── instances.js │ │ │ ├── networks.js │ │ │ ├── notifications.js │ │ │ ├── operations.js │ │ │ ├── profiles.js │ │ │ ├── projects.js │ │ │ ├── requests.js │ │ │ ├── servers.js │ │ │ ├── stats.js │ │ │ └── users.js │ │ ├── mutations.js │ │ └── state.js │ └── utils │ │ ├── auth │ │ ├── abilities.js │ │ ├── groups.js │ │ └── index.js │ │ ├── axios.js │ │ ├── constants.js │ │ ├── format │ │ ├── images.js │ │ ├── instance.js │ │ ├── memoryLimit.js │ │ ├── request.js │ │ ├── stats.js │ │ ├── user.js │ │ └── userActions.js │ │ ├── helpers.js │ │ ├── index.js │ │ ├── states.js │ │ └── storage.js ├── main.js ├── plugins │ └── vuetify.js └── views │ ├── layouts │ ├── Error.vue │ ├── Layout.vue │ └── Login.vue │ └── pages │ ├── AppConfig.vue │ ├── Dashboard.vue │ ├── Groups.vue │ ├── Help.vue │ ├── Images.vue │ ├── Instance.vue │ ├── Instances.vue │ ├── Networks.vue │ ├── Profiles.vue │ ├── Projects.vue │ ├── Requests.vue │ ├── Settings.vue │ └── Users.vue └── vue.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | #/dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## LXDmanager-vue-dashboard 2 | 3 | This application provide frontend for lxdmanager. 4 | You can read more details and try **demo** on https://lxdmanager.com 5 | 6 | **1.0.0** — *Possible run it in production* 7 | 8 |  9 |  10 |  11 |  12 |  13 | 14 | ## Why ? 15 | 16 | The purpose of this application is to provide web gui manager for LXD with additional features and user based management. 17 | It can be used for restrict access to containers for developers or as web management for container hosting clients. 18 | 19 | ## Credits 20 | 21 | This project is based on [vue-cli](https://github.com/lxc-webpanel/dashboard-vue) 22 | 23 | ## Running requirement 24 | 25 | This project require running backend for API from (https://github.com/Miso-K/lxd-api-gateway) 26 | 27 | It is recomended to use *Nginx* as webserver and proxy for websocket. 28 | 29 | ## Install 30 | For installation actual version of *lxdmanager-vue-dashboard* you can use *install_dashboard.sh* script. 31 | 32 | ``` bash 33 | # Download the script 34 | curl https://raw.githubusercontent.com/Miso-K/lxdmanager-vue-dashboard/master/install_dashboard.sh > install_dashboard.sh 35 | # Set execution permissions 36 | chmod +x install_dashboard.sh 37 | # Run script to install program 38 | ./install_dashboard.sh 39 | ``` 40 | 41 | The script download github repository and copy content of directory *dist* into */var/www/lxdmanager-vue-dashboard/* 42 | 43 | You can manualy download repository from github and copy content of directory *dist* where you need. 44 | 45 | *Nginx* config templates are stored in *nginx* directory. 46 | 47 | 48 | ## Development and build using vue ui 49 | 50 | ``` bash 51 | # install vue-cli and dependencies 52 | npm install @vue/cli 53 | 54 | # run vue ui at localhost:8080 55 | vue ui 56 | 57 | ``` 58 | 59 | For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Miso-K/lxdmanager-vue-dashboard/de00c56f1c209f6d9fc9f2f4afce3193c3073304/dist/favicon.ico -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 |
Please setup your device
78 |Secret key: {{ otpSecret }}
80 |