koel/docs/guide/getting-started.md
2024-07-06 17:44:48 +02:00

89 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.