Koillection is a self-hosted service allowing users to manage any kind of collection. It is a project I did for my personal use. But since it can interest some people I decided to release it publicly. If you like Koillection please consider leaving a star, it gives additional motivation to continue working on the project.
Please back up your database, especially when updating to a new version. I do my best to test new versions, especially when they contains data migrations but some edge cases may escape my vigilance.
Please do back up your database.
-
PHP
Koillection PHP version Maintained 1.3.x 8.1 ✔️ 1.2.x 8.0 ❌ 1.1.x 7.4 ❌ 1.0.x 7.2 ❌ -
Make sure you have the following PHP extensions installed:
ctype
,fileinfo
,gd
,iconv
,intl
,json
-
A webserver such as
Apache2
ornginx
-
A
Postgresql
orMysql
(version 8 or superior) database -
Yarn
git clone
the repository or download and unzip the project archive- Create a
.env.local
file and copy the content of.env
in it - In
.env.local
replace the values by your configuration and remove all curly bracesAPP_ENV
-> Symfony environment, prod by defaultAPP_DEBUG
-> activate Symfony debug mode, 0 or 1DB_DRIVER
-> pdo_mysql or pdo_pgsqlDB_USER
-> your database userDB_PASSWORD
-> your database passwordDB_HOST
-> your database address (ex: 127.0.0.1 or localhost)DB_PORT
-> your database port (5432 by default for postgres, 3306 for mysql)DB_NAME
-> your database nameDB_VERSION
-> your postgres server version (ex: 10.3)PHP_TZ
-> Your timezone (ex: Europe/Paris)
- In the project root folder execute
bin/composer install --classmap-authoritative
- Then
php bin/console doctrine:migrations:migrate
- (Optional) Generate SSH keys for API
php bin/console lexik:jwt:generate-keypair
(not mandatory if you do not plan on using the API) - Configure a vhost (you can find an example for nginx in
docs
folder) - Generate assets :
cd assets/ && yarn install && yarn build && cd ..
- (Optional) Copy the values contained in
docs/php.ini
in your ownphp.ini
. Not mandatory but can improve performance greatly
- https://github.com/koillection/koillection-docker -> Comes with PHP FPM and nginx, based on the last release of Koillection.
Please backup your database and /uploads folder before updating
- In the project root folder execute
bin/composer install --classmap-authoritative
- Then
php bin/console doctrine:migrations:migrate
Just pulling the new image and restarting the container should be enough
Koillection is an Open Source software, released under the MIT License.
You can access a basic REST API documentation on /api.
To use it you need get a JWT token using your username and your password by calling
POST /api/authentication_token
{
"username": "johndoe",
"password": "password"
}
Then for every requests to the API, add the following header :
Authorization: Bearer the_jwt_token
- No access to admin features
- No access to sharing features (you can't see someone else content)
- Uploads only work for POST requests