diff --git a/Installation-via-Docker.md b/Installation-via-Docker.md new file mode 100644 index 0000000..22bd83a --- /dev/null +++ b/Installation-via-Docker.md @@ -0,0 +1,35 @@ +# Installation of Part-DB via docker + +**Warning: The methods described here, configure PHP without HTTPS and therefore should only be used locally. If you want to expose Part-DB to the internet, you have to configure a reverse proxy!** + +## Docker-compose +Part-DB can be installed via docker. A pre-built docker image is available under [jbtronics/part-db1](https://hub.docker.com/repository/docker/jbtronics/part-db1/). +In the moment the master tag should be used (which is built from the latest commits in the master branch), as no tagged releases are available yet. + +The easiest way to use it is to use the docker-compose.yml available [here](https://raw.githubusercontent.com/Part-DB/Part-DB-symfony/master/docs/docker/docker-compose.yaml): +0. Install docker and docker-compose like described under https://docs.docker.com/compose/install/ +1. Create a folder where the Part-DB data should live +2. Download docker-compose.yml and move it to the folder created above +3. Inside the folder, run `docker-compose up -d` +4. Create the inital database with `docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate` and watch for the password output +5. Part-DB is available under `http://localhost:8080` and you can log in with username `admin` and the password shown before + +The docker image uses a SQLite database and all data (database, uploads and other media) is put into folders relative to the docker-compose.yml. + +## Direct use of docker image +You can use the `jbtronics/part-db1:master` image directly. You have to expose the port 80 to a host port and configure volumes for `/var/www/html/uploads` and `/var/www/html/public/media`. + +If you want to use SQLite database (which is default), you have to configure Part-DB to put the database file in a mapped volume via the `DATABASE_URL` environment variable. +For example if you set `DATABASE_URL=sqlite:///%kernel.project_dir%/var/db/app.db` then you will have to map the `/var/www/html/var/db/` folder to the docker container (see docker-compose.yaml for example). + +You also have to create the database like described above in step 4. + +## Running console commands +You can run the console commands described in README by executing `docker exec --user=www-data -it partdb bin/console [command]` + +## Troubleshooting + +*Login not possible. Login page is just reloading and no error message is shown or something like "CSFR token invalid"*: + +Clear all cookies in your browser or use a inkognito tab for Part-DB. +This related to the fact that Part-DB can not set cookies via HTTP, after some webpage has set cookies before under localhost via https. This is a security mechanism of the browser and can not be bypassed by Part-DB. \ No newline at end of file