mirror of
https://github.com/nextcloud/all-in-one.git
synced 2025-12-19 22:16:49 +00:00
Merge pull request #5040 from docjyJ/main
Improve the development environment
This commit is contained in:
commit
73e4ea26ab
19 changed files with 2101 additions and 155 deletions
|
|
@ -28,7 +28,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
cd php
|
cd php
|
||||||
composer global require wapmorgan/php-deprecation-detector dev-master
|
|
||||||
composer install
|
composer install
|
||||||
composer run php-deprecation-detector | tee -i ./phpdd.log
|
composer run php-deprecation-detector | tee -i ./phpdd.log
|
||||||
if grep "Total issues:" ./phpdd.log; then
|
if grep "Total issues:" ./phpdd.log; then
|
||||||
|
|
|
||||||
3
.github/workflows/psalm-update-baseline.yml
vendored
3
.github/workflows/psalm-update-baseline.yml
vendored
|
|
@ -23,9 +23,8 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
cd php
|
cd php
|
||||||
composer global require vimeo/psalm --prefer-dist --no-progress --dev
|
|
||||||
composer install
|
composer install
|
||||||
composer run psalm -- --monochrome --no-progress --output-format=text --update-baseline
|
composer run psalm:update-baseline
|
||||||
git clean -f lib/composer
|
git clean -f lib/composer
|
||||||
git checkout composer.json composer.lock lib/composer
|
git checkout composer.json composer.lock lib/composer
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|
|
||||||
1
.github/workflows/psalm.yml
vendored
1
.github/workflows/psalm.yml
vendored
|
|
@ -42,6 +42,5 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
cd php
|
cd php
|
||||||
composer global require vimeo/psalm --prefer-dist --no-progress --dev
|
|
||||||
composer install
|
composer install
|
||||||
composer run psalm
|
composer run psalm
|
||||||
|
|
|
||||||
4
.github/workflows/twig-lint.yml
vendored
4
.github/workflows/twig-lint.yml
vendored
|
|
@ -36,7 +36,5 @@ jobs:
|
||||||
- name: twig lint
|
- name: twig lint
|
||||||
run: |
|
run: |
|
||||||
cd php
|
cd php
|
||||||
composer require sserbin/twig-linter:@dev --no-progress --dev
|
|
||||||
composer install
|
composer install
|
||||||
chmod +x ./vendor/bin/twig-linter
|
composer run lint:twig
|
||||||
./vendor/bin/twig-linter lint ./templates
|
|
||||||
|
|
|
||||||
11
.gitignore
vendored
11
.gitignore
vendored
|
|
@ -1,8 +1,13 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
/php/data/containers.json
|
.idea/
|
||||||
/php/data/configuration.json
|
*.iml
|
||||||
/php/data/backupsecret.json
|
|
||||||
|
/php/data/*
|
||||||
|
/php/session/*
|
||||||
|
!/php/data/.gitkeep
|
||||||
|
!/php/session/.gitkeep
|
||||||
/php/vendor
|
/php/vendor
|
||||||
|
|
||||||
/manual-install/*.conf
|
/manual-install/*.conf
|
||||||
!/manual-install/sample.conf
|
!/manual-install/sample.conf
|
||||||
/manual-install/docker-compose.yml
|
/manual-install/docker-compose.yml
|
||||||
|
|
|
||||||
8
Containers/mastercontainer/.idea/.gitignore
generated
vendored
8
Containers/mastercontainer/.idea/.gitignore
generated
vendored
|
|
@ -1,8 +0,0 @@
|
||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
||||||
<exclude-output />
|
|
||||||
<content url="file://$MODULE_DIR$" />
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
6
Containers/mastercontainer/.idea/misc.xml
generated
6
Containers/mastercontainer/.idea/misc.xml
generated
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectRootManager">
|
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
8
Containers/mastercontainer/.idea/modules.xml
generated
8
Containers/mastercontainer/.idea/modules.xml
generated
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/mastercontainer.iml" filepath="$PROJECT_DIR$/.idea/mastercontainer.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
6
Containers/mastercontainer/.idea/vcs.xml
generated
6
Containers/mastercontainer/.idea/vcs.xml
generated
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
3
php/.gitignore
vendored
3
php/.gitignore
vendored
|
|
@ -1,3 +0,0 @@
|
||||||
/php/data/configuration.json
|
|
||||||
/php/data/containers.json
|
|
||||||
|
|
||||||
8
php/.idea/.gitignore
generated
vendored
8
php/.idea/.gitignore
generated
vendored
|
|
@ -1,8 +0,0 @@
|
||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
34
php/.idea/aio.iml
generated
34
php/.idea/aio.iml
generated
|
|
@ -1,34 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="WEB_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager">
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="AIO\" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-server-middleware" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/guzzle" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-client" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-factory" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/http-interop/http-factory-guzzle" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-server-handler" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/slim/slim" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/ralouphie/getallheaders" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/fast-route" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/opis/closure" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/php-di/slim-bridge" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/php-di/invoker" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/php-di/php-di" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/php-di/phpdoc-reader" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/slim/twig-view" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
8
php/.idea/modules.xml
generated
8
php/.idea/modules.xml
generated
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/aio.iml" filepath="$PROJECT_DIR$/.idea/aio.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
34
php/.idea/php.xml
generated
34
php/.idea/php.xml
generated
|
|
@ -1,34 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="PhpIncludePathManager">
|
|
||||||
<include_path>
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/http-server-middleware" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/log" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/http-client" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/container" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/http-interop/http-factory-guzzle" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/psr/http-server-handler" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/slim/slim" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/nikic/fast-route" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/composer" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/opis/closure" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/php-di/slim-bridge" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/php-di/invoker" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/php-di/php-di" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/php-di/phpdoc-reader" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/slim/twig-view" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/twig/twig" />
|
|
||||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
|
|
||||||
</include_path>
|
|
||||||
</component>
|
|
||||||
<component name="PhpProjectSharedConfiguration" php_language_level="7.4">
|
|
||||||
<option name="suggestChangeDefaultLanguageLevel" value="false" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
6
php/.idea/vcs.xml
generated
6
php/.idea/vcs.xml
generated
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
@ -4,13 +4,60 @@ This is the code for the PHP Docker controller.
|
||||||
|
|
||||||
## How to run
|
## How to run
|
||||||
|
|
||||||
Running this locally requires Docker Engine on the same machine.
|
Running this locally requires :
|
||||||
If this is the case, just execute the following command:
|
|
||||||
|
|
||||||
```
|
### 1. Install the development environment
|
||||||
composer install --no-dev
|
|
||||||
cd public/
|
This project uses Composer as dependency management software. It is very similar to NPM.
|
||||||
php -S 0.0.0.0:8080
|
The command to install all dependencies is:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer install
|
||||||
```
|
```
|
||||||
|
|
||||||
You can then access the web interface at `localhost:8080`.
|
### 2. Access to docker socket
|
||||||
|
|
||||||
|
The `root` user has all privileges including access to the Docker socket.
|
||||||
|
But **it is not recommended to launch the local instance with full privileges**, consider the docker group for docker access without being `root`.
|
||||||
|
See https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
|
||||||
|
|
||||||
|
### 3. Run a `nextcloud-aio-mastercontainer` container
|
||||||
|
|
||||||
|
This application manages containers, including its own container.
|
||||||
|
So you need to run a `nextcloud-aio-mastercontainer` container for the application to work properly.
|
||||||
|
|
||||||
|
Here is a command to quickly launch a container :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run \
|
||||||
|
--rm \
|
||||||
|
--name nextcloud-aio-mastercontainer \
|
||||||
|
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
|
||||||
|
nextcloud/all-in-one:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Start your server
|
||||||
|
|
||||||
|
With this command you will launch the server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Make sure to launch this command with a user having access to the docker socket.
|
||||||
|
SKIP_DOMAIN_VALIDATION=true composer run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then access the web interface at http://localhost:8080.
|
||||||
|
|
||||||
|
Note: You can restart the server by preceding the command with other environment variables.
|
||||||
|
|
||||||
|
## Composer routine
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|-----------------------------------------|----------------------------------------|
|
||||||
|
| `composer run dev` | Starts the development server |
|
||||||
|
| `composer run psalm` | Run Psalm static analysis |
|
||||||
|
| `composer run psalm:update-baseline` | Run Psalm with `--update-baseline` arg |
|
||||||
|
| `composer run lint` | Run PHP Syntax check |
|
||||||
|
| `composer run lint:twig` | Run Twig Syntax check |
|
||||||
|
| `composer run php-deprecation-detector` | Run PHP Deprecation Detector |
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,20 @@
|
||||||
"slim/csrf": "^1.3",
|
"slim/csrf": "^1.3",
|
||||||
"ext-apcu": "*"
|
"ext-apcu": "*"
|
||||||
},
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"sserbin/twig-linter": "@dev",
|
||||||
|
"vimeo/psalm": "^5.25",
|
||||||
|
"wapmorgan/php-deprecation-detector": "dev-master"
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"dev": [
|
||||||
|
"Composer\\Config::disableProcessTimeout",
|
||||||
|
"php -S localhost:8080 -t public"
|
||||||
|
],
|
||||||
"psalm": "psalm --threads=1",
|
"psalm": "psalm --threads=1",
|
||||||
"psalm:update-baseline": "psalm --threads=1 --update-baseline",
|
"psalm:update-baseline": "psalm --threads=1 --monochrome --no-progress --output-format=text --update-baseline",
|
||||||
"lint": "find . -name \\*.php -not -path './vendor/*' -exec php -l {} \\;",
|
"lint": "php -l src/*.php src/**/*.php public/index.php",
|
||||||
"php-deprecation-detector": "find . -name \\*.php -not -path './vendor/*' -exec phpdd scan {} -n -t 8.3 \\;"
|
"lint:twig": "twig-linter lint ./templates",
|
||||||
|
"php-deprecation-detector": "phpdd scan -n -t 8.3 src/*.php src/**/*.php public/index.php"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2025
php/composer.lock
generated
2025
php/composer.lock
generated
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue