This commit is contained in:
hakutaku
2025-09-23 19:15:07 +03:00
parent d58211507d
commit 65859bd87f
15 changed files with 214 additions and 171 deletions

View File

@@ -1,20 +0,0 @@
## Networking
listeners.tcp.default = 5672
listeners.tcp.1 = 127.0.0.1:5672
## Management Plugin
management.tcp.port = 15672
management.tcp.ip = 127.0.0.1
## Authentication and Authorization
auth_mechanisms.1 = PLAIN
auth_mechanisms.2 = AMQPLAIN
default_user = guest
default_pass = guest
## Logging
log.console = true
## Resource Limits
vm_memory_high_watermark.relative = 0.4
disk_free_limit.relative = 1.0

View File

@@ -15,3 +15,4 @@ Dockerfile
Makefile
phpunit.dist.xml
shell.nix
rr

7
.env
View File

@@ -2,5 +2,10 @@ APP_ENV=dev
APP_SECRET=
APP_DOCKER_TAG="symfony-skeleton"
DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"
# postgres
POSTGRES_DB=db
POSTGRES_USER=user
POSTGRES_PASSWORD=password
DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@127.0.0.1:5432/${POSTGRES_DB}?serverVersion=17&charset=utf8"
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages

96
.idea/php.xml generated
View File

@@ -19,54 +19,6 @@
</component>
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/browser-kit" />
<path value="$PROJECT_DIR$/vendor/symfony/cache" />
<path value="$PROJECT_DIR$/vendor/symfony/dotenv" />
<path value="$PROJECT_DIR$/vendor/symfony/amqp-messenger" />
<path value="$PROJECT_DIR$/vendor/symfony/framework-bundle" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/phpstan/phpstan" />
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/staabm/side-effects-detector" />
<path value="$PROJECT_DIR$/vendor/spiral/goridge" />
<path value="$PROJECT_DIR$/vendor/spiral/hmvc" />
<path value="$PROJECT_DIR$/vendor/spiral/roadrunner-worker" />
<path value="$PROJECT_DIR$/vendor/spiral/roadrunner-cli" />
<path value="$PROJECT_DIR$/vendor/spiral/roadrunner-http" />
<path value="$PROJECT_DIR$/vendor/spiral/tokenizer" />
<path value="$PROJECT_DIR$/vendor/spiral/roadrunner-services" />
<path value="$PROJECT_DIR$/vendor/spiral/security" />
<path value="$PROJECT_DIR$/vendor/spiral/logger" />
<path value="$PROJECT_DIR$/vendor/spiral/core" />
<path value="$PROJECT_DIR$/vendor/spiral/interceptors" />
<path value="$PROJECT_DIR$/vendor/google/protobuf" />
<path value="$PROJECT_DIR$/vendor/react/child-process" />
<path value="$PROJECT_DIR$/vendor/react/socket" />
<path value="$PROJECT_DIR$/vendor/react/dns" />
<path value="$PROJECT_DIR$/vendor/react/promise" />
<path value="$PROJECT_DIR$/vendor/react/stream" />
<path value="$PROJECT_DIR$/vendor/react/cache" />
<path value="$PROJECT_DIR$/vendor/react/event-loop" />
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/vendor/fidry/cpu-core-counter" />
<path value="$PROJECT_DIR$/vendor/twig/twig" />
<path value="$PROJECT_DIR$/vendor/clue/ndjson-react" />
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/vendor/psr/clock" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/psr/cache" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/roadrunner-php/roadrunner-api-dto" />
<path value="$PROJECT_DIR$/vendor/friendsofphp/php-cs-fixer" />
<path value="$PROJECT_DIR$/vendor/masterminds/html5" />
@@ -140,6 +92,54 @@
<path value="$PROJECT_DIR$/vendor/symfony/runtime" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/symfony/config" />
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/browser-kit" />
<path value="$PROJECT_DIR$/vendor/symfony/cache" />
<path value="$PROJECT_DIR$/vendor/symfony/dotenv" />
<path value="$PROJECT_DIR$/vendor/symfony/amqp-messenger" />
<path value="$PROJECT_DIR$/vendor/symfony/framework-bundle" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-invoker" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/phpstan/phpstan" />
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/staabm/side-effects-detector" />
<path value="$PROJECT_DIR$/vendor/spiral/goridge" />
<path value="$PROJECT_DIR$/vendor/spiral/hmvc" />
<path value="$PROJECT_DIR$/vendor/spiral/roadrunner-worker" />
<path value="$PROJECT_DIR$/vendor/spiral/roadrunner-cli" />
<path value="$PROJECT_DIR$/vendor/spiral/roadrunner-http" />
<path value="$PROJECT_DIR$/vendor/spiral/tokenizer" />
<path value="$PROJECT_DIR$/vendor/spiral/roadrunner-services" />
<path value="$PROJECT_DIR$/vendor/spiral/security" />
<path value="$PROJECT_DIR$/vendor/spiral/logger" />
<path value="$PROJECT_DIR$/vendor/spiral/core" />
<path value="$PROJECT_DIR$/vendor/spiral/interceptors" />
<path value="$PROJECT_DIR$/vendor/google/protobuf" />
<path value="$PROJECT_DIR$/vendor/react/child-process" />
<path value="$PROJECT_DIR$/vendor/react/socket" />
<path value="$PROJECT_DIR$/vendor/react/dns" />
<path value="$PROJECT_DIR$/vendor/react/promise" />
<path value="$PROJECT_DIR$/vendor/react/stream" />
<path value="$PROJECT_DIR$/vendor/react/cache" />
<path value="$PROJECT_DIR$/vendor/react/event-loop" />
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/vendor/fidry/cpu-core-counter" />
<path value="$PROJECT_DIR$/vendor/twig/twig" />
<path value="$PROJECT_DIR$/vendor/clue/ndjson-react" />
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/vendor/psr/clock" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/psr/cache" />
<path value="$PROJECT_DIR$/vendor/composer" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="8.2" />

