├── 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 |
= $page->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 |
--------------------------------------------------------------------------------