Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/happytodev/typhoon
A new open source CMS without database using TALL stack
https://github.com/happytodev/typhoon
alpinejs filamentphp laravel livewire orbit php tailwindcss tall
Last synced: about 1 month ago
JSON representation
A new open source CMS without database using TALL stack
- Host: GitHub
- URL: https://github.com/happytodev/typhoon
- Owner: happytodev
- License: mit
- Created: 2022-05-12T21:11:51.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-09T08:50:04.000Z (about 1 year ago)
- Last Synced: 2024-10-01T14:48:11.808Z (about 1 month ago)
- Topics: alpinejs, filamentphp, laravel, livewire, orbit, php, tailwindcss, tall
- Language: CSS
- Homepage: https://typhooncms.itanea.fr
- Size: 1.01 MB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Content Management with flat database, using TALL Stack
[![Latest Version on Packagist](https://img.shields.io/packagist/v/happytodev/typhoon.svg?style=typhoon-square)](https://packagist.org/packages/happytodev/typhoon)
[![GitHub Tests Action Status](https://img.shields.io/github/workflow/status/happytodev/typhoon/run-tests?label=tests)](https://github.com/happytodev/typhoon/actions?query=workflow%3Arun-tests+branch%3Amain)
[![GitHub Code Style Action Status](https://img.shields.io/github/workflow/status/happytodev/typhoon/Check%20&%20fix%20styling?label=code%20style)](https://github.com/happytodev/typhoon/actions?query=workflow%3A"Check+%26+fix+styling"+branch%3Amain)
[![Total Downloads](https://img.shields.io/packagist/dt/happytodev/typhoon.svg?style=typhoon-square)](https://packagist.org/packages/happytodev/typhoon)Typhoon is a way to manage your content as you want.
Why Typhoon ? Because he doesn't use database. It uses Orbit.## Support us
[You can support the development of this open-source package here](https://github.com/sponsors/happytodev)
## Installation
Start with a fresh install of Laravel :
```bash
laravel new your-awesome-project-name
```or
```bash
composer create-project laravel/laravel your-awesome-project-name
```Enter in your project directory :
```bash
cd your-awesome-project-name
```You can install the package via composer:
```bash
composer require happytodev/typhoon
```As Typhoon, use `filament-navigation` plugin from Ryan Chandler and as I adapted it (fork is here https://github.com/happytodev/filament-navigation) to be compliant with Orbit (also from Ryan) and as the PR is waiting approval from Ryan, you have to set an another settings before install Typhoon.
Follow these steps :
```json
"repositories": [
{
"type": "vcs",
"url": "https://github.com/happytodev/filament-navigation"
}
],
"require": {
"ryangjchandler/filament-navigation": "dev-main"
}
```Save the `composer.json` file and run `composer update`
Alternatively, if you don't add above require block in your `composer.json` file, you can install the package via composer:
```bash
composer require ryangjchandler/filament-navigation=dev-main
```To use Orbit with filament-navigation, you have to add a key to your .env file :
```env
FILAMENT_NAVIGATION_DB_ENGINE=orbit
```Give a name to your website by adding the following key to your .env file
```env
TYPHOONCMS_NAME="MyWebsite"
```Always in your `.env` file replace following :
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
```by
```env
DB_CONNECTION=orbit
```You can now run the install script of Typhoon via Artisan :
```bash
php artisan typhoon:install
```When the script ask you `User model file already exists. Do you want to overwrite it? (yes/no) [no]:` you can answer yes. It will modify the default User model to adapt it to use Orbit instead classic database like for example MySQL.
Last thing, go to the `content\users`folders and edit with your favorite editor the first user, usually it is the file `1.md`:
```md
---
id: 1
name: 'John Doe'
email: [email protected]
password: $2y$10$0wdxKSl7ksxk8yrTgU8!K90oLmMq2eJ20pwUBSu0ICMWpc959DpTqm
is_admin: 0
created_at: 2022-05-27T18:39:22+00:00
updated_at: 2022-05-28T09:04:57+00:00
---
```modify this line `is_admin: 0` to this one `is_admin: true` :
```md
---
id: 1
name: 'John Doe'
email: [email protected]
password: $2y$10$0wdxKSl7ksxk8yrTgU8!K90oLmMq2eJ20pwUBSu0ICMWpc959DpTqm
is_admin: true
created_at: 2022-05-27T18:39:22+00:00
updated_at: 2022-05-28T09:04:57+00:00
---
```# Crontabs
Typhoon has the possibity to published or unpublished posts by setting date and hour of action.
It needs you configure your crontab as explained in [laravel documentation](https://laravel.com/docs/9.x/scheduling#running-the-scheduler).The following must be adapted to your system, but on a classical Linux :
```bash
crontab -e
```Then adding this and take care to adapt path of your Typhoon installation
```bash
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
```# Compile assets
Only if you need to adapt assets and compile them
Install TailwindCSS :
```bash
npm install -D tailwindcss
``````bash
npm install @tailwindcss/typography
```Install Npm dependencies and compile assets :
```bash
npm install && npm run dev
```compile tailwind asset
```bash
npx tailwindcss -i ./resources/css/app.css -o ./public/css/app.css
```## Updating
After you update TyhoonCms with `composer update` you can launch `php artisan typhoon:update`.
The script will ask you wich version you come from and adapt the update in consequence.
# How to connect
Now you can connect to the backoffice, via the url of your project and adding to it `/admin`# How to use
Out of the box, you have this entities :
- users
- posts
- categories
- tags
- pages
- navigation
- social networksTo create a post, a category is necessary. So, your first step is to create a category, before create a post.
After installation, you have demo content with :
- an home page
- your user and one more default user **[email protected]** and password : **johndoesecret**
- a category
- a tag
- a demo post : `yourTyphoonSite.test/posts/the-first-post-with-typhoon`
- a menu
- a social network group
- a page listing all posts : `yourTyphoonSite.test/posts/`When you create a page, you can visit it with this url :
yourTyphoonSite.test/**page**/{slug_of_your_page}
The home page is different and is plug directly to `yourTyphoonSite.test/`
# Knowned limitations
**Don't forget : this is a beta version, please do not use it in production unless you know what you do !**
Currently there is some limitations :
- In navigations, only one menu is usable with template provided and it name MUST be `main`
- In Social Networks, the name of the group MUST also be `main`## Testing
```bash
composer test
```## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](https://github.com/happytodev/.github/blob/main/CONTRIBUTING.md) for details.
## Security Vulnerabilities
Please review [our security policy](../../security/policy) on how to report security vulnerabilities.
## Credits
- [Frédéric Blanc](https://github.com/happytodev)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
## Versionning
TyphoonCms developement follows the [SemVer](https://semver.org/) method.