17
.idea/runConfigurations/Cache_clear.xml generated Normal file
View File

@@ -0,0 +1,17 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Cache clear" type="ShConfigurationType">
<option name="SCRIPT_TEXT" value="php bin/console cache:clear" />
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
<option name="SCRIPT_PATH" value="" />
<option name="SCRIPT_OPTIONS" value="" />
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
<option name="INTERPRETER_PATH" value="/bin/zsh" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="EXECUTE_IN_TERMINAL" value="true" />
<option name="EXECUTE_SCRIPT_FILE" value="false" />
<envs />
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,17 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Composer install" type="ShConfigurationType">
<option name="SCRIPT_TEXT" value="composer install" />
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
<option name="SCRIPT_PATH" value="" />
<option name="SCRIPT_OPTIONS" value="" />
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
<option name="INTERPRETER_PATH" value="/bin/zsh" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="EXECUTE_IN_TERMINAL" value="true" />
<option name="EXECUTE_SCRIPT_FILE" value="false" />
<envs />
<method v="2" />
</configuration>
</component>

17
.idea/runConfigurations/Roadrunner.xml generated Normal file
View File

@@ -0,0 +1,17 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Roadrunner" type="ShConfigurationType">
<option name="SCRIPT_TEXT" value="./rr -c .rr.dev.yaml serve" />
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
<option name="SCRIPT_PATH" value="" />
<option name="SCRIPT_OPTIONS" value="" />
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
<option name="INTERPRETER_PATH" value="/bin/zsh" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="EXECUTE_IN_TERMINAL" value="true" />
<option name="EXECUTE_SCRIPT_FILE" value="false" />
<envs />
<method v="2" />
</configuration>
</component>

View File

@@ -0,0 +1,17 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Roadrunner install" type="ShConfigurationType">
<option name="SCRIPT_TEXT" value="vendor/bin/rr get" />
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
<option name="SCRIPT_PATH" value="" />
<option name="SCRIPT_OPTIONS" value="" />
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
<option name="INTERPRETER_PATH" value="/bin/zsh" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="EXECUTE_IN_TERMINAL" value="true" />
<option name="EXECUTE_SCRIPT_FILE" value="false" />
<envs />
<method v="2" />
</configuration>
</component>

11
.idea/runConfigurations/Run_services.xml generated Normal file
View File

@@ -0,0 +1,11 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run services" type="docker-deploy" factoryName="docker-compose.yml" folderName="Run" server-name="Docker">
<deployment type="docker-compose.yml">
<settings>
<option name="envFilePath" value=".env" />
<option name="sourceFilePath" value="compose.yaml" />
</settings>
</deployment>
<method v="2" />
</configuration>
</component>

View File

