Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jonathancaleb/artistryhub.ca
🥳 Personal website built with Kirby CMS and designed by myself
https://github.com/jonathancaleb/artistryhub.ca
blog javascript kirby-cms php8 portfolio-website
Last synced: about 1 month ago
JSON representation
🥳 Personal website built with Kirby CMS and designed by myself
- Host: GitHub
- URL: https://github.com/jonathancaleb/artistryhub.ca
- Owner: jonathancaleb
- License: agpl-3.0
- Created: 2023-10-27T15:59:27.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-18T13:52:15.000Z (about 1 year ago)
- Last Synced: 2023-11-18T15:10:25.417Z (about 1 year ago)
- Topics: blog, javascript, kirby-cms, php8, portfolio-website
- Language: PHP
- Homepage:
- Size: 70.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**Personal website built with [Kirby CMS](https://getkirby.com/) and designed by myself 🥳**
## Getting started 🔎
### Requirements
- [PHP](https://secure.php.net/manual/en/install.php) ^8.1
- [Composer](https://getcomposer.org/download/) >= 2.4.2
- [Node.js](http://nodejs.org/) >= 16.13
- [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) >= 8.19.2### Installation
1. `composer install`
2. `npm install`
3. Copy `.\.env.development.example` to `.\.env`
4. `npm run watch`
5. `composer serve`More details on [getkirby.com](https://getkirby.com/docs/guide/quickstart)
### Code quality
- `composer coverage`
- `composer refacto`
- `composer lint`
- `composer test`
- `composer fix:composer`
- `npm run prettier:write`More details in [composer.json](./composer.json) and [package.json](./package.json)
## CI/CD 🧙♂️
> Powered by GitHub Actions
### Dependabot (with auto-merge)
The `dependabot-auto-merge.yml` workflow in `.github\workflows` allow to auto-merge dependabot pull requests for for semver-minor & semver-patch updates.
### Deployment using FTP
The `main.yml` workflow in `.github\workflows` allow to deploy the theme using FTP. It upload only modified files and install PHP dependecies using `composer install`.
To use it, you need to configure those [Action secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets) :
| Name | Value (example) |
| -------------- | ----------------------- |
| `SSH_HOST` | XXXX.ftp.infomaniak.com |
| `SSH_USERNAME` | nice_username |
| `SSH_PASSWORD` | very_strong_password |
| `SSH_DIR` | sites/exports.nanou.ch/ |An [Deploy key](https://docs.github.com/fr/authentication/connecting-to-github-with-ssh/managing-deploy-keys) needs to be created on the server, without passphrase :
```bash
cd ~/.ssh/
eval "$(ssh-agent -s)"
ssh-keygen -t ecdsa -b 521 -C "[email protected]"
ssh-add ~/.ssh/id_portfolio
```And complete `./.ssh/known_hosts` with [GitHub's SSH key fingerprints](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints)
```plaintext
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
```Be sure that PHP version ([see Infomaniak docs](https://www.infomaniak.com/fr/support/faq/2108/modifier-la-version-de-php-utilisee-en-cli-via-ssh)) is the same as required in `composer.json` ⚠️
Config files `./.bashrc` and `.profile` must also define the same PHP version :
```bash
export PATH=/opt/php8.1/bin:$PATH
```## Directory structure 📁
- `assets/` - Images, JavaScript, and CSS files for the front-end
- `content/` - Content of the application (Kirby)
- `kirby/` - Kirby CMS code - _Managed by Composer_ (Kirby)
- `media/` - Public images and thumbnails, plugin and panel assets - _Managed by Kirby_ (Kirby)
- `site/` - Core of the application : templates, configuration, plugins and blueprints (Kirby)
- `src/` - Custom classes for the application (PHP)
- `tests/` - Automated tests with PHPUnit (PHP)## Stack 🧠
### Production
- [Kirby](https://getkirby.com/) → CMS
#### Kirby Plugins
- [Static Cache by Kirby](https://github.com/getkirby/staticache) → Static Cache
- [Boost by Bnomei](https://github.com/bnomei/kirby3-boost/tree/main) → Cache Boost
- [SQLite Cache Driver by Bnomei](https://github.com/bnomei/kirby3-sqlite-cachedriver) → SQLite Cache Driver### Development
- [PHPStan](https://phpstan.org/) → PHP Static Analysis tool
- [Laravel/Pint](https://github.com/laravel/pint) → Opinionated PHP code style fixer for minimalists built on top of [PHP-CS-Fixer](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer)
- [PHPUnit](https://phpunit.de/) & [PEST PHP](https://github.com/pestphp/pest) → PHP Testing tools
- [Rector](https://github.com/rectorphp/rector) → PHP automated refactoring and upgrades tool
- [Prettier](https://prettier.io/) → Opinionated code formatter## Documentation 📒
- [GitMoji](https://gitmoji.dev/) → Emoji guide for GIT commit messages
### Useful articles
- [Kirby : passing variables to snippets](https://getkirby.com/docs/guide/templates/snippets#passing-variables-to-snippets)
- [Where should you put logic code in Kirby CMS? - fvsch.com](https://fvsch.com/kirby-logic)
- [PHP code typing with Kirby CMS- fvsch.com](https://fvsch.com/kirby-typing)
- [Tailwind : customizing colors](https://tailwindcss.com/docs/customizing-colors)
- [Tailwind default config](https://github.com/tailwindlabs/tailwindcss/blob/master/stubs/defaultConfig.stub.js)**This work is licensed under [GNU Affero General Public License v3.0](./LICENSE)**
Kirby CMS is proprietary and you need to [buy a license](https://getkirby.com/buy) to use it in production.
Others dependencies are under MIT, BSD-3-Clause and LGPL-2.1-only license.