├── public └── install │ ├── api │ ├── .gitignore │ ├── src │ │ ├── Exception │ │ │ └── SSLValidationException.php │ │ └── Api.php │ └── composer.json │ ├── favicon.ico │ └── api.php ├── .vscode └── extensions.json ├── src ├── assets │ ├── scss │ │ ├── _custom.scss │ │ ├── _steps.scss │ │ ├── base.scss │ │ ├── _transitions.scss │ │ ├── _bars.scss │ │ ├── _typography.scss │ │ ├── _variables.scss │ │ └── _forms.scss │ └── img │ │ ├── background.jpg │ │ ├── circle-logo.png │ │ └── sidebar-logo.png ├── store │ ├── index.js │ └── steps.js ├── main.js ├── mixins │ └── step.js ├── components │ ├── Tab.vue │ ├── steps │ │ ├── Introduction.vue │ │ ├── License.vue │ │ ├── Complete.vue │ │ ├── FinalChecks.vue │ │ ├── Installation.vue │ │ ├── Checks.vue │ │ └── Configuration.vue │ ├── Tabs.vue │ ├── TabNav.vue │ ├── Sidebar.vue │ ├── Check.vue │ └── Click.vue ├── plugins │ └── api.js └── Installer.vue ├── .env.local.example ├── .github ├── web-installer.jpg └── workflows │ └── release.yaml ├── .env.production ├── .editorconfig ├── .gitignore ├── install.html ├── package.json ├── .eslintrc.js ├── LICENSE ├── vite.config.js └── README.md /public/install/api/.gitignore: -------------------------------------------------------------------------------- 1 | composer.phar 2 | vendor/ -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /src/assets/scss/_custom.scss: -------------------------------------------------------------------------------- 1 | .columns + .columns { 2 | margin-top: $layout-spacing-sm; 3 | } 4 | -------------------------------------------------------------------------------- /.env.local.example: -------------------------------------------------------------------------------- 1 | # Web base URL to the /install/api.php script. 2 | VITE_APP_INSTALL_URL="http://127.0.0.1:8081" -------------------------------------------------------------------------------- /.github/web-installer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wintercms/web-installer/HEAD/.github/web-installer.jpg -------------------------------------------------------------------------------- /public/install/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wintercms/web-installer/HEAD/public/install/favicon.ico -------------------------------------------------------------------------------- /src/assets/img/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wintercms/web-installer/HEAD/src/assets/img/background.jpg -------------------------------------------------------------------------------- /src/assets/img/circle-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wintercms/web-installer/HEAD/src/assets/img/circle-logo.png -------------------------------------------------------------------------------- /src/assets/img/sidebar-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wintercms/web-installer/HEAD/src/assets/img/sidebar-logo.png -------------------------------------------------------------------------------- /.env.production: -------------------------------------------------------------------------------- 1 | # Web base URL to the /install/api.php script. On production, this should remain as is. 2 | VITE_APP_INSTALL_URL="./install" -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Vuex from 'vuex'; 3 | import steps from './steps'; 4 | 5 | Vue.use(Vuex); 6 | 7 | export default new Vuex.Store({ 8 | modules: { 9 | steps, 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /public/install/api.php: -------------------------------------------------------------------------------- 1 | request(); -------------------------------------------------------------------------------- /public/install/api/src/Exception/SSLValidationException.php: -------------------------------------------------------------------------------- 1 | h(Installer), 14 | }).$mount('#app'); 15 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js,jsx,ts,tsx,vue,scss}] 2 | indent_style = space 3 | indent_size = 2 4 | end_of_line = lf 5 | trim_trailing_whitespace = true 6 | insert_final_newline = true 7 | max_line_length = 100 8 | 9 | [*.{php}] 10 | indent_style = space 11 | indent_size = 4 12 | end_of_line = lf 13 | trim_trailing_whitespace = true 14 | insert_final_newline = true 15 | max_line_length = 120 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | # Installer files 27 | public/.temp.sqlite 28 | public/install.log 29 | public/.ignore-ssl -------------------------------------------------------------------------------- /src/assets/scss/_steps.scss: -------------------------------------------------------------------------------- 1 | .step { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | height: 100%; 7 | display: flex; 8 | flex-direction: column; 9 | 10 | .step-content { 11 | flex-grow: 1; 12 | flex-shrink: 1; 13 | padding: $layout-spacing $layout-spacing-lg; 14 | } 15 | 16 | .step-actions { 17 | flex-grow: 0; 18 | flex-shrink: 0; 19 | height: 100px; 20 | 21 | line-height: 100px; 22 | text-align: center; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/mixins/step.js: -------------------------------------------------------------------------------- 1 | export default { 2 | computed: { 3 | isActive() { 4 | return this.$store.getters['steps/isActive'](this.stepId); 5 | }, 6 | }, 7 | data() { 8 | return { 9 | stepId: 'step', 10 | stepName: 'Step', 11 | }; 12 | }, 13 | created() { 14 | this.$store.dispatch('steps/add', { 15 | id: this.stepId, 16 | name: this.stepName, 17 | }); 18 | }, 19 | destroyed() { 20 | this.$store.dispatch('steps/remove', { 21 | id: this.stepId, 22 | }); 23 | }, 24 | }; 25 | -------------------------------------------------------------------------------- /src/assets/scss/base.scss: -------------------------------------------------------------------------------- 1 | // Variables and mixins 2 | @import "spectre.css/src/mixins"; 3 | 4 | // Reset and dependencies 5 | @import "spectre.css/src/normalize"; 6 | @import "spectre.css/src/base"; 7 | 8 | // Elements 9 | @import "typography"; 10 | @import "forms"; 11 | @import "spectre.css/src/labels"; 12 | @import "spectre.css/src/codes"; 13 | @import "bars"; 14 | 15 | // Layout 16 | @import "spectre.css/src/layout"; 17 | @import "steps"; 18 | 19 | // Utilities 20 | @import "transitions"; 21 | 22 | // Custom styling 23 | @import "custom"; 24 | -------------------------------------------------------------------------------- /src/assets/scss/_transitions.scss: -------------------------------------------------------------------------------- 1 | .fade-enter-active, .fade-leave-active { 2 | transition: opacity 250ms; 3 | } 4 | 5 | .fade-enter-active { 6 | transition-delay: 250ms; 7 | } 8 | 9 | .fade-enter, .fade-leave-to { 10 | opacity: 0; 11 | } 12 | 13 | @keyframes showTick { 14 | 0% { 15 | top: 120%; 16 | opacity: 0; 17 | } 18 | 19 | 100% { 20 | top: 50%; 21 | opacity: 1; 22 | } 23 | } 24 | 25 | .install-step-item { 26 | transition: all 500ms ease; 27 | } 28 | 29 | .install-step-enter, .install-step-leave-to { 30 | opacity: 0; 31 | } 32 | -------------------------------------------------------------------------------- /install.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 |9 | Thanks for choosing Winter CMS as your development platform, get ready to enjoy development 10 | again! 11 |
12 |13 | This installer will guide you through the process of installing a fresh copy of Winter CMS 14 | for your project. Please follow the instructions provided and fill in all necessary 15 | information. 16 |
17 |Let's get the boring stuff out of the way. Please read the following license and 7 | indicate that you accept its terms.
8 |11 | MIT License 12 | 13 | Copyright (c) 2013-2021.03.01 October CMS 14 | Copyright (c) 2021 Winter CMS 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 |34 | 35 |
Your new installation is ready to go. We hope you enjoy using Winter CMS!
9 |To ensure that Winter CMS can install and run with your configuration, we're doing some 7 | final checks.
8 |This process may take a minute or two. Please do not close the window.
12 | 13 | 20 | 21 |34 | Sorry, but an error has occurred while trying to install Winter CMS. 35 |
36 |37 |
To ensure that Winter CMS can install and run on your web server, we're just doing 7 | a couple of checks of your PHP and server configuration.
8 |
258 | Your SQLite database will be set up in the default path for Winter CMS,
259 | which for your installation will be:
260 |
261 |
262 |