knutschsoft / swapp
streetworker app
Requires
- php: >=8.3
- ext-ctype: *
- ext-iconv: *
- ext-json: *
- acsiomatic/device-detector-bundle: ^0.4.0
- api-platform/core: ~3.0
- doctrine/doctrine-bundle: ~2.3
- doctrine/doctrine-migrations-bundle: ~3.1
- doctrine/orm: ~2.6
- dunglas/doctrine-json-odm: ~1.1
- enshrined/svg-sanitize: ^0.15
- gesdinet/jwt-refresh-token-bundle: ~1.0
- league/csv: ~9.5
- league/flysystem-bundle: ^2.0
- lexik/jwt-authentication-bundle: ~2.8
- nelmio/cors-bundle: ~2.1
- nelmio/js-logger-bundle: ~1.6
- nesbot/carbon: ^2.57
- pentatrion/vite-bundle: ^6.5
- phpdocumentor/reflection-docblock: ^5.3
- scienta/doctrine-json-functions: ^5.2
- stof/doctrine-extensions-bundle: ~1.3
- symfony/asset: 6.4.*
- symfony/expression-language: 6.4.*
- symfony/flex: ~v2.4
- symfony/form: 6.4.*
- symfony/mailer: 6.4.*
- symfony/messenger: 6.4.*
- symfony/mime: 6.4.*
- symfony/monolog-bundle: ~3.3
- symfony/notifier: 6.4.*
- symfony/property-access: 6.4.*
- symfony/property-info: 6.4.*
- symfony/proxy-manager-bridge: 6.4.*
- symfony/runtime: 6.4.*
- symfony/security-bundle: 6.4.*
- symfony/serializer: 6.4.*
- symfony/twig-bundle: 6.4.*
- symfony/uid: 6.4.*
- symfony/validator: 6.4.*
- tattali/mobile-detect-bundle: ~v2.2
- twig/cssinliner-extra: ^3.3
- twig/extra-bundle: ^3.3
- webmozart/assert: ^1.11
Requires (Dev)
- ext-zip: *
- behat/mink-browserkit-driver: ~2.1
- captainhook/captainhook: ~5.0
- dbrekelmans/bdi: ^1.0
- dmarynicz/behat-parallel-extension: ^1.0
- doctrine/data-fixtures: ^1.5
- enlightn/security-checker: ^v1.10
- friends-of-behat/symfony-extension: ~2.1
- genesis/behat-fail-aid: ~3.5
- php-webdriver/webdriver: ^1.14.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ~1.4
- phpstan/phpstan-doctrine: ^1.2
- phpstan/phpstan-webmozart-assert: ~1.0
- phpunit/phpunit: ~9.5.4
- projektmotor/symfony-coding-standard: ~1.0
- rector/rector: ^0.18.12
- robertfausk/behat-panther-extension: ~1.0
- robertfausk/contexts: dev-main
- symfony/browser-kit: 6.4.*
- symfony/css-selector: 6.4.*
- symfony/dotenv: ~6.4
- symfony/maker-bundle: ~1.13
- symfony/phpunit-bridge: ~6.4
- symfony/stopwatch: ^6.4
- symfony/web-profiler-bundle: ^6.4
Conflicts
This package is auto-updated.
Last update: 2024-09-03 09:11:24 UTC
README
Swapp是一个旨在简化正在路上的streetworker文档的项目。
有关更多信息,请查看:https://streetworkapp.de/
有关Swapp的完整工作演示,请查看:https://swapp.demo.streetworkapp.de
如何开始本地开发?
-
设置nginx代理(包括docker-gen)
将以下
docker-compose.yml
放置在您选择的文件夹中,例如/var/apps/nginx-proxy/
或/<your-home-dir>/workspace/nginx-proxy/
。version: "3.4" services: nginx-proxy: image: jwilder/nginx-proxy:alpine container_name: nginx-proxy ports: - target: 80 published: 80 protocol: tcp - target: 443 published: 443 protocol: tcp volumes: - /var/run/docker.sock:/tmp/docker.sock:ro - ./certs:/etc/nginx/certs - ./vhosts:/etc/nginx/conf.d networks: - swapp-dev networks: swapp-dev: external: true
-
安装本地SSL证书
以下可以使用包含jwilder/nginx-proxy和mkCert的Dockerfile自动完成。
首先,您必须确定要用于Swapp的域名。以下示例中将使用
swapp.local
。仅使用swapp
会导致证书问题,因为大多数浏览器不接受二级域名的通配符证书:例如,浏览器不会接受为子域api.swapp
创建的*.swapp
证书安装mkCert
# linux wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.1/mkcert-v1.4.1-linux-amd64 sudo mv mkcert-v1.4.1-linux-amd64 /usr/local/bin/mkcert sudo chmod +x /usr/local/bin/mkcert
# macOS brew install mkcert brew install nss # if you use Firefox
安装rootCA
这会将mkcert的rootCA自动添加到您的系统受信任的CA中,因此您在本地浏览器中不再会收到不受信任证书的通知。
mkcert --install
创建证书
导航到nginx-proxy证书卷,例如
cd /var/apps/nginx-proxy/certs
或/<your-home-dir>/workspace/nginx-proxy/certs
mkcert -key-file swapp.local.key -cert-file swapp.local.crt swapp.local *.swapp.local
这将为
swapp.local
的所有子域生成证书 -
设置DNS
# /etc/hosts 127.0.0.1 swapp.local
-
启动nginx代理
# this need to be run only once docker network create swapp-dev
# /var/apps/nginx-proxy/ or /<your-home-dir>/workspace/nginx-proxy/ docker-compose up -d
-
创建
.env
#<yourWorkSpace>/swapp cp .env.dist .env
根据需要调整敏感变量,例如
JWT_KEY
和DB_PASSWORD
。确保DOMAIN_NAME
与创建证书时使用的名称匹配。 -
添加到您的
.bashrc
(或.zshrc
)$ vi ~/.bashrc ... export HOST_UID=$(id -u) # UID is now available for docker-compose.yml export HOST_GID=$(id -g) # GID is now available for docker-compose.yml
-
启动swapp栈
docker-compose up -d
nginx代理将为每个具有设置环境变量
VIRTUAL_HOST
的swapp服务创建一个vhost条目。您可以在卷中检查创建的主机cat path-to-nginx-proxy/vhosts/default.conf
-
通过以下域名访问swapp
使用自签名证书
优点:无需在每次访问第一个网站请求时接受不安全的证书。
要使用您的移动设备在本地WAN中访问,您必须将'swapp.local'替换为您的本地IP地址
-
可选:使用XDebug
- 在
.env
中激活XDebugPHP_XDEBUG_ENABLED=1
- PHPStorm设置
- 设置... -> 语言 & 框架 -> PHP -> 服务器:添加
- 名称:必须与PHP_IDE_CONFIG值相同
- 端口:80
- 路径映射:主机系统中项目根目录的路径
- 设置 -> 语言 & 框架 -> PHP -> 调试 -> DBGp代理
端口
: 9000
- 设置... -> 语言 & 框架 -> PHP -> 服务器:添加
- 启动容器
$ docker-compose up -d
- 在PHPStorm中单击“开始监听PHP调试连接”后,您可以跳转到Web和CLI断点。
- 要启用/禁用XDebug,只需在
docker-compose.yml
中调整环境变量PHP_XDEBUG_ENABLED
,然后重启容器(docker-compose down && docker-compose up -d
)
- 在
快捷表
- 执行symfony命令
$ docker-compose exec web php bin/console [SF-CONSOLE-COMMAND]
- 启动webpack encore
$ docker-compose exec web node_modules/.bin/encore dev-server
- 显示容器及其状态
$ docker-compose ps
- 容器shell访问
$ docker-compose exec web bash
- CLI连接到MySQL
$ mysql -u swapp -p -hmysql
- 停止服务/容器
$ docker-compose stop
- 停止并删除容器(包括卷、镜像和网络,但不包括数据卷)
$ docker-compose down