On a server the client must be deployed i.e. in `/opt/deployment-client/`
Use git clone if you feel familiar with git. Otherwise download the archive and extract it.
## Set up a software package
### Set up access to software
This setting is for all projects on the server. It has to be done once.
* in ./bin directory copy getfile.sh.cfg.dist to getfile.sh.cfg
* edit getfile.sh.cfg and define software endpoint and set the phase:
```txt
IMLCI_URL=https://software.example.com
IMLCI_PKG_SECRET=put-secret-here
IMLCI_PHASE=preview
```
### Set up rollout
* Create a subdirectory in ./profiles/ for each rollout
* The example subdir gives an orientation and can be copied, i.e. `cp -r example myapp`
* create a config file named `./profiles/myapp/config.sh`
```txt
# my install dir
installdir=/var/www/myapp
# fileowner
# appowner="user:www-data"
# ----- settings for CI server software package
# override global value
# export IMLCI_PHASE=preview
# see output of
export IMLCI_PROJECT=id-in-ci-server
```
Make a testrun: `./deploy_app.sh` in application root.
It should download the software package and extract it and install it into you `${installdir}`.
### Add hooks
If needed you can create hook scripts. The working directory is `${installdir}` that you can use relative pathes to point to your files in the the extracted sources.
* profiles/myapp/tasks_preinstall.sh - do something before extracting the archive.
* profiles/myapp/tasks_config.sh - replace config files (see below)
* profiles/myapp/tasks_postinstall.sh - do postinstall actions before finishing