Files
Phraseanet/README.md
2020-03-12 12:26:10 +01:00

169 lines
5.0 KiB
Markdown

Phraseanet 4.1 - Digital Asset Management application
=====================================================
[![CircleCI](https://circleci.com/gh/alchemy-fr/Phraseanet/tree/master.svg?style=shield)](https://circleci.com/gh/alchemy-fr/Phraseanet/tree/master)
# Features :
- Metadata Management (include Thesaurus and DublinCore Mapping)
- RestFull APIS
- Elasticsearch search engine
- Multiple resolution assets generation
# License :
Phraseanet is licensed under GPL-v3 license.
# Documentation :
https://docs.phraseanet.com/
# Installation :
You **must** not download the source from GitHub, but download a packaged version here :
https://www.phraseanet.com/download/
And follow the install steps described at https://docs.phraseanet.com/4.0/en/Admin/Install.html
# Try Phraseanet :
You can also download a testing pre installed Virtual Machine in OVA format here :
https://www.phraseanet.com/download/
# With Docker
## Prerequisites
- docker-compose
- docker >=v18.01-ce
## Get started
You should review the default env variables defined in `.env` file.
Use `export` to override these values.
i.e:
```bash
export PHRASEANET_DOCKER_TAG=latest
export INSTALL_ACCOUNT_EMAIL=foo@bar.com
export INSTALL_ACCOUNT_PASSWORD=$3cr3t!
export PHRASEANET_APP_PORT=8082
```
### Using a env.local (custom .env)
It may be easier to deal with a local file to manage our env variables.
You can add your `env.local` at the root of this project and define a command alias in your `~/.bashrc`:
```bash
alias dc="env $(cat env.local | grep -v '#' | tr '\n' ' ') docker-compose"
```
### Running the application
If you are not interested in the development of Phraseanet, you can ignore everything in `.env` after the `DEV Purpose` part.
docker-compose -f docker-compose.yml up -d
Why this option `-f docker-compose.yml`?
The development and integration concerns are separated using a `docker-compose.override.yml`. By default, `docker-compose` will include this files if it exists.
If you don't work on phraseanet development, avoiding this `-f docker-compose.yml` parameters will throw errors. So you have to add this options on every `docker-compose` commands to avoid this inclusion.
> You can also delete the `docker-compose.override.yml` to get free from this behavior.
#### Running workers
```bash
docker-compose -f docker-compose.yml run --rm worker <command>
```
Where `<command>` can be:
- `bin/console task-manager:scheduler:run` (default)
- `bin/console worker:execute -m 2`
- ...
The default parameters allow you to reach the app with : `http://localhost:8082`
## Development mode
The development mode uses the `docker-compose-override.yml` file.
You can run it with:
docker-compose up -d
The environment is not ready yet: you have to fetch all dependencies.
This can be made easily from the builder container:
docker-compose run --rm -u app builder make install install_composer_dev
> Please note that the phraseanet image does not contain nor `composer` neither `node` tools. This allow the final image to be slim.
> If you need to use dev tools, ensure you are running the `builder` image!
### Developer shell
You can also obtain a shell access in builder container:
```bash
docker-compose run --rm builder /bin/bash
# or
docker-compose run --rm builder /bin/zsh
```
In this container you will have the same libraries (PHP, Node, composer, ...) that are used to build images.
Also you have utils for development like telnet, ping, ssh, git, ...
Your $HOME/.ssh directory is also mounted to builder's home with your ssh agent.
### Using Xdebug
Xdebug is enabled by default with the `docker-compose.override.yml`
You can disable it by setting:
```bash
export XDEBUG_ENABLED=0
```
Remote host is fixed because of the subnet network from compose.
You need to configure file mapping in your IDE.
For PhpStorm, you can follow this example:
![PhpStorm mapping](https://i.ibb.co/GMb43Cv/image.png)
> Configure the `Absolute path on the server` to `/var/alchemy/Phraseanet` at the project root path (i.e. `~/projects/Phraseanet`).
#### Xdebug on MacOS
You have to set the following env:
```bash
XDEBUG_REMOTE_HOST=host.docker.internal
```
> Don't forget to recreate your container (`docker-compose up -d phraseanet`)
# With Vagrant (deprecated)
## Development :
For development purpose Phraseanet is shipped with ready to use development environments using vagrant.
You can easily choose betweeen a complete build or a prebuild box, with a specific PHP version.
git clone
vagrant up --provision
then, a prompt allow you to choose PHP version, and another one to choose a complete build or an Alchemy prebuilt boxes.
Ex:
- vagrant up --provision //// 5.6 ///// 1 >> Build an ubuntu/xenial box with php5.6
- vagrant up --provision //// 7.0 ///// 1 >> Build an ubuntu/xenial with php7.0
- vagrant up --provision //// 7.2 ///// 2 >> Build the alchemy/phraseanet-php-7.2 box
- vagrant up --provision //// 5.6 ///// 1 >> Build the alchemy/phraseanet-php-5.6 box
For development with Phraseanet API see https://docs.phraseanet.com/4.0/en/Devel/index.html