├── storage ├── logs │ └── index.html ├── accounts │ └── index.html ├── cache │ └── index.html ├── media │ └── index.html ├── sessions │ └── index.html └── content │ ├── error │ └── error.txt │ ├── home │ └── home.txt │ └── site.txt ├── site ├── snippets │ └── index.html ├── templates │ └── default.php └── blueprints │ ├── site.yml │ └── pages │ └── default.yml ├── .editorconfig ├── public ├── index.php └── .htaccess ├── .gitignore ├── composer.json └── README.md /storage/logs/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site/snippets/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/accounts/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/cache/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/media/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/sessions/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /storage/content/error/error.txt: -------------------------------------------------------------------------------- 1 | Title: Error -------------------------------------------------------------------------------- /storage/content/home/home.txt: -------------------------------------------------------------------------------- 1 | Title: Home -------------------------------------------------------------------------------- /storage/content/site.txt: -------------------------------------------------------------------------------- 1 | Title: Site Title -------------------------------------------------------------------------------- /site/templates/default.php: -------------------------------------------------------------------------------- 1 |

title() ?>

2 | -------------------------------------------------------------------------------- /site/blueprints/site.yml: -------------------------------------------------------------------------------- 1 | title: Site 2 | preset: pages 3 | unlisted: true 4 | -------------------------------------------------------------------------------- /site/blueprints/pages/default.yml: -------------------------------------------------------------------------------- 1 | title: Default Page 2 | preset: page 3 | fields: 4 | text: 5 | label: Text 6 | type: textarea 7 | size: large 8 | 9 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{css,scss,less,js,json,ts,sass,html,hbs,mustache,phtml,html.twig,md,yml}] 2 | charset = utf-8 3 | indent_style = space 4 | indent_size = 2 5 | end_of_line = lf 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | 9 | [*.md] 10 | indent_size = 4 11 | trim_trailing_whitespace = false 12 | 13 | [site/templates/**.php] 14 | indent_size = 2 15 | 16 | [site/snippets/**.php] 17 | indent_size = 2 18 | 19 | [package.json,.{babelrc,editorconfig,eslintrc,lintstagedrc,stylelintrc}] 20 | indent_style = space 21 | indent_size = 2 22 | -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | [ 7 | 'index' => __DIR__, 8 | 'base' => $base = dirname(__DIR__), 9 | 'site' => $base . '/site', 10 | 'storage' => $storage = $base . '/storage', 11 | 'content' => $storage . '/content', 12 | 'accounts' => $storage . '/accounts', 13 | 'cache' => $storage . '/cache', 14 | 'license' => $storage . '/.license', 15 | 'logs' => $storage . '/logs', 16 | 'media' => $storage . '/media', // NOTE: needs symlink /public/media to /storage/media 17 | 'sessions' => $storage . '/sessions', 18 | ] 19 | ]); 20 | 21 | // create symlink if needed 22 | $symlink = __DIR__ . '/media'; 23 | if (! file_exists($symlink)) { 24 | symlink($kirby->roots()->media(), $symlink); 25 | } 26 | 27 | echo $kirby->render(); 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # System files 2 | # ------------ 3 | 4 | Icon 5 | .DS_Store 6 | 7 | # Temporary files 8 | # --------------- 9 | 10 | /storage/media/* 11 | !/storage/media/index.html 12 | 13 | # -------------SECURITY------------- 14 | # NEVER publish these files via Git! 15 | # -------------SECURITY------------- 16 | 17 | # Cache Files 18 | # --------------- 19 | 20 | /storage/cache/* 21 | !/storage/cache/index.html 22 | 23 | # Accounts 24 | # --------------- 25 | 26 | /storage/accounts/* 27 | !/storage/accounts/index.html 28 | 29 | # Sessions 30 | # --------------- 31 | 32 | /storage/sessions/* 33 | !/storage/sessions/index.html 34 | 35 | # Logs 36 | # --------------- 37 | 38 | /storage/logs/* 39 | !/storage/logs/index.html 40 | 41 | # License 42 | # --------------- 43 | /site/config/.license 44 | 45 | # Composer 46 | # --------------- 47 | # https://getkirby.com/docs/cookbook/setup/composer#starting-a-new-project 48 | /kirby 49 | /vendor 50 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "getkirby/starterkit", 3 | "description": "Kirby Starterkit", 4 | "type": "project", 5 | "keywords": ["kirby", "cms", "starterkit"], 6 | "homepage": "https://getkirby.com", 7 | "authors": [ 8 | { 9 | "name": "Bastian Allgeier", 10 | "email": "bastian@getkirby.com", 11 | "homepage": "https://getkirby.com" 12 | } 13 | ], 14 | "support": { 15 | "email": "support@getkirby.com", 16 | "issues": "https://github.com/getkirby/starterkit/issues", 17 | "forum": "https://forum.getkirby.com", 18 | "source": "https://github.com/getkirby/starterkit" 19 | }, 20 | "require": { 21 | "php": ">=7.3.0 <8.1.0", 22 | "getkirby/cms": "^3.5" 23 | }, 24 | "scripts": { 25 | "start": [ 26 | "Composer\\Config::disableProcessTimeout", 27 | "@php -S localhost:8000 kirby/router.php" 28 | ] 29 | }, 30 | "config": { 31 | "optimize-autoloader": true 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | # Kirby .htaccess 2 | # revision 2020-06-15 3 | 4 | # rewrite rules 5 | 6 | 7 | # enable awesome urls. i.e.: 8 | # http://yourdomain.com/about-us/team 9 | RewriteEngine on 10 | 11 | # make sure to set the RewriteBase correctly 12 | # if you are running the site in a subfolder; 13 | # otherwise links or the entire site will break. 14 | # 15 | # If your homepage is http://yourdomain.com/mysite, 16 | # set the RewriteBase to: 17 | # 18 | # RewriteBase /mysite 19 | 20 | # In some environments it's necessary to 21 | # set the RewriteBase to: 22 | # 23 | # RewriteBase / 24 | 25 | # block files and folders beginning with a dot, such as .git 26 | # except for the .well-known folder, which is used for Let's Encrypt and security.txt 27 | RewriteRule (^|/)\.(?!well-known\/) index.php [L] 28 | 29 | # block all files in the content folder from being accessed directly 30 | RewriteRule ^content/(.*) index.php [L] 31 | 32 | # block all files in the site folder from being accessed directly 33 | RewriteRule ^site/(.*) index.php [L] 34 | 35 | # block direct access to Kirby and the Panel sources 36 | RewriteRule ^kirby/(.*) index.php [L] 37 | 38 | # make site links work 39 | RewriteCond %{REQUEST_FILENAME} !-f 40 | RewriteCond %{REQUEST_FILENAME} !-d 41 | RewriteRule ^(.*) index.php [L] 42 | 43 | 44 | 45 | # pass the Authorization header to PHP 46 | SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 47 | 48 | # compress text file responses 49 | 50 | AddOutputFilterByType DEFLATE text/plain 51 | AddOutputFilterByType DEFLATE text/html 52 | AddOutputFilterByType DEFLATE text/css 53 | AddOutputFilterByType DEFLATE text/javascript 54 | AddOutputFilterByType DEFLATE application/json 55 | AddOutputFilterByType DEFLATE application/javascript 56 | AddOutputFilterByType DEFLATE application/x-javascript 57 | 58 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Kirby Plainkit 2 | 3 | Kirby is a file-based CMS. 4 | Easy to setup. Easy to use. Flexible as hell. 5 | 6 | ## Trial 7 | 8 | You can try Kirby on your local machine or on a test 9 | server as long as you need to make sure it is the right 10 | tool for your next project. 11 | 12 | ## Buy a license 13 | 14 | You can purchase your Kirby license at 15 | 16 | 17 | A Kirby license is valid for a single domain. You can find 18 | Kirby's license agreement here: 19 | 20 | ## The Plainkit 21 | 22 | Kirby's Plainkit is the most minimal setup you can get started with. 23 | It does not include any content, styles or other kinds of decoration, 24 | so it's perfect to use this as a starting point for your own project. 25 | 26 | ## The Panel 27 | 28 | You can find the login for Kirby's admin interface at 29 | http://yourdomain.com/panel. You will be guided through the signup 30 | process for your first user, when you visit the panel 31 | for the first time. 32 | 33 | ## Installation 34 | 35 | Kirby does not require a database, which makes it very easy to 36 | install. Just copy Kirby's files to your server and visit the 37 | URL for your website in the browser. 38 | 39 | **Please check if the invisible .htaccess file has been 40 | copied to your server correctly** 41 | 42 | ### Requirements 43 | 44 | Kirby runs on PHP 7.1+, Apache or Nginx. 45 | 46 | ### Download 47 | 48 | You can download the latest version of the Starterkit 49 | from https://download.getkirby.com 50 | 51 | ### With Git 52 | 53 | If you are familiar with Git, you can clone Kirby's 54 | Starterkit repository from Github. 55 | 56 | git clone https://github.com/getkirby/starterkit.git 57 | 58 | ## Documentation 59 | 60 | 61 | 62 | ## Issues 63 | 64 | If you have a Github account, please report issues 65 | directly on Github: 66 | 67 | Otherwise you can use Kirby's forum: https://forum.getkirby.com 68 | or send us an email: 69 | 70 | ## Ideas & Feature Requests 71 | 72 | If you have ideas for new features, please submit a ticket in our ideas repository: 73 | 74 | 75 | ## Support 76 | 77 | 78 | 79 | ## Copyright 80 | 81 | © 2009-2019 Bastian Allgeier (Bastian Allgeier GmbH) 82 | 83 | --------------------------------------------------------------------------------