@@ -6,54 +6,6 @@
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="App\Tests\" />
<excludeFolder url="file://$MODULE_DIR$/var" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation-contracts" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/browser-kit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dotenv" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/amqp-messenger" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/framework-bundle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-invoker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpstan" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/version" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/manifest" />
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/staabm/side-effects-detector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/goridge" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/hmvc" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/roadrunner-worker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/roadrunner-cli" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/roadrunner-http" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/tokenizer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/roadrunner-services" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/security" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/logger" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/core" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/interceptors" />
<excludeFolder url="file://$MODULE_DIR$/vendor/google/protobuf" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/child-process" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/socket" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/dns" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/promise" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/stream" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/event-loop" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
<excludeFolder url="file://$MODULE_DIR$/vendor/fidry/cpu-core-counter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/ndjson-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-factory" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/clock" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/roadrunner-php/roadrunner-api-dto" />
<excludeFolder url="file://$MODULE_DIR$/vendor/friendsofphp/php-cs-fixer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/masterminds/html5" />
@@ -127,6 +79,54 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/runtime" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/config" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation-contracts" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/browser-kit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dotenv" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/amqp-messenger" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/framework-bundle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-invoker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpstan" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/version" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phar-io/manifest" />
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/staabm/side-effects-detector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/goridge" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/hmvc" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/roadrunner-worker" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/roadrunner-cli" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/roadrunner-http" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/tokenizer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/roadrunner-services" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/security" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/logger" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/core" />
<excludeFolder url="file://$MODULE_DIR$/vendor/spiral/interceptors" />
<excludeFolder url="file://$MODULE_DIR$/vendor/google/protobuf" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/child-process" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/socket" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/dns" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/promise" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/stream" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/react/event-loop" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
<excludeFolder url="file://$MODULE_DIR$/vendor/fidry/cpu-core-counter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/ndjson-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-factory" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/clock" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />

View File

@@ -31,25 +31,11 @@ logs:
level: debug
service:
postgres:
command: "postgres -D .data/postgres" # The command to execute
service_name_in_log: true
processNum: 1 # Number of processes to run
execTimeout: 0 # Execution timeout (0 for no timeout)
remainAfterExit: false # Whether to keep the service running after exit
env:
APP_ENV: "production"
rabbitmq:
command: "rabbitmq-server" # The command to execute
service_name_in_log: true
processNum: 1 # Number of processes to run
execTimeout: 0 # Execution timeout (0 for no timeout)
remainAfterExit: false # Whether to keep the service running after exit
env:
APP_ENV: "production"
messenger:
command: "./messenger.sh"
command: "php bin/console messenger:consume async -vvvv"
service_name_in_log: true
processNum: 1
execTimeout: 0 # Execution timeout (0 for no timeout)
remainAfterExit: false # Whether to keep the service running after exit
execTimeout: 0
remainAfterExit: false
env:
APP_ENV: "dev"

2
README.MD Normal file
View File

@@ -0,0 +1,2 @@
1. ```composer i```
2. ```vendor/bin/rr get```

View File

@@ -1,10 +1,26 @@
services:
php-roadrunner:
container_name: ${APP_DOCKER_TAG}
platform: linux/amd64
image: ${APP_DOCKER_TAG}
volumes:
- .:/opt/app:rw
postgres:
image: postgres:17-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
ports:
- "8000:8000"
- "127.0.0.1:5432:5432"
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" ]
interval: 10s
retries: 5
start_period: 30s
timeout: 10s
volumes:
- ${PWD}/.data/postgres:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:8.2
ports:
- "127.0.0.1:6379:6379"
volumes:
- ${PWD}/.data/redis:/data
command: redis-server --appendonly yes # Starts Redis with AOF persistence enabled
restart: unless-stopped

View File

@@ -69,8 +69,7 @@
"assets:install %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts",
"vendor/bin/rr get --location bin/"
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"

View File

@@ -1,6 +1,5 @@
let
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-25.05";
postgresDirectory = ".data/postgres";
pkgs = import nixpkgs {
config = { };
@@ -23,8 +22,6 @@ let
);
in
[
pkgs.postgresql_16
pkgs.rabbitmq-server
pkgs.nixfmt-rfc-style
pkgs.gnumake
phpForRuntimeWithXDebug
@@ -35,26 +32,4 @@ let
in
pkgs.mkShell {
inherit packages;
shellHook = ''
export COMPOSER_CACHE_DIR=$(pwd)/var/cache/composer
export RABBITMQ_CONFIG_FILE=$(pwd)/.dev/rabbitmq.conf
export RABBITMQ_MNESIA_BASE=$(pwd)/.data/rabbitmq
export RABBITMQ_LOGS=$(pwd)/var/log/rabbitmq.log
mkdir -p $(pwd)/var/cache/composer
if [ ! -d $(pwd)/var/log ]; then
mkdir -p $(pwd)/var/log
fi
# https://yannesposito.com/posts/0024-replace-docker-compose-with-nix-shell/index.html
if [ ! -d ${postgresDirectory} ]; then
mkdir -p ${postgresDirectory}
initdb -D ${postgresDirectory}
pg_ctl -D ${postgresDirectory} -l $(pwd)/var/log/postgres.log -o "--unix_socket_directories='$PWD'" start
createdb app
pg_ctl -D ${postgresDirectory} stop
fi
'';
}