- commited files:
core-> vendor/hiqdev/%the-core-package%/composer.jsoncomposer.lock- commited at releases.docker/nginx/etc/nginx/conf.d/vhost.conf- almost standard but doesn't work when symlinked :(.env.X.env.dist- production config.env.local- local installation config
.gitignoretesting files- can be everything in case of using testing frameworks:phpunit.xml- for phpunitcodeception.yml- for codeceptionbehat.xml- for behat- etc.
.gitlab-ci.yml- Gitlab CI configuration filepsalm.xml- psalm configpublic/assets/.gitignore- ignore everything, for git to keep the directoryfavicon.ico-> ../vendor/%reseller%/%assets-project%/src/assets/favicon.icoindex.php-> ../core/public/index.phprobots.txt-> ../core/public/robots.txt
runtime/.gitignore- ignore everything, for git to keep the directorytests/-> directory with CI tests configuration
- uncommited symlinks:
.env->.env.X.env.distfor production.env.betafor staging server with production database.env.devfor staging server with test database.env.localfor local development
docker-compose.yml->core/docker-compose.yml.Xsimilarly
- we have many similar project installations
- we want to keep root packages as DRY as possible to avoid the need for propagating changes in all the roots
- that's why we have
coresymlink to core package:hiqdev/hipanel-corein hipanelhiqdev/hipanel-sitein sitehiqdev/hiamin hiamhiqdev/hiapi-legacyin hiapi
- thus standart files and dirs are symlinked from core, reusable between all installations:
- public/index.php
- public/robots.txt
- public/favicon.ico
- docker-compose.yml
- so project personalization comes down to tweaking several files
- thouroughly handcrafted files with project configuration:
- composer.json
- .env.X
- .env.dist - production config
- .env.beta - staging with production database
- .env.dev - staging with test database
- .env.local - config for local installation
- .env.myname-dev - personal configurations allowed
- hidev.yml - not really needed, to be removed
- config/params.php - not really needed, to be removed
- thoughtfully simlinked files:
- .env - choose one of .env.XXX
- docker-compose.yml - normally is a symlink, but may be deriviated from
core/docker-compose.yml.X
- copy pasted files, to be automated:
- .docker/nginx/etc/nginx/conf.d/vhost.conf - can include IP restrictions
- also project has evolving files:
- public/assets/ - needs chmod a+w
- runtime/ - needs chmod a+w
- composer.lock - commited at releases
- and other, possibly generated files, not really needed, may be absent:
- README.md
- LICENSE
- ssl/ - normally not needed
- fullchain.pem
- privkey.pem