koel/docs/guide/getting-started.md

90 lines
3.7 KiB
Markdown
Raw Normal View History

2024-03-17 18:28:39 +00:00
# Getting Started
## Requirements
Koel consists of two parts: the server and the client. The server is a Laravel application acting as the API, and the client is a Vue.js application responsible for the user interface.
The requirements for each part are as follows:
### Server
* [All requirements by Laravel](https://laravel.com/docs/10.x/deployment#server-requirements) PHP >= 8.1 with required extensions
* Any database supported by Laravel MySQL, MariaDB, PostgreSQL, or SQLite
* If you're [building Koel from source](#building-from-source), make sure to have [Composer](https://getcomposer.org/), Git, and Node.js >= 14 with [Yarn](https://yarnpkg.com).
### Client
* Koel has been tested on Chrome 47, Firefox 42, Safari 8, Opera 34, and Edge, but having the latest version is always recommended.
## Installation
There are three methods to install and start using Koel:
### Using a Pre-Compiled Archive
Koel supports installing from a pre-compiled archive, which eliminates the need of manually compiling the front-end assets.
First, go to the [Releases page](https://github.com/koel/koel/releases) on GitHub, download either the `.tar.gz` or `.zip` file found under "Assets," and unzip it into the destination web root directory. From there, run the two following commands:
```bash
php artisan koel:init --no-assets
# Follow the wizard to populate necessary configurations
php artisan serve
```
### Building from Source
From your console, run the following commands:
```bash
cd <KOEL_ROOT_DIR>
git clone https://github.com/koel/koel.git .
git checkout latest # Check out the latest version at https://github.com/koel/koel/releases
composer install
php artisan koel:init
# Follow the wizard to populate necessary configurations
php artisan serve
```
In both cases, you should now be able to visit http://localhost:8000 in your browser and start using Koel.
::: warning Use a proper webserver
http://localhost:8000 is only the _development_ server for Koel (or rather, Laravel).
For optimal performance, you'll want to set up a production server (Apache, nginx, Caddy etc.) and point it to the `public` directory of Koel.
Koel provides a sample configuration for nginx in `nginx.conf.example`,
but the process shouldn't be any different from that of a standard PHP application.
:::
### Using Docker
Koel has an official Docker image: [koel/docker](https://github.com/koel/docker). Please refer to the repository for detailed instructions and issue reporting.
## Configuration
Koels configuration is stored in the `.env` file at the root of the project, which is created during the installation process
by copying the `.env.example` file and filling it with sensible values.
You can always modify the values to suit your environment.
### Configure a Mailer
Though Koel can work without a mailer, certain features like "forgot password" and user invitation require a mailer to be set up.
To determine if that's the case, Koel relies on the `MAIL_MAILER` value in the `.env` file.
Any non-empty value other than `log` or `array` is considered a proper mailer.
As such, if you don't need email-required features, you can simply set `MAIL_MAILER` to `log` or `array` and leave the rest of the mailer-related values empty,
and Koel will know to remove/disable these features.
## Upgrade
:::danger Backup your database
Remember to always back up your database before upgrading.
:::
Check out [Releases](https://github.com/koel/koel/releases) for upgrade guides corresponding to your Koel version and installation method.
## Downgrade
Koel does not provide a built-in downgrade mechanism.
In the unlikely event that you need to downgrade, simply restore your database from a backup and follow the installation guide for the version you want to downgrade